我有几个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>
发布于 2016-02-26 08:13:02
这在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>
另请参阅:
发布于 2016-02-26 07:48:36
如果您只想对特定servlet的请求作出反应,那么servlet本身将是进行此操作的理想场所。
如果您不控制servlet代码,您可以编写一个Filter
,并给它与servlet相同的URL模式,或者在过滤器映射中直接引用servlet。
https://stackoverflow.com/questions/35655894
复制相似问题