在实际开发中,有时候一些变量或者条件不好写死到程序中,需要使用者动态的配置这些内容,比如连接数据库的时候数据库的地址,用户名和密码等等,这些东西一班配置到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