1.ServletConfig
ServletConfig是一個接口,它代表的是Servlet的配置信息,對應著web.xml文件中的<servlet>標簽。想要獲取Servlet的一些配置信息,例如,Servlet的名字就可以通過調用ServletConfig的一個方法來獲得。
我們知道,當瀏覽器第一次訪問Servlet的時候,服務器會創(chuàng)建該Servlet的實例,然后調用init(ServletConfig config)方法對Servlet進行初始化,其實在調用init方法之前,服務器已經根據當前Servlet在web.xml的配置信息創(chuàng)建了一個ServletConfig對象,最后在調用init()方法時將該對象作為參數傳遞給init()方法。
下面通過一張圖來描述ServletConfig的一些特性,如圖1-1所示:
圖1-1 ServletConfig介紹
通過圖1-1對ServletConfig的描述,可以看出web.xml文件中每一個<servlet>元素都對應一個ServletConfig對象。
經過以上對ServletConfig對象的介紹,我們需要掌握以下幾點:
- ServletConfig實例是由Tomcat服務器創(chuàng)建,然后作為參數通過init()方法傳遞給Servlet;
- ServletConfig中封裝的是Servlet的配置信息,可以通過它來獲取web.xml文件中<servlet-name>標簽的內容等其他配置信息。
- 一個Servlet類對應一個ServletConfig對象
2.ServletConfig具體功能介紹
接下來,我們查看ServletConfig的API,通過API來深入了解該對象。如圖1-2所示:
圖1-2 ServletConfig API
由圖1-2可看出,ServletConfig接口有四個抽象方法,下面我們來分別介紹這四個方法,如表1-1所示:
方法名 |
方法說明 |
String getInitParameter(String name) |
該方法是通過參數名獲取Servlet在web.xml文件中配置的初始化參數。 |
Enumeration getInitParameterNames() |
該方法是獲取Servlet在web.xml文件中配置的所有初始化參數的名稱。 |
ServletContext getServletContext() |
該方法是獲取ServletContext對象,后面會詳細講解該對象。 |
String getServletName() |
該方法是獲取Servlet在web.xml文件中配置的名稱,即<servlet-name>元素的內容。 |
為了更好的掌握ServletConfig對象,下面通過一個例子來詳細了解ServletConfig對象的方法的使用,詳細信息請參考
ServletConfig案例詳解,點擊下載源代碼,具體如下所示:
(1)創(chuàng)建一個web應用,取名為Example10,再創(chuàng)建一個類ServletThree,實現Servlet接口,然后在web.xml文件中配置信息,如例1-1所示:
例1-1 web.xml
<servlet>
<!—初始化參數配置 -->
<init-param>
<!-- 參數名 -->
<param-name>name</param-name>
<!-- 參數值 -->
<param-value>zhangsan</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123</param-value>
</init-param>
<servlet-name>ServletThree</servlet-name>
<servlet-class>cn.itcast.servlet.ServletThree</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletThree</servlet-name>
<url-pattern>/ServletThree</url-pattern>
</servlet-mapping>
由例1-1可知,我們在<servlet >標簽中配置初始化參數,格式如例1-1所示,參數名為“name“、”password“,參數值分別為”zhangsan“、”123“ 。
(2)在ServletThree類中,對init()方法進行修改,在init()方法中獲取初始化參數,主要代碼如圖1-2所示:
例1-2 init方法
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init()......");
System.out.println("init param name =:"+servletConfig.getInitParameter("name"));
System.out.println("servlet name is:"+servletConfig.getServletName());
//獲取所有的初始化參數名稱
Enumeration e=servletConfig.getInitParameterNames();
while(e.hasMoreElements()){//遍歷所有初始化參數名稱
System.out.println("initParam name:");
System.out.println(e.nextElement());
}
}
(3)將Example10發(fā)布到Tomcat中,然后啟動Tomcat服務器,在瀏覽器端地址欄輸入http://localhost:8080/Example10/ServletThree,控制臺打印結果如圖1-3所示:
圖1-3 控制臺運行結果
如圖1-3所示,控制臺打印了init()方法中的具體實現,通過ServletConfig對象獲得了在web.xml文件中配置的初始化參數并打印在控制臺上。通過本案例,我們對ServletConfig對象的方法有了一定的了解,在以后的學習中,ServletConfig對象最常用的方法是getServletContext()。
本文版權歸傳智播客Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:傳智播客Java培訓學院
首發(fā):http://xamj520.com/javaee