一、ServletConfig对象
- 在Servlet配置文件中,可以使用一个或多个
<init-param>
标签为servlet配置一些初始化参数; - 当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的initial方法时,将ServletConfig对象传递给servlet,进而程序员通过ServletConfig对象得到当前servlet的初始化参数信息;
- 样例:
<servlet>
<servlet-name>Demo5</servlet-name>
<servlet-class>demo.Demo5</servlet-class>
<init-param>
<param-name>data</param-name>
<param-value>abc</param-value>
</init-param>
</servlet>
二、实例说明
package demo;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//@WebServlet("/servlet/Demo5")
public class Demo5 extends HttpServlet {
private static final long serialVersionUID = 1L;
public Demo5() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//得到指定的参数信息
String value = this.getServletConfig().getInitParameter("data");
System.out.println(value);
//当有多个参数时,获取所有的参数信息
Enumeration e = this.getServletConfig().getInitParameterNames();
while(e.hasMoreElements()){
String name = (String) e.nextElement();
String value1 = this.getServletConfig().getInitParameter(name);
System.out.println(name + "=" + value);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
三、使用场景
在实际开发中,有些内容不适合在servlet程序中写死,这时我们通过配置文件将这些数据传递给servlet
场景一:servlet采用的编码表
配置文件:
<init-param>
<param-name>charset</param-name>
<param-value>UFT-8</param-value>
</init-param>
场景二:servlet连接的数据库
配置文件:
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/test</param-value>
</init-param>
<init-param>
<param-name>username</param-name>
<param-value>root</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>root</param-value>
</init-param>
场景三:servlet读取的配置文件
<init-param>
<param-name>config</param-name>
<param-value>/struts-config.xml</param-value>
</init-param>
- 备注:传智播客视频学习笔记