ServletConfig的含义及使用

来源:互联网 发布:小孩拳霸摇杆淘宝 编辑:程序博客网 时间:2024/06/06 01:42

转自http://blog.csdn.net/qp3887322/article/details/6944182

在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。


当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。


阅读ServletConfig API,并举例说明该对象的作用:
获得字符集编码
获得数据库连接信息
获得配置文件



view plaincopy to clipboardprint?
  1. <?xmlversion="1.0"encoding="UTF-8"?> 
  2. <web-app version="3.0"  
  3.     xmlns="http://java.sun.com/xml/ns/javaee"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  6.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
  7.   <display-name></display-name> 
  8.   <servlet> 
  9.     <servlet-name>DemoServlet</servlet-name> 
  10.     <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class> 
  11.      <init-param> 
  12.         <param-name>version</param-name> 
  13.         <param-value>2.0</param-value> 
  14.     </init-param>  
  15.     <init-param> 
  16.         <param-name>characterEncoding</param-name> 
  17.         <param-value>UTF-8</param-value> 
  18.     </init-param>  
  19.     <init-param> 
  20.         <param-name>driver</param-name> 
  21.         <param-value>com.mysql.jdbc.driver</param-value> 
  22.     </init-param>  
  23.     <init-param> 
  24.         <param-name>url</param-name> 
  25.         <param-value>jdbc:mysql://localhost:3306/3g</param-value> 
  26.     </init-param>  
  27.     <init-param> 
  28.         <param-name>user</param-name> 
  29.         <param-value>root</param-value> 
  30.     </init-param>  
  31.     <init-param> 
  32.         <param-name>password</param-name> 
  33.         <param-value>0904</param-value> 
  34.     </init-param>  
  35.     <load-on-startup>1</load-on-startup> 
  36.   </servlet> 
  37.  
  38.   <servlet-mapping> 
  39.     <servlet-name>DemoServlet</servlet-name> 
  40.     <url-pattern>/demo/*</url-pattern> 
  41.   </servlet-mapping> 
  42.   <servlet-mapping> 
  43.     <servlet-name>DemoServlet</servlet-name> 
  44.     <url-pattern>*.do</url-pattern> 
  45.   </servlet-mapping> 
  46.      
  47.   <welcome-file-list> 
  48.     <welcome-file>index.html</welcome-file> 
  49.   </welcome-file-list> 
  50. </web-app> 
[html] view plaincopyprint?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="3.0"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
  7.   <display-name></display-name>  
  8.   <servlet>  
  9.     <servlet-name>DemoServlet</servlet-name>  
  10.     <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class>  
  11.      <init-param>  
  12.         <param-name>version</param-name>  
  13.         <param-value>2.0</param-value>  
  14.     </init-param>   
  15.     <init-param>  
  16.         <param-name>characterEncoding</param-name>  
  17.         <param-value>UTF-8</param-value>  
  18.     </init-param>   
  19.     <init-param>  
  20.         <param-name>driver</param-name>  
  21.         <param-value>com.mysql.jdbc.driver</param-value>  
  22.     </init-param>   
  23.     <init-param>  
  24.         <param-name>url</param-name>  
  25.         <param-value>jdbc:mysql://localhost:3306/3g</param-value>  
  26.     </init-param>   
  27.     <init-param>  
  28.         <param-name>user</param-name>  
  29.         <param-value>root</param-value>  
  30.     </init-param>   
  31.     <init-param>  
  32.         <param-name>password</param-name>  
  33.         <param-value>0904</param-value>  
  34.     </init-param>   
  35.     <load-on-startup>1</load-on-startup>  
  36.   </servlet>  
  37.   
  38.   <servlet-mapping>  
  39.     <servlet-name>DemoServlet</servlet-name>  
  40.     <url-pattern>/demo/*</url-pattern>  
  41.   </servlet-mapping>  
  42.   <servlet-mapping>  
  43.     <servlet-name>DemoServlet</servlet-name>  
  44.     <url-pattern>*.do</url-pattern>  
  45.   </servlet-mapping>  
  46.       
  47.   <welcome-file-list>  
  48.     <welcome-file>index.html</welcome-file>  
  49.   </welcome-file-list>  
  50. </web-app>  
view plaincopy to clipboardprint?
  1. package cn.csdn.web.servlet; 
  2.  
  3. import java.io.IOException; 
  4. import java.io.PrintWriter; 
  5. import java.util.Enumeration; 
  6. import javax.servlet.ServletConfig; 
  7. import javax.servlet.ServletException; 
  8. import javax.servlet.http.HttpServlet; 
  9. import javax.servlet.http.HttpServletRequest; 
  10. import javax.servlet.http.HttpServletResponse; 
  11.  
  12. public class DemoServletextends HttpServlet { 
  13.  
  14.     /**
  15.      * @author 宋鹤贤
  16.      */ 
  17.  
  18.     private staticfinallong serialVersionUID = 1L; 
  19.  
  20.     /* private ServletConfig config; */ 
  21.  
  22.     @Override 
  23.     public void destroy() { 
  24.         // TODO Auto-generated method stub 
  25.         super.destroy(); 
  26.         System.out.println("销毁"); 
  27.     } 
  28.  
  29.     public DemoServlet() { 
  30.         super(); 
  31.         // TODO Auto-generated constructor stub 
  32.         System.out.println("创建对象"); 
  33.     } 
  34.  
  35.     @Override 
  36.     public void init()throws ServletException { 
  37.         // TODO Auto-generated method stub 
  38.         super.init(); 
  39.         System.out.println("初始化"); 
  40.     } 
  41.  
  42.     @Override 
  43.     public void init(ServletConfig config)throws ServletException { 
  44.         super.init(config); 
  45.         System.out.println("--------------" + config); 
  46.         /* this.config=config; */ 
  47.     } 
  48.  
  49.     public void doGet(HttpServletRequest request, HttpServletResponse response) 
  50.             throws ServletException, IOException { 
  51.         this.doPost(request, response); 
  52.     } 
  53.  
  54.     public void doPost(HttpServletRequest request, HttpServletResponse response) 
  55.             throws ServletException, IOException { 
  56.         /* 设置编码 */ 
  57.         request.setCharacterEncoding("UTF-8"); 
  58.         String version = this.getServletConfig().getInitParameter("version"); 
  59.         String characterEncoding = this.getServletConfig().getInitParameter( 
  60.                 "characterEncoding"); 
  61.  
  62.         Enumeration<String> enumer = this.getServletConfig() 
  63.                 .getInitParameterNames(); 
  64.         // 遍历 
  65.  
  66.         while (enumer.hasMoreElements()) { 
  67.             String name = enumer.nextElement(); 
  68.             String value = this.getServletConfig().getInitParameter(name); 
  69.             System.out.println(name + "===" + value); 
  70.         } 
  71.  
  72.         /* 获取一下PrintWriter对象 */ 
  73.         PrintWriter out = response.getWriter(); 
  74.         out.print("versin=" + version +"\tcharacterEncoding=" 
  75.                 + characterEncoding); 
  76.     } 
  77.  
