【问题标题】:Map ServletRequestListener to Special Servlet将 ServletRequestListener 映射到特殊的 Servlet
【发布时间】:2016-06-09 21:57:47
【问题描述】:

我有几个 servlet,就我而言,我需要实现 ServletRequestListener。但是,我不希望侦听器对任何 servlet 中的每个请求做出反应。我想知道是否有可能将特定的 ServletRequestListener 映射到特定的特定 servlet。我的 web.xml 看起来像:

 <servlet>
    <servlet-name>CommonsServlet</servlet-name>
    <servlet-class>
        com.promptlink.dslib.gwt.common.server.rpc.CommonsServletImpl</servlet-class>
  </servlet>
...
<listener>
        <listener-class>
            com.promptlink.dslib.gwt.common.server.httpListeners.ServletRequestListenerImpl
        </listener-class>
  </listener>

【问题讨论】:

    标签: servlets gwt


    【解决方案1】:

    ServletRequestListener 无法做到这一点。 servlet 请求侦听器侦听每个 servlet 请求。只需创建一个 Filter 即可,您可以直接映射到 servlet 名称(不,不是它的 URL 模式,这对维护不友好)。

    <filter>
        <filter-name>CommonFilter</filter-name>
        <filter-class>com.example.CommonFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>CommonFilter</filter-name>
        <servlet-name>CommonsServlet</servlet-name>
    </filter-mapping>
    

    另见:

    【讨论】:

      【解决方案2】:

      如果您只想对特定 servlet 的请求做出反应,那么 servlet 本身就是执行此操作的理想场所。

      如果您不控制 servlet 代码,您可以编写 Filter 并为其赋予与 servlet 相同的 URL 模式,或者直接在过滤器映射中引用 servlet。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-17
        • 2012-12-22
        • 2015-06-03
        • 1970-01-01
        • 2010-12-30
        • 2023-03-22
        • 2012-06-23
        • 1970-01-01
        相关资源
        最近更新 更多