getInitParameter方法来自于GenericServlet,一般创建Servlet都是继承自HttpServlet,而HttpServlet是GenericServlet的子类,由此通常我们的Servlet都是可以调用该方法去获取web.xml配置文件中的配置信息:
1、web.xml部分信息:
<!-- 全局配置 --> <context-param> <param-name>global</param-name> <param-value>Okes</param-value> </context-param> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>com.web.servlets.TestServlet</servlet-class> <!-- 局部配置,即TestServlet的配置 --> <init-param> <param-name>name</param-name> <param-value>wangzp,tanhq</param-value> </init-param> <init-param> <param-name>name1</param-name> <param-value>wangzp1,tanhq1</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/test.do</url-pattern> </servlet-mapping>
2、如果获取局部配置以及全局配置
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
/**
* 获取<init-param></init-param>中的属性
* name : <init-name>name</init-name>
* value : <init-value>value</init-value>
* 通过getInitParameter(name)就可以获取value中的值
*/
out.println(getInitParameter("name"));
/**
* 当有多个上述中的标签时,那么可以使用getInitParameterNames
* 获取所有的属性名称,然后通过getInitParameter获取对应的属性值
*/
Enumeration enums = getInitParameterNames();
while(enums.hasMoreElements()){
System.out.println(enums.nextElement());
}
/**
* 获取全局属性配置:
* 1、必须通过getServletConfig(),或者getServletContext(),然后调用 getInitParameter方法获取;
* 2、全局标签<context-param></context-param>
*/
out.println(getServletContext().getInitParameter("global"));
out.flush();
out.close();
}
3、总结
3.1 局部Servlet配置属性获取:使用getInitParameter或者getInitParameterNames;
3.2 全局Servlet配置属性获取:使用servletConfig或者ServletContext对象调用getInitParameter获取即可
转载于:https://blog.51cto.com/793404905/1540259