当servlet配置了初始化参数后,web容器在创建servlet对象的时候会自动将这些初始化参数分装到ServletConfig对象当中去,并在调用servlet的init方法的时候将ServletConfig对象传递给servlet,进而程序员可以通过ServletConfig对象就可以获得web应用的初始化参数。
1.如何去获取当前web应用的ServletConfig对象?
通过观察Genericservlet的源码,我们可以看到在GenericServlet中将ServletConfig对象作为了类变量,并且有getServletConfig方法可以获取ServletConfig对象。因此作为GenericServlet的子类,HttpServlet亦可以通过这个方法来获得ServletConfig对象。
ServletConfig config=this.getServletConfig();
2.ServletConfig对象当中的几个比较重要的方法:
config.getServletName()//获取当前servlet在web.xml文件当中的配置名称
config.getInitParamater("String name");//获取当前Servlet配置当中的指定名称的初始化参数的值
config.getInitParameter();//获取当前servlet所有配置参数组成的一个枚举
ServletContext getServletContext()//获取当前web应用的ServletContext对象
package com.hhuc;
import java.io.IOException;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Servletconfig extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletConfig config = this.getServletConfig();// 获取config对象
// --获取当前Servlet在web.xml中的配置名称
String sname = config.getServletName();
System.out.println(sname);
// --获取当前Servlet配置中的初始化参数
String value = config.getInitParameter("name2");
System.out.println(value);
// --获取当前Servlet配置中的初始化参数枚举
Enumeration enumeration = config.getInitParameterNames();
while (enumeration.hasMoreElements()) {
String name = (String) enumeration.nextElement();
String value2 = config.getInitParameter(name);
System.out.println(value2);
}
// 获取一个ServletContext对象
ServletContext context = config.getServletContext();
Enumeration e = context.getInitParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String value3 = context.getInitParameter(name);
System.out.println(name + ":" + value3);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
其实总的来说,ServletConfig对象并不是特别的重要。