4
 <listener>
    <listener-class>config</listener-class>
</listener> 
  <servlet>
<servlet-name>ProcessReg</servlet-name>
<servlet-class>ProcessReg</servlet-class>
<init-param>
    <param-name>text</param-name>
    <param-value>HelloWorld1</param-value>
</init-param>

public class config implements ServletContextListener {



@Override
public void contextInitialized(ServletContextEvent event) {
    ServletContext servletContext = event.getServletContext();
    String text1 = servletContext.getInitParameter("text");

在方法 contextInitialized(ServletContextEvent event)中,如果有两个 servlet,例如,假设第二个 servlet 的名称是Servlet2,假设 has 也init - param调用text了 value HelloWorld2

怎么listener 知道带ProcessRegservlet?

如何paramServlet2??

4

1 回答 1

6

您需要区分 servlet 初始化参数和上下文初始化参数。

上下文初始化参数为:

  • 上下文范围;
  • 在根目录<context-param>下的元素中声明;<web-app>
  • 通常使用该ServletContext.getInitParameter()方法访问,例如从侦听器的contextInitialized()方法内部。

Servlet 初始化参数有:

  • 特定于 servlet;
  • <init-param>元素内的<servlet>元素中声明;
  • 通常使用该ServletConfig.getInitParameter()方法访问,例如从 servlet 的init()方法内部。
于 2016-01-21T05:20:07.000 回答