1.1、配置Servlet初始化参数
在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。
例如:
1 <servlet> 2 <servlet-name>ServletConfigDemo1</servlet-name> 3 <servlet-class>gacl.servlet.study.ServletConfigDemo1</servlet-class> 4 <!--配置ServletConfigDemo1的初始化参数 --> 5 <init-param> 6 <param-name>name</param-name> 7 <param-value>gacl</param-value> 8 </init-param> 9 <init-param> 10 <param-name>password</param-name> 11 <param-value>123</param-value> 12 </init-param> 13 <init-param> 14 <param-name>charset</param-name> 15 <param-value>UTF-8</param-value> 16 </init-param> 17 </servlet>
1.2、通过ServletConfig获取Servlet的初始化参数
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
例如:
1 package gacl.servlet.study; 2 3 import java.io.IOException; 4 import java.util.Enumeration; 5 import javax.servlet.ServletConfig; 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 public class ServletConfigDemo1 extends HttpServlet { 12 13 /** 14 * 定义ServletConfig对象来接收配置的初始化参数 15 */ 16 private ServletConfig config; 17 18 /** 19 * 当servlet配置了初始化参数后,web容器在创建servlet实例对象时, 20 * 会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时, 21 * 将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以 22 * 得到当前servlet的初始化参数信息。 23 */ 24 @Override 25 public void init(ServletConfig config) throws ServletException { 26 this.config = config; 27 } 28 29 public void doGet(HttpServletRequest request, HttpServletResponse response) 30 throws ServletException, IOException { 31 //获取在web.xml中配置的初始化参数 32 String paramVal = this.config.getInitParameter("name");//获取指定的初始化参数 33 response.getWriter().print(paramVal); 34 35 response.getWriter().print("<hr/>"); 36 //获取所有的初始化参数 37 Enumeration<String> e = config.getInitParameterNames(); 38 while(e.hasMoreElements()){ 39 String name = e.nextElement(); 40 String value = config.getInitParameter(name); 41 response.getWriter().print(name + "=" + value + "<br/>"); 42 } 43 } 44 45 public void doPost(HttpServletRequest request, HttpServletResponse response) 46 throws ServletException, IOException { 47 this.doGet(request, response); 48 } 49 50 }
运行结果如下: