一、
每个servlet有唯一一个ServletConfig,只对配置了的相应servlet可用。
①容器读取这个servlet的部署文件,包括servlet初始化参数()。
②容器为这个servlet创建一个新的ServletConfig实例。
③容器为每个servlet初始化参数创建一个String名/值对。
④容器向ServletConfig提供名/值初始化参数的引用。
⑤容器创建servlet类的一个新实例。
⑥容器调用servlet的init()方法,传入ServletConfig的引用。
测试:
web.xml
<web-app ...>
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
<init-param>
<param-name>paramName</param-name>
<param-value>paramValue</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
</web-app>
servlet:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("text init parameters<br>");
Enumeration e = **getServletConfig()**.getInitParameterNames();
while(e.hasMoreElements()){
out.println("<br>param name = " + e.nextElement() + "<br>");
} out.println(**getServletConfig()**.getInitParameter("paramName"));
}
二、每个Web应用一个ServletContext,对web应用中的所有servlet和JSP都可用
web.xml:
<web-app ...>
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
</servlet>
<context-param>
<param-name>paramName</param-name>
<param-value>paramValue</param-value>
</context-param>
<servlet-mapping>
<servlet-name></servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
</web-app>
servlet:
getServletContext().getInitParameter("paramName");