HttpServlet的父类GenericServlet类中实现了下列方法,用于获取web.xml文件中的初始化参数信息、Servlet名称、ServletContext对象引用。
1.getServletConfig() 获取由Servlet容器初始化servlet时(即调用Servlet.init(ServletConfig config))
传递进来的那个ServletConfig对象的引用。
2.getInitParameterNames() 获取web.xml文件中某个servlet对应设置的初始化参数名称。
3.getInitParameter(String key) 获取web.xml文件中某个servlet对应设置的指定key的参数值。4.getServletName() 获取当前运行的servlet名称。
5.getServletContext() 获取当前运行的servlet所在的servlet容器对应的ServletContext对象引用。
例子:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
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 ConfigTestServlet extends HttpServlet {
/**
*/
private static final long serialVersionUID = 1L;
@SuppressWarnings("unchecked")
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter outer = response.getWriter();
outer.println("<html>");
outer.println("Servlet's name is " + getServletName() + "<br>");
Enumeration e = getServletConfig().getInitParameterNames(); //getServletConfig()可以省略,GenericServlet中已提供getInitParameterNames()方法
outer.println("These are initial parameters :" + "<br>");
while(e.hasMoreElements()) {
String key = (String)e.nextElement();
String value = getInitParameter(key);
outer.println(" " + key + "=" + value + "<br>");
ServletContext context = getServletContext();
String path = context.getRealPath("/");
outer.println("this web application's directory is:" + path + "<br>");
outer.println("</html>");
}
相应web.xml中添加下面的设置。
<servlet>
<servlet-name>ConfigTestServlet</servlet-name>
<servlet-class>ConfigTestServlet</servlet-class>
<init-param>
<param-name>firstname</param-name>
<param-value>zhang</param-value>
</init-param>
<init-param>
<param-name>lastname</param-name>
<param-value>san</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>ConfigTestServlet</servlet-name>
<url-pattern>demo/ConfigTestServlet.html</url-pattern>
</servlet-mapping>