web.xml命令或过滤器和监听器

Dav*_*lla 5 servlets servlet-filters servlet-listeners

对于Java EE Web应用程序,我有一个实现ServletRequestListener的侦听器和一个Filter.

有没有办法在web.xml中指定应该在侦听器之前调用过滤器?

我已经尝试在侦听器之前声明过滤器及其映射,但之前仍然执行了侦听器.

任何的想法?

  <filter>
    <filter-name>myfilter</filter-name>
    <filter-class>com.example.MyFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>myfilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  <listener>
    <listener-class>com.example.MyServletRequestListener </listener-class>
  </listener>
Run Code Online (Sandbox Code Playgroud)

小智 12

当Browser(客户端)请求服务器时,像(Tomcat)这样的容器为客户端请求创建请求对象HttpServletRequest和响应对象HttpServletResponse,如果配置任何实现"ServletRequestListener"的侦听器,则"public void requestInitialized(ServletRequestEvent sre)"方法会调用

在容器创建请求和响应对象后,如果有任何侦听器,则侦听器将首先执行.....

之后,HttpServletRequest和HttpServletResponse被分配给Fillter,如果你配置了Fillter ....

意味着监听器首先为ServletRequest提供图片.所以没有办法配置让Fillter在ServletRequest案例中的Listener之前执行....


Ram*_*PVK 5

ServletRequestListener.requestInitialized()任何过滤器被调用之前将被初始化ServletRequestListener.requestDestroyed()所有的过滤器和服务方法返回后.