您的位置:首页 > Web前端 > JavaScript

jsp笔记之 读取web.xml配置参数

2010-09-16 23:32 579 查看
在web.xml设置一此配置参数,如一些程序的配置信息等等。

web.xml设置参数的格式

<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>TestInitParams</servlet-class>
<init-param>
<param-name>userEmail</param-name>
<param-value>likewecare@wickedlysmart.com</param-value>
</init-param>
</servlet>

设置很简单。

<param-name>userEmail</param-name>这样来设置参数的名称,如userEmail是参数的名称
<param-value>likewecare@wickedlysmart.com</param-value>,这是userEmail这个参数的值,likewecare@wickedlysmart.comj是userEmail的值,其实就是key-value这样的设置

在代码中读取此值

getServletConfig().getInitParameter("userEmail"),这样就可以读取配置文件的参数的值了。

每一个servlet都继承了getServletConfig()方法,他有一个方法getInitParameter(String paramName),根据参数名称返回参数的值。

下面引用几句在书上看到的话。

(1)web.xml中的参数不会被实例化,只有servlet被实例化才可以;

(2)不是在你的构造函数中调用ServletConfig的方法,这样太早了,还没有被实例化,只有容器调用了init()方法之后才可以。

(3)servlet实例化此参数只一次,只有在servlet容器实例化servlet的时候。

举例

web.xml文件

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>paramTest</servlet-name>
<servlet-class>TestInitParams</servlet-class>
<init-param>
<param-name>adminEmail</param-name>
<param-value>likewecare@wickedlysmart.com</param-value>
</init-param>
<init-param>
<param-name>mainEmail</param-name>
<param-value>blooper@wickedlysmart.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>paramTest</servlet-name>
<url-pattern>/param.do</url-pattern>
</servlet-mapping>
</web-app>


servlet代码

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestInitParams extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("test init parameters<br>");
java.util.Enumeration e = getServletConfig().getInitParameterNames();
while(e.hasMoreElements()) {
out.println("<br>param name = " + e.nextElement() + "<br>");
} out.println("main email is " + getServletConfig().getInitParameter("mainEmail"));
out.println("<br>");
}

public void destroy() {
System.err.println(getServletName()+"生命周期结束");;
}

public void init() throws ServletException {
System.out.println(getServletName()+"执行初始化");
}
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: