一、简介
ServletConfig翻译成中文,就是Servlet配置,代表的是Servlet的配置信息,它对应着web.xml文件中的<servlet>标签。调用Servlet的init方法时,该对象作为参数一并传入。
如图:
图1 serlet标签
二、功能
ServletConfig中封装的是Servlet的配置信息,可以通过它来获取web.xml文件中<servlet-name>标签的内容等其他配置信息。
主要方法如下:
String getInitParameter(String name) | 该方法是通过参数名获取Servlet在web.xml文件中配置的初始化参数。 |
Enumeration getInitParameterNames() | 该方法是获取Servlet在web.xml文件中配置的所有初始化参数的名称。 |
ServletContext getServletContext() | 该方法是获取ServletContext对象,后面会详细讲解该对象。 |
String getServletName() | 该方法是获取Servlet在web.xml文件中配置的名称,即<servlet-name>元素的内容。 |
三、使用
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class AServlet implements Servlet {
private ServletConfig config;
//第一次访问的时候调用该方法 , servlet初始化之后会一直存在于服务器内存中.
public void init(ServletConfig config) throws ServletException {
this.config = config;
System.out.println("Aservlet初始化资源!!");
}
//每次请求到达时调用该方法处理请求
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
System.out.println("正在处理请求!!");
res.getWriter().println("hello kitty!this is AServlet");
//使用以下servletconfig对象获得一些启动信息
ServletConfig config = getServletConfig();
//获得servlet名称
System.out.println("servlet的名称:"+config.getServletName());
//获得InitParameter
System.out.println("获得配置中的用户名:"+config.getInitParameter("name"));
Enumeration en = config.getInitParameterNames();
while(en.hasMoreElements()){
String key = (String) en.nextElement();
System.out.println("遍历配置中的键值对:"+key+"===>"+config.getInitParameter(key));
}
}
// 返回一些启动的信息.这些信息就封装在ServletConfig对象当中.
public ServletConfig getServletConfig() {
return config;
}
}
总结:
ServletConfig对象的功能还是相对较为简单的,主要是用来读取web.xml中的一些配置信息,如果我们的servlet需要访问到数据库的话,可以将用户名和密码保存到初始化参数中,通过ServletConfig就可以很方便的调用了。