将 ServletRequestListener 映射到特殊的 Servlet
Map ServletRequestListener to Special Servlet
我有几个 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>
如果您只想对特定 servlet 的请求做出反应,那么 servlet 本身就是执行此操作的理想场所。
如果您不控制 servlet 代码,您可以编写 Filter
并赋予它与 servlet 相同的 URL 模式,或者直接在过滤器映射中引用 servlet。
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>
另请参阅:
- Our servlet filters wiki page
- Why do we need a servlet name?
我有几个 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>
如果您只想对特定 servlet 的请求做出反应,那么 servlet 本身就是执行此操作的理想场所。
如果您不控制 servlet 代码,您可以编写 Filter
并赋予它与 servlet 相同的 URL 模式,或者直接在过滤器映射中引用 servlet。
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>
另请参阅:
- Our servlet filters wiki page
- Why do we need a servlet name?