我有几个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>
答案 0 :(得分:1)
如果您只想对特定servlet的请求做出反应,那么servlet本身就是理想的做法。
如果你不控制servlet代码,你可以写一个Filter
并给它与servlet相同的URL模式,或直接引用过滤器映射中的servlet。
答案 1 :(得分: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>