java - 如何配置过滤器在 servlet 处理后工作?

标签 java servlets servlet-filters

简而言之,我希望某个过滤器在 servlet 处理后运行,以检查请求属性中的值,并根据该值重定向到某个 URl。

在 web.xml 中,

我已将元素按顺序放在最后,在 doFilter 方法中我调用“chain.doFilter(request, response);”第一行然后我的逻辑随后执行。

那是在 tomcat 5.5 中,它在两台本地机器上工作正常,但在其他测试机器上却不行,tomcat 版本略有不同,在本地机器上是 tomcat 5.5.17,而在测试服务器上是 5.5。 27.

知道问题出在哪里吗? , 我很高兴分享答案,谢谢

网络.xml

<!-- #########################################################################
   ## Filters
   ######################################################################### -->

 <filter>
    <filter-name>other filters</filter-name>

  </filter>
    .
    .
    .
  <filter>
   <filter-name>UrlRedirectFilter</filter-name>
   <filter-class>......filter.UrlRedirectFilter</filter-class>
  </filter>
    .
    .
    .

  <filter>
    <filter-name>other filters</filter-name>

  </filter>


<!-- #########################################################################
      ## Filter Mappings
     ######################################################################### -->


  <filter-mapping>
     . 
     .
  </filter-mapping>

  <filter-mapping>
   <filter-name>UrlRedirectFilter</filter-name>
    <url-pattern>/*</url-pattern>
   </filter-mapping>

  <!-- #########################################################################
   ## Servlet context listeners for application initialization.
   ######################################################################### -->

  <listener>
     <listener-class>....</listener-class>
  </listener>


  <!-- #########################################################################
       ## Servlets
       ######################################################################### -->



  <servlet>
   <servlet-name>...</servlet-name>
   <servlet-class>..</servlet-class>
  </servlet>


  <!-- #########################################################################
        ## Servlet mappings
       ######################################################################### -->

  <servlet-mapping>
    <servlet-name>...</servlet-name>
    <url-pattern>...</url-pattern>
  </servlet-mapping>



  <!-- #########################################################################
   ## Welcome File List
   ######################################################################### -->


  <welcome-file-list>
    <welcome-file>_ignorewelcomefiles_</welcome-file>
  </welcome-file-list>

  <!-- #########################################################################
       ## Error Pages
       ######################################################################### -->

 </web-app>

最佳答案

似乎一切都很好:

  1. 检查日志是否有任何提示
  2. chain.doFilter(..) 行之后添加一个日志消息/System.out.println/断点,看看它是否真的被执行了。

关于java - 如何配置过滤器在 servlet 处理后工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3810137/

相关文章:

java - 使 servlet 过滤器适用于所有 Web 应用程序

java - Struts2 ActionContext setName 方法不起作用

java - 用java修改xml版本

tomcat - 在 servlet 应用程序中保存上传文件的推荐方法

java - 使用executorservice控制运行时进程

java - 使用 servlet、jquery、ajax、json 进行链式选择

java - Servlet LoginController 的 Servlet.service() 抛出异常 java.lang.ClassNotFoundException : Decoder. BASE64Encoder

JavaServlet : pass a request back to default processing

java - 从另一个 java 程序执行不同的 Jar 文件

java - 使用 Gson 反序列化对象 Json 列表