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