1. 程式人生 > >Servlet的基本配置和使用

Servlet的基本配置和使用

1、Servlet的基本配置

Servlet的基本配置包括Servlet的名字、實現類、初始化引數和啟動裝入優先順序的設定。這些都是最基本、最一般的配置,只有掌握它們才能更好地實現Servlet的功能。

  • Servlet的名字:例如,可用

    <servlet-name>GlobleConfigServlet</servlet-name>
    來定義com.example.config.GlobleConfigServlet的名字。

  • Servlet類:指的是實現該Servlet的具體檔案。分為兩種情況:
    當是Servlet檔案時,用標籤<servlet-class>

    來表示。
    當是JSP檔案時,則要用標籤<jsp-file>來表示。例如,現有Register.jsp檔案,通過訪問它來完成使用者註冊。要配置該JSP檔案,可以用<jsp-file>Register.jsp</jsp-file>來定義RegisterServlet。它表明RegisterServlet是通過Register.jsp檔案實現的。

  • 描述:
<description>這是一個Global Servlet</description>
  • 顯示名:顯示名用來指定某Servlet在IDE工具中顯示的名字。IDE工具可能會用此名字來標記此Web應用。如:

    <display-name>WebApplication</display-name>

  • 綜合上述的小例子:

    <servlet>
    <description>該Servlet實現全域性配置</description>
    <servlet-name>GlobalConfigServlet</servlet-name>
    <display-name>GlobalConfig Reloading Servlet</display-name><!--Servlet的現實名-->
    <servlet-class>com.example.config.GlobalConfigServlet</servlet-class><!--實現類的完整路徑-->
    </servlet>
    <servlet-mapping>
    <servlet-name>GlobalConfigServlet</servlet-name>
    <url-pattern>/GlobalConfig</url-pattern><!--訪問該Servlet的 -->
    </servlet-mapping>

2、servlet的初始化引數

Servlet的初始化引數是指在其配置檔案中定義好的引數。使用它們可以方便引數的更改,並可保證Servlet的通用性。初始化引數在配置檔案中的格式如下:

<init-param>
<param-name>這裡設定引數的名字</param-name>
<param-value>這裡設定引數的值</param-value>
</init-param>

3、servlet初始化引數的呼叫,通過一個例子來講解:

編寫一個使用JDBC來連線資料庫的servlet程式。一些比較恆定的資訊,如驅動程式、連線資料庫的URL、使用者名稱和密碼,最好把它們放在web.xml中。在該servlet的實現類中可以通過特定的方法來獲得這些引數的值,從而用他們去連線資料庫。
JDBCServlet在web.xml中的配置如下:

<servlet>
   <servlet-name>JDBCServlet</servlet-name>
   <servlet-class>com.dao.JDBCServlet</servlet-class>
   <init-param>
      <param-name>Driver</param-name><!--定義驅動器引數-->
      <param-value>com.mysql.jdbc.driver</param-value>
   </init-param>
   <init-param>
      <param-name>Url</param-name><!--定義路徑引數-->
      <param-value>jdbc:mysql://localhost:3306/test</param-value>
   </init-param>
   <init-param>
      <param-name>UserName</param-name><!--定義使用者名稱-->
      <param-value>root</param-value>
   </init-param>
   <init-param>
      <param-name>Password</param-name><!--定義密碼-->
      <param-value>root</param-value>
   </init-param>
</servlet>

JDBCServlet實現類的程式碼如下所示,在該類的init()方法中獲取上面設定的初始化引數。

public class JDBCServlet extends HttpServlet{
  String driver;
  String url;
  String password;
  String user;
/**
*獲得初始化引數
**/
  public void init() throws ServletException
{
    driver=getInitParameter("Driver");
    url=getInitParameter("Url");
    user=getInitParameter("UserName");
    password=getInitParameter("Password");
}
/**
*用初始化引數連線資料庫
**/
public Connection getConnection()
{
   ...
}
}

在上面的init()方法中通過getInitParameter()獲取了在web.xml中配置的4個初始化引數。然後再getConnection()方法中使用這些引數連線資料庫。

4、啟動裝入優先順序的設定

啟動裝入優先順序是指不同的Servlet被Tomcat伺服器載入的先後次序。設定該項可以保證Servlet按照一定的順序載入。在配置檔案中,通過在標籤

<load-on-startup></load-on-startup>

之間新增一個數字來完成優先順序的設定。數字越大,越後被載入。

5、Servlet對映

Servlet對映是將該Servlet與訪問它的URL地址建立對應關係。可以為同一個Servlet建立多個對映。這樣就可以通過URL地址呼叫該Servlet。在配置檔案中,建立對映的格式為:

<servlet-mapping>
   <servlet-name>這裡引用servlet的名字</servlet-name>
   <url-pattern>這裡定義訪問該servlet的 </url-patter>
</servlet-mapping>

注意:

<url-pattern>

定義的並不是完整的URL地址。它只是一個相對地址。只有在前面加上伺服器地址(http://localhost:8080)和應用程式的context名之後,才能構成訪問該Servlet的絕對地址。