[java] view plaincopyprint?
  1. package cn.csdn.web.servlet;  
  2.   
  3. import java.io.IOException;  
  4. import java.io.PrintWriter;  
  5. import java.util.Enumeration;  
  6. import javax.servlet.ServletConfig;  
  7. import javax.servlet.ServletException;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11.   
  12. public class DemoServlet extends HttpServlet {  
  13.   
  14.     /** 
  15.      * @author 宋鹤贤 
  16.      */  
  17.   
  18.     private static final long serialVersionUID = 1L;  
  19.   
  20.     /* private ServletConfig config; */  
  21.   
  22.     @Override  
  23.     public void destroy() {  
  24.         // TODO Auto-generated method stub  
  25.         super.destroy();  
  26.         System.out.println("销毁");  
  27.     }  
  28.   
  29.     public DemoServlet() {  
  30.         super();  
  31.         // TODO Auto-generated constructor stub  
  32.         System.out.println("创建对象");  
  33.     }  
  34.   
  35.     @Override  
  36.     public void init() throws ServletException {  
  37.         // TODO Auto-generated method stub  
  38.         super.init();  
  39.         System.out.println("初始化");  
  40.     }  
  41.   
  42.     @Override  
  43.     public void init(ServletConfig config) throws ServletException {  
  44.         super.init(config);  
  45.         System.out.println("--------------" + config);  
  46.         /* this.config=config; */  
  47.     }  
  48.   
  49.     public void doGet(HttpServletRequest request, HttpServletResponse response)  
  50.             throws ServletException, IOException {  
  51.         this.doPost(request, response);  
  52.     }  
  53.   
  54.     public void doPost(HttpServletRequest request, HttpServletResponse response)  
  55.             throws ServletException, IOException {  
  56.         /* 设置编码 */  
  57.         request.setCharacterEncoding("UTF-8");  
  58.         String version = this.getServletConfig().getInitParameter("version");  
  59.         String characterEncoding = this.getServletConfig().getInitParameter(  
  60.                 "characterEncoding");  
  61.   
  62.         Enumeration<String> enumer = this.getServletConfig()  
  63.                 .getInitParameterNames();  
  64.         // 遍历  
  65.   
  66.         while (enumer.hasMoreElements()) {  
  67.             String name = enumer.nextElement();  
  68.             String value = this.getServletConfig().getInitParameter(name);  
  69.             System.out.println(name + "===" + value);  
  70.         }  
  71.   
  72.         /* 获取一下PrintWriter对象 */  
  73.         PrintWriter out = response.getWriter();  
  74.         out.print("versin=" + version + "\tcharacterEncoding="  
  75.                 + characterEncoding);  
  76.     }  
  77.   
  78. }  


代码如上:我们发布到tomcat中,然后开启tomcat服务器,在浏览器中输入http://localhost:8080/20111018/xxx.do,界面返回结果如下: