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>