读取web.xml的配备参数和Servlet的配置参数

读取web.xml的配置参数和Servlet的配置参数

package com;

import java.util.Enumeration;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
/****
 * 获得web.xml配置文件的配置参数的类
 * @时间 2010-08-04
 *
 */
public class getInitParamServlet extends HttpServlet{   
 private static final long serialVersionUID = -2384654887939870118L;
 //无参构造
 public getInitParamServlet(){   
        super();   
    }
    //重写HttpServlet的方法。
 //tomcat在通过读取web.xml文件是实例化相应的Servlet,每一个Servlet的init方法都会被调用。
    public void init() throws ServletException {
     String uid = this.serialVersionUID+"";
     System.out.println("当前Servlet序列I=="+uid);
  //打印当前Servlet自身的配置参数。
  System.out.println("当前Servlet的参数param1的值是"+this.getServletInitParam("param1"));
  System.out.println("当前Servlet的参数spaceURL的值是"+this.getServletInitParam("spaceURL"));//显示为空,因为spaceURL是全局参数。
  //查看web.xml中所有的全局的配置参数名称和值(不是当前Servlet的配置参数)
  showAllContextParams();
    }
    /**
     * 获得当前servlet的init的参数的值
     * @param paramName 初始化参数的名称
     * @return 参数的值
     */
    public String getServletInitParam(String paramName){
     //调用HttpServlet父类的方法。
     return  this.getInitParameter(paramName);
    }
    /**
     * 获得当前web.xml配置文件的init的参数的值
     * @param paramName 初始化参数的名称
     * @return 参数的值
     */
    public String getContextInitParam(String paramName){
     //获得当前的web.xml配置文件
     ServletContext content =  this.getServletContext();
     //返回当前web.xml配置文件的配置参数。
     return  content.getInitParameter(paramName);
    }
   
    /**
     * 获得所有web.xml文件下的所有配置参数param-name
     */
    public void showAllContextParams(){
     ////获得当前的web.xml配置文件
     ServletContext content =  this.getServletContext();
     //返回当前web.xml配置文件的配置所有参数名称的枚举。
     Enumeration names =  content.getInitParameterNames()  ;
     System.out.println("web.xml文件下的所有变量名称和值--------------------\nname\t\t=\tvalue");
     int i=1;
     //循环打印
     while(names.hasMoreElements()){
      String n = names.nextElement().toString();
      System.out.println(i+"."+n+"\t=\t"+getContextInitParam(n));
      i++;
     }
    }
}
/***********
web.xml中配置参数的内容
<context-param>  
       <param-name>spaceURL</param-name>  
       <param-value>http://www.baidu.com</param-value>  
</context-param>  
<context-param>          
 <param-name>indexName</param-name>          
 <param-value>index.jsp</param-value>
</context-param>

<servlet>  
    <servlet-name>getInitParamServlet</servlet-name>  
    <servlet-class>com.getInitParamServlet</servlet-class>  
    <init-param>  
       <param-name>param1</param-name>  
       <param-value>this param is only called in servlet</param-value>  
    </init-param>  
    <load-on-startup>0</load-on-startup>  
</servlet>  

--------------启动tomcat的时候控制台输出内容:------------------
当前Servlet序列I==-2384654887939870118
当前Servlet的参数param1的值是this param is only called in servlet
当前Servlet的参数spaceURL的值是null
web.xml文件下的所有变量名称和值--------------------
name  = value
1.indexName = index.jsp
2.spaceURL = http://www.baidu.com
*/