ServletConfig对象使用
在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServeltConfig对象中,并在调用servlet的init方法时,将ServeltConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
例子1:
在web.xml中配置
<servlet>
<servlet-name>ServletDemo5</servlet-name>
<servlet-class>cn.itcast.ServletDemo5</servlet-class>
<init-param>
<param-name>data</param-name>
<param-value>"woshidahuilang!!!"</param-value>
</init-param>
</servlet>
编写ServletDemo5
package cn.itcast;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
public class ServletDemo5 extends HttpServlet {
private ServletConfig config;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
OutputStream res=response.getOutputStream();
res.write(config.getInitParameter("data").getBytes());
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
@Override
public void init(ServletConfig config) throws ServletException {
this.config=config;
}
}
在浏览器中输入:http://localhost:8088/JavaWebChuan/servlet/ServletDemo5
可以看见:"woshidahuilang!!!"
例子2:
Web.xml配置
<servlet>
<servlet-name>ServletDemo5</servlet-name>
<servlet-class>cn.itcast.ServletDemo5</servlet-class>
<init-param>
<param-name>data</param-name>
<param-value>"Dahuilangshiwo!!"</param-value>
</init-param>
<init-param>
<param-name>data1</param-name>
<param-value>"yyyyyy!!"</param-value>
</init-param>
<init-param>
<param-name>data2</param-name>
<param-value>"zzzzzz"</param-value>
</init-param>
</servlet>
ServletDemo5代码为:
package cn.itcast;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*;
public class ServletDemo5 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter res=response.getWriter();
Enumeration e =this.getServletConfig().getInitParameterNames();
while(e.hasMoreElements()){
String name= (String) e.nextElement();
String value =this.getServletConfig().getInitParameter(name);
res.println(name+"="+value);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
输入http://localhost:8088/JavaWebChuan/servlet/ServletDemo5
结果为:data1="yyyyyy!!" data="Dahuilangshiwo!!" data2="zzzzzz"
ServletConfig对象:用于封装servlet的配置信息。
在实际开发中,有一些东西不适合在servlet程序中写死,这类数据就可以通过配置方式配给servlet,例如:servlet采用哪个码表,servlet连接哪个数据库,servlet哪个配置文件