ServletConfig对象
- 每个servlet都有一个ServletConfig对象
- 用于向servlet传递部署时信息
- 用于访问ServletContext
- 参数在部署描述文件中部署
初始化参数
<servlet>
<servlet-name>ParamTests</servlet-name>
<servlet-class>com.TestInitParams</servlet-class>
<init-param>
<param-name>zy</param-name>
<param-value>zy@test.com</param-value>
</init-param>
</servlet>
在servlet代码中
读取一个参数
getServletConfig().getInitParameter("zyEmail");
读取所有参数
java.util.Enumeration e = getServletConfig().getInitParameterNames();
while(e.hasMoreElements()){
String s = e.nextElement().toString();
out.println("<br>param name = " + s + "<br>");
out.println(getServletConfig().getInitParameter(s));
}
getServletConfig()是ServletConfig的一个方法(容器初始化一个servlet时,会为这个servelt建一个唯一的ServletConfig.容器从部署描述文件中读取servlet初始化参数,并把这些参数交给ServletConfig,然后把ServletConfig传递给servlet的init()方法)
(父类有两个版本的init()方法,一个无参的,一个有ServletConfig参数,带参的会调用无参的init()方法,所以继承时只需重写无参数的就够了)
ServletContext对象
- 每个Web应用有一个ServletContext对象
- 用于访问Web应用参数(参数也在部署描述文件中配置)
- 相当于一种应用公告栏,可以在这里放置消息(称为属性),应用的其他部分可以访问这些消息
- 得到服务器信息,包括容器名、容器版本,以及所支持API的版本等
上下文初始化参数
与servlet初始化参数类似,只不过上下文参数对整个Web应用可用,而不是只针对一个servlet
<context-param>
<param-name>zyEmail</param-name>
<param-value>zy@testEmail.com</param-value>
</context-param>
getServletContext().getInitParameter("zyEmail");
上下文监听器(实现ServletContextListener接口)
部署描述文件中要放入一个<listener>元素
<listener>
<listener-class>
com.MyServletContextListener
</listener-class>
</listener>