网络.xml排序或过滤器和侦听器



对于Java EE Web应用程序,我有一个实现ServletRequestListener的监听器和一个过滤器。

有没有办法在 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>

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

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

之后,HttpServletRequest 和 HttpServletResponse 被分配给填充器,如果你已经配置了填充器。

意味着侦听器首先出现在 ServletRequest 的图片中。因此,无法配置以使填充器在 ServletRequest 情况下的侦听器之前执行....

ServletRequestListener.requestInitialized()将在调用任何筛选器之前初始化,并在所有筛选器和服务方法返回后ServletRequestListener.requestDestroyed()

最新更新