Servlet編程專題2之獲取ServletConfig對象
1、javax.servlet.ServletConfig接口的簡單說明:
- Servlet容器在Servlet對象初始化時期傳遞信息給Servlet對象的Servlet配置對象。
- 在Servlet接口的init()方法中具有唯一的一個參數ServletConfig。ServletConfig是一個接口,顧名思義,就是Servlet配置,即在web.xml中對當前Servlet類中的配置信息。Servlet規範將Servlet的配置信息全部封裝到了ServletConfig接口對象中。
- 在Web容器調用init()方法時,Web容器首先會將web.xml中當前Servlet類的配置信息封裝為一個對象。這個對象的類型實現了ServletConfig接口,Web容器會將這個對象傳遞給init()方法中的ServletConfig參數。(由Web容器自動創建ServletConfig接口實現類的對象)
- ServletConfig接口實例類的對象指的就是:web.xml中的Servlet標簽:
2、如果希望在自定義的Servlet實現類中使用ServletConfig對象,可以在類中定義一個私有ServletConfig成員變量,在init(ServletConfig config)方法中進行接收,在getServletConfig()方法中將這個成員變量進行返回即可。
3、javax.servlet.ServletConfig接口中的方法介紹:
- getInitParemeter(String name)方法:獲取web.xml文件中的<init-param>標簽中與傳遞的字符串參數相同的<param-name>標簽內容所對應的<param-value>標簽的字符串內容。
- getInitParameterNames()方法:獲取servlet初始化參數值,以字符串對象的一個枚舉返回;或者返回一個空的枚舉對象,如果沒有任意一個初始化參數值。
- getServletContext()方法返回ServletContext對象的引用。
- getServletName()方法返回Servlet實例的名字。(web.xml中的<servlet>標簽中設置的<servlet-name>中的內容)
4、java.util.Enumeration接口的簡單介紹:
- Enumeration接口實現類對象會生成一系列元素。(每次生成一個)連續調用接口中的nextElement()方法會序列中連續的元素。
- java.util.Enumeration接口中的hasMoreElements()方法檢測是否枚舉對象中包含有更多的元素,如果存在,返回true:
5、web.xml文件中的<context-param>標簽,表示定義整個應用都可以共享的初始化上下文參數:
6、javax.servlet.ServletContext接口:表示Servlet執行的上下文環境,即web應用的上下文環境。
- 定義一組方法用於servlet與servlet容器進行通信,例如獲取文件的MIME類型,調度請求或者寫入日誌文件,JVM中每個web應用只有一個上下文環境對象。(由Web容器自動創建ServletContext接口實現類的對象)
7、javax.servlet.ServletContext接口中的方法介紹:
- 和getInitParemeter(String name)方法和getInitParameterNames()方法類似,不過返回的是初始化上下文參數值:
- 在這個ServletContext對象中設置或者重置給定屬性名的域屬性:(具備應用全局性,即所有的Servlet實例對象中ServletConfig對象都可以通過getInitParemeter(String name)方法獲取設置的域屬性)
- 返回給定名字的servlet容器中的域屬性值:(可以在不同的Servlet實例中進行訪問)
- 從ServletContext中刪除給定名字的域屬性:
- 返回web應用的上下文的路徑:(即web應用的名稱,/應用名)
- 給定的虛擬路徑(基於web應用)以獲取本地盤符下的真實路徑:
附錄:關聯javaee源碼操作
- 因為tomcat軟件是一個實現servlet規範、jsp規範和el規範和webSockect規範的開源項目(都是JavaEE規範中的內容),所以可以關聯對應版本中的tomcat源碼來關聯javaee源碼。
- 如我在Eclipse中使用的tomcat服務器是7.0版本的,可以關聯如下壓縮包以關聯源代碼。
本文出自 “12392717” 博客,請務必保留此出處http://12402717.blog.51cto.com/12392717/1972588
Servlet編程專題2之獲取ServletConfig對象