ServletConfig的使用

3 篇文章 0 订阅

在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; */

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		super.destroy();
		System.out.println("销毁");
	}

	public DemoServlet() {
		super();
		// TODO Auto-generated constructor stub
		System.out.println("创建对象");
	}

	@Override
	public void init() throws ServletException {
		// TODO Auto-generated method stub
		super.init();
		System.out.println("初始化");
	}

	@Override
	public 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,界面返回结果如下:


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值