读取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
*/