1、获取配置在Serlet中的参数
(1)配置文件:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>GetInitParamServlet</servlet-name>
<servlet-class>xie.servlet.GetInitParamServlet</servlet-class>
<init-param>
<param-name>admin</param-name>
<param-value>wenzheng</param-value>
</init-param>
<init-param>
<param-name>admin1</param-name>
<param-value>wenzheng1</param-value>
</init-param>
</servlet>
(2) Servlet获取配置文件中的参数
String admin = getInitParameter("admin");
System.out.println(admin);
String admin1 = getServletConfig().getInitParameter("admin");
System.out.println(admin1);
Enumeration<String> adminEnum = getInitParameterNames();
while(adminEnum.hasMoreElements()){
System.out.println("Enumeration:" + adminEnum.nextElement());
}
总结:获取<servlet/>中的配置文件有三种方法:
(1)、getServletConfig().getInitParameter(param):获取Servlet标签中<init-param/>中配置的<param-name>为param的value值;
(2)、getInitParameter(param):功能同上;
(3)、getInitParameterNames():获取Servlet标签中<init-param/>中所有的参数。
2、获取上下文参数(Context-param)
由于init-param标签是写在Servlet标签中的,这个只能由Servlet来读取。如果有个参数能使该工程所有的Servlet都能够读取,则就需要用到上下文参数
(1)、web.xml
<context-param>
<param-name>admin1</param-name>
<param-value>wenzheng1</param-value>
</context-param>
<context-param>
<param-name>admin2</param-name>
<param-value>wenzheng2</param-value>
</context-param>
(2)、Servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext servletContext = getServletContext();
String admin1 = servletContext.getInitParameter("admin1");
System.out.println(admin1);
Enumeration<String> admins = servletContext.getInitParameterNames();
while(admins.hasMoreElements()){
System.out.println(servletContext.getInitParameter(admins.nextElement()));
}
总结:获取上下文参数首先要通过getServletContext()获得上下文对象,然后通过上下文对象的getInitparameterName获取getInitParameterNames()获的配置的上下文参数。