zoukankan      html  css  js  c++  java
  • 自定义struts2的过滤器,释放不需要过滤的类

      我们知道,使用struts2的时候需要设置一些不需要它过滤的请求(诸如我们使用的一些插件需要原生态的servlet),遇到这种情况的解决办法就是扩展struts的过滤器,下面请看web.xml的配置:

     <filter>
      <filter-name>struts2</filter-name>
            <!-- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> -->
       <filter-class>com.hsc.util.UeditFilter</filter-class>
      <init-param>
       <param-name>config</param-name>
       <param-value>struts-default.xml,struts-plugin.xml,../struts.xml</param-value>
      </init-param>
     </filter>

    注释掉的部分就是原来struts2的过滤器,我们这里需要对它进行扩展,写一个自己的过滤器。过滤器的内容如下

    package com.hsc.util;
    
    import java.io.IOException;
    
    import javax.servlet.FilterChain;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    
    import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
    
    public class UeditFilter extends StrutsPrepareAndExecuteFilter {
        public void doFilter(ServletRequest req, ServletResponse res,FilterChain chain) throws IOException, ServletException {
            HttpServletRequest request = (HttpServletRequest) req;
            //不过滤的url
            String url = request.getRequestURI();
            if (url.indexOf("/resource/ueditor/jsp/imageUp.jsp") >= 0||url.indexOf("/servlet/onLineTakePhotoServlet") >= 0) {
    //            System.out.println("使用自定义的过滤器");
                chain.doFilter(req, res);
            }else{
    //            System.out.println("使用默认的过滤器");
                super.doFilter(req, res, chain);
            }
        }
    }

      由以上的代码可以看出,自定义的过滤器继承StrutsPrepareAndExecuteFilter 这个类,在过滤的逻辑中拦截url对不需要过滤的请求,这里的两个例子为“/resource/ueditor/jsp/imageUp.jsp”和"/servlet/onLineTakePhotoServlet" ,当过滤器检测到该Url的时候放行,否则继续按照struts2的逻辑进行处理。这个小小的自定义过滤器虽然看上去十分简单,但用气来却很方便,于是就在这里整理了。

  • 相关阅读:
    23. 霍纳法则(多项式求值快速算法)
    22. 欧几里德算法(求最大公约数GCD)
    [poj 2106] Boolean Expressions 递归
    [poj 1185] 炮兵阵地 状压dp 位运算
    [MOOC程序设计与算法二] 递归二
    [poj 3254] Corn Fields 状压dp
    [hdu 1074] Doing Homework 状压dp
    [hdu 1568] Fibonacci数列前4位
    [haut] 1281: 邪能炸弹 dp
    [hdu 2604] Queuing 递推 矩阵快速幂
  • 原文地址:https://www.cnblogs.com/wq123/p/3484067.html
Copyright © 2011-2022 走看看