ServletConfig的使用

来源:互联网 发布:linux cp命令详解 编辑:程序博客网 时间:2024/05/16 13:56

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


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


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



<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  <display-name></display-name>  <servlet>    <servlet-name>DemoServlet</servlet-name>    <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class>     <init-param>    <param-name>version</param-name>    <param-value>2.0</param-value>    </init-param>     <init-param>    <param-name>characterEncoding</param-name>    <param-value>UTF-8</param-value>    </init-param>     <init-param>    <param-name>driver</param-name>    <param-value>com.mysql.jdbc.driver</param-value>    </init-param>     <init-param>    <param-name>url</param-name>    <param-value>jdbc:mysql://localhost:3306/3g</param-value>    </init-param>     <init-param>    <param-name>user</param-name>    <param-value>root</param-value>    </init-param>     <init-param>    <param-name>password</param-name>    <param-value>0904</param-value>    </init-param>     <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>DemoServlet</servlet-name>    <url-pattern>/demo/*</url-pattern>  </servlet-mapping>  <servlet-mapping>    <servlet-name>DemoServlet</servlet-name>    <url-pattern>*.do</url-pattern>  </servlet-mapping>    <welcome-file-list>    <welcome-file>index.html</welcome-file>  </welcome-file-list></web-app>

package cn.csdn.web.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.Enumeration;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class DemoServlet extends HttpServlet {/** * @author 宋鹤贤 */private static final long serialVersionUID = 1L;/* private ServletConfig config; */@Overridepublic void destroy() {// TODO Auto-generated method stubsuper.destroy();System.out.println("销毁");}public DemoServlet() {super();// TODO Auto-generated constructor stubSystem.out.println("创建对象");}@Overridepublic void init() throws ServletException {// TODO Auto-generated method stubsuper.init();System.out.println("初始化");}@Overridepublic void init(ServletConfig config) throws ServletException {super.init(config);System.out.println("--------------" + config);/* this.config=config; */}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/* 设置编码 */request.setCharacterEncoding("UTF-8");String version = this.getServletConfig().getInitParameter("version");String characterEncoding = this.getServletConfig().getInitParameter("characterEncoding");Enumeration<String> enumer = this.getServletConfig().getInitParameterNames();// 遍历while (enumer.hasMoreElements()) {String name = enumer.nextElement();String value = this.getServletConfig().getInitParameter(name);System.out.println(name + "===" + value);}/* 获取一下PrintWriter对象 */PrintWriter out = response.getWriter();out.print("versin=" + version + "\tcharacterEncoding="+ characterEncoding);}}


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


原创粉丝点击