1. 程式人生 > >Servlet獲取配置信息(ServletConfig)和ServletContext

Servlet獲取配置信息(ServletConfig)和ServletContext

-m gets play lan utf-8 over 三種方式 lis string

ServletConfig

ServletConfig:當Servlet容器初始化Servlet時,Servlet容器會給Servlet的init方法傳入一個ServletConfig。ServletConfig封裝可以通過@WebServlet或者部署描述符傳給Servlet的配置信息。這樣傳入的每條信息就叫做一條初始參數,要在Servlet容器傳給Servlet的init方法的ServletConfig中調用getInitParameter方法getInitParameter的方法簽名如下:

java.lang.String getInitParameter(java.lang.String name)

此外,getInitParameterNames方法則是返回所有初始參數名稱的一個Enumeration:

java.util.Enumeration<java.lang.String> getInitParameterNames();

例如:為了獲取contactName參數值,要使用下面的方法簽名:

String contactName=servletConfig.getInitParameter("contactName");

除了getInitParamter和getInitParamterNames外,ServletConfig還提供了另外一個很有用的方法:getServletContext。利用這個方法可以從Servlet內部獲取ServletContext。

web.xml中配置信息的獲取,一共有三種方式

public class servletConfig extends HttpServlet{

	private ServletConfig config;
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	// TODO Auto-generated method stub
	//1.得到ServletConfig對象的第一種方式
	String encoding1=config.getInitParameter("encoding");
	System.out.println(encoding1);	
		
	//2.得到ServletConfig對象的第二種方式
        //getServletConfig()方法在Servlet接口 中定義的,GenericServlet重寫了該方法
	String encoding3=this.getServletConfig().getInitParameter("encoding");
	System.out.println(encoding3);
		
		
	//3.得到ServletConfig對象的第三種方式
        //HttpServlet繼承了GenericServlet,GenericServlet實現了ServletConfig接口
        //ServletConfig接口中有getInitParameter()方法,GenericServlet重寫了該方法
	String encoding2=this.getInitParameter("encoding");
	System.out.println(encoding2);
	}	
}

  原web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>	
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>com.zk.myservlet.servletConfig</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  

Servlet獲取配置信息(ServletConfig)和ServletContext