servlet初始化

时间:2016-03-01 16:03:56

标签: java xml servlets servlet-filters

我有一个Servlet过滤器,由于我的业务逻辑,Filter使用了一些在servlet方法init()调用时初始化的变量。所以问题是:在servlet之后是否有可能进行init过滤。我的Web.xml是下一个:

...
 <servlet>
    <servlet-name>CommonsServlet</servlet-name>
    <servlet-class>com.promptlink.dslib.gwt.common.server.rpc.CommonsServletImpl</servlet-class>
  </servlet>
...
<filter>
        <filter-name>CommonServletFilter</filter-name> 
        <filter-class>com.promptlink.dslib.gwt.common.server.httpListeners.CommonServletFilter</filter-class> 
    </filter>
    <filter-mapping>
        <filter-name>CommonServletFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <servlet-name>CommonsServletImpl</servlet-name>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
...

也许有没有办法在xml中配置过滤器?我很遗憾可以向ServletContext添加过滤器,但我需要添加一个映射来过滤

1 个答案:

答案 0 :(得分:1)

过滤器在servlet之前初始化,请参见此处details

但是你可以在任何过滤器或servlet之前创建一个在应用程序启动时加载的ServletContextListener,在监听器中初始化你的变量,然后让你的serlvets和过滤器使用已经初始化的变量。

侦听器还可以通过编程方式添加servlet和过滤器,请参阅ServletContext.addFilter()ServletContext.addServlet()