在实际开发中,有时候一些变量或者条件不好写死到程序中,需要使用者动态的配置这些内容,比如连接数据库的时候数据库的地址,用户名和密码等等,这些东西一班配置到web.xml中,但是如何才能提前或者这些内容呢,下面使用的ServletCongue 类就能完成这个内容,下面奉上代码,请看,呵呵呵,
首先贴上web.xml代码,这个比较看起来容易一些
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
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
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>ServletDemo3</servlet-name>
<servlet-class>com.bird.servlet.ServletDemo3</servlet-class>
<init-param>
<param-name>data1</param-name>//主要看这里
<param-value>XXXXXXXAAA</param-value>
</init-param>
<init-param>
<param-name>data2</param-name>
<param-value>YYYYYYYYYYYYY</param-value>
</init-param>
<init-param>
<param-name>data3</param-name>
<param-value>ZZZZZZZZZZZZZZZZZ</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo3</servlet-name>
<url-pattern>/servlet/ServletDemo3</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
主要注意
<init-param>
<param-name>data3</param-name>
<param-value>ZZZZZZZZZZZZZZZZZ</param-value>
</init-param>
这几个标签,这个是最重要的
下面再贴上Servlet代码
package com.bird.servlet; import java.io.IOException; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @use 使用ServletConfigue得到配置数据 * @author Bird * */ public class ServletDemo3 extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //得到指定的数据 /* String value = this.getServletConfig().getInitParameter("data1"); System.out.println(value);*/ //得到所有的数据 Enumeration<?> e = this.getServletConfig().getInitParameterNames(); while(e.hasMoreElements()){ String name = (String) e.nextElement(); String value = this.getServletConfig().getInitParameter(name); System.out.println(value); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
运行结果如图
信息: Reloading context [/Demo] XXXXXXXAAA YYYYYYYYYYYYY ZZZZZZZZZZZZZZZZZ