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的絕對地址。