servletConfig的应用

简介: 在Servlet的配置文件中,可以使用一个或多个标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。

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


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


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

 

 

 

  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
 
  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 /*HttpServlet父类有两个init方法,一个有参一个没参数*/
  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.  
 


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

目录
相关文章
|
7月前
|
存储 应用服务中间件 数据库
【JavaWeb】知识总结Ⅸ(ServletConfig, ServletContext)
ServletConfig 类是为 Servlet 程序的配置信息的类 2. Servlet 程序和 ServletConfig 对象都是由 Tomcat 负责创建 3. Servlet 程序默认是第 1 次访问的时候创建, ServletConfig 在 Servlet 程序创建时,就创 建一个对应的 ServletConfig ServletConfig 类能干什么 1. 获取 Servlet 程序的 servlet-name 的值 2. 获取初始化参数 init-param 3. 获取 ServletContext 对象
|
7月前
ServletContext和ServletConfig使用说明
ServletContext和ServletConfig使用说明
26 0
|
8月前
|
XML 关系型数据库 MySQL
ServletConfig和ServletContext 的介绍和代码实现
ServletConfig和ServletContext 的介绍和代码实现
45 0
|
10月前
|
应用服务中间件
初识ServletConfig
初识ServletConfig
50 0
|
10月前
|
存储 应用服务中间件 测试技术
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
Servlet中的ServletConfig对象、ServletContext对象以及Servlet3.0
54 1
|
XML Java 应用服务中间件
谈谈 ServletConfig 和 ServletContext
我们都知道Servlet是框架的灵魂,学习web框架最底层离不开Servlet的支持,那么Servlet 是什么呢?如何创建一个Servlet 不是本文的重点,相关文章可以参考
75 0
|
应用服务中间件
|
应用服务中间件 容器
一文带你了解ServletContext
ServletContext是一个全局的储存信息的空间,服务器开始就存在,服务器关闭才释放 架构图示: 我们可以把ServletContext当成一个公用的空间,可以被所有的客户访问,WEB容器在启动时,它会为每个Web应用程序都创建一个对应的ServletContext,它代表当前Web应用,并且它被所有客户端共享,公共聊天室就会用到它 同时,多个Servlet也可以通过ServletContext来进行通信操作 当web应用关闭、Tomcat关闭或者Web应用reload的时候,ServletContext对象会被销毁🙌
83 10
一文带你了解ServletContext
|
应用服务中间件
ServletConfig对象
ServletConfig对象介绍