`

struts选择拦截某些方法

 
阅读更多
public abstract class MethodFilterInterceptor extends AbstractInterceptor {  
    protected transient Logger log = LoggerFactory.getLogger(getClass());  
      
    protected Set<String> excludeMethods = Collections.emptySet();  
    protected Set<String> includeMethods = Collections.emptySet();  
 
    public void setExcludeMethods(String excludeMethods) {  
        this.excludeMethods = TextParseUtil.commaDelimitedStringToSet(excludeMethods);  
    }  
      
    public Set<String> getExcludeMethodsSet() {  
        return excludeMethods;  
    }  
 
    public void setIncludeMethods(String includeMethods) {  
        this.includeMethods = TextParseUtil.commaDelimitedStringToSet(includeMethods);  
    }  
      
    public Set<String> getIncludeMethodsSet() {  
        return includeMethods;  
    }  
 
    @Override 
    public String intercept(ActionInvocation invocation) throws Exception {  
        if (applyInterceptor(invocation)) {  
            return doIntercept(invocation);  
        }   
        return invocation.invoke();  
    }  
 
    protected boolean applyInterceptor(ActionInvocation invocation) {  
        String method = invocation.getProxy().getMethod();  
        // ValidationInterceptor  
        boolean applyMethod = MethodFilterInterceptorUtil.applyMethod(excludeMethods, includeMethods, method);  
        if (log.isDebugEnabled()) {  
            if (!applyMethod) {  
                log.debug("Skipping Interceptor... Method [" + method + "] found in exclude list.");  
            }  
        }  
        return applyMethod;  
    }  
      
    /**  
     * Subclasses must override to implement the interceptor logic.  
     *   
     * @param invocation the action invocation  
     * @return the result of invocation  
     * @throws Exception  
     */ 
    protected abstract String doIntercept(ActionInvocation invocation) throws Exception;  
      
}  


<!--使用拦截器-->
            <interceptor-ref name="defaultStack"></interceptor-ref> 
            <interceptor-ref name="FilterInterceptor"> 
<!--拦截器黑白名单-->
                 <param name="includeMethods">method1</param> 拦截
                 <param name="excludeMethods">method2</param> 不拦截
<!--指定参数name的值-->
<param name="name">FilterMethod</param>
            </interceptor-ref> 
分享到:
评论

相关推荐

    详解Struts2拦截器

    拦截器(Interceptor)是一种设计模式,用于在程序运行过程中“拦截”某些事件或行为,并在其前后添加额外的操作。在Struts2框架中,拦截器主要用于对Action执行前后的过程进行干预,以便执行一些通用的功能,如验证...

    struts2拦截器国际化

    在某些情况下,我们需要在拦截器中处理国际化问题,例如根据用户的选择或浏览器的默认语言动态切换资源包。这时,我们可以编写一个自定义拦截器来实现这一功能: 1. 自定义拦截器中,检查请求头或Cookie以获取用户...

    struts 拦截器动态代理

    3. **动态代理的应用**:在Struts拦截器中,我们可以创建一个实现了InvocationHandler的类,然后在`invoke()`方法中实现拦截逻辑。通过Proxy.newProxyInstance()方法,我们可以为Action创建一个代理对象,这样每次...

    struts2拦截器

    在Struts2中,拦截器(Interceptor)是核心功能之一,它扮演着处理请求、增强功能和实现业务逻辑的重要角色。拦截器允许我们在动作执行前后插入自定义的代码,使得应用的维护和扩展变得更加灵活。 首先,让我们深入...

    struts 拦截器实现权限拦截

    权限拦截是Web应用安全机制的重要一环,它确保只有具备特定权限的用户才能访问某些资源或执行特定操作。在Struts2中,通过自定义拦截器,我们可以轻松地实现这一功能。 首先,我们需要理解Struts2拦截器的工作原理...

    struts2拦截器的使用

    ### Struts2拦截器的使用 #### 一、概述 Struts2框架是基于MVC设计模式的一个开源框架,它提供了强大的功能来帮助开发者构建Web应用程序。在Struts2中,拦截器是一种非常重要的机制,它可以在Action执行前后进行...

    struts2 Interceptor拦截器

    ### Struts2 Interceptor 拦截器详解 #### 一、概述 在现代Web开发中,特别是基于Java的Web应用程序开发中,Struts2框架因其简洁性和强大的扩展能力而备受青睐。Struts2框架的核心设计理念之一是MVC(Model-View-...

    struts2拦截器一些用法

    3. **排除某些路径不被拦截**:可以通过`&lt;constant&gt;`元素设置排除模式。 ```xml &lt;constant name="struts.action.excludePattern" value="/uploads/.*"&gt; ``` 上述代码表示所有的以`/uploads/`开头的URL都不会被...

    struts拦截器和url放行

    Struts拦截器(Interceptors)是Struts2框架的核心组件之一,它们在处理请求时扮演着重要的角色。拦截器的工作原理类似于AOP(面向切面编程),允许开发者在动作执行前后插入自定义逻辑,比如权限检查、日志记录、...

    简单的struts2拦截器利用session拦截用户登录.docx

    在Struts2框架中,拦截器(Interceptor)是实现业务逻辑和控制流程分离的重要工具,它允许开发者在执行Action之前或之后执行某些操作,比如验证用户登录状态。在这个案例中,我们讨论的是如何使用拦截器来检查用户的...

    struts2拦截器实现用户登录权限的验证

    ### Struts2拦截器实现用户登录权限的验证 在Web应用开发中,用户登录权限验证是确保系统安全的重要环节之一。Struts2框架提供了一种灵活的方式来实现这一功能:通过自定义拦截器来控制用户的访问权限。下面我们将...

    struts2 拦截器(AOP,面向切面编程)

    虽然拦截器和过滤器在某些方面有相似之处,但它们在使用场景和处理时机上有所不同。拦截器更专注于业务逻辑的增强,而过滤器通常用于HTTP请求的预处理和后处理,如字符编码转换、安全过滤等。 **8. 实战:Struts2_...

    saif(struts1 interceptor)

    例如,可以创建一个登录拦截器,确保只有已登录的用户才能访问某些页面。 6. **性能优化**:虽然Struts1本身不支持拦截器,但通过"saif(struts1 interceptor)"插件,开发者可以实现缓存管理、性能统计等优化措施,...

    struts2拦截器权限设置

    ### Struts2拦截器权限设置 #### 背景与目的 在开发Web应用程序时,权限控制是一项重要的功能。它确保只有经过验证的用户才能访问特定的资源或执行某些操作。Struts2作为一款流行的Java Web框架,提供了丰富的功能...

    Struts2 动态方法调用(十三)

    在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...

    Struts 2 过滤器和拦截器的区别

    ### Struts 2 过滤器与拦截器的深入解析 #### 一、概述 在Struts 2框架中,过滤器(Filter)和拦截器...而对于需要在整个应用层面统一处理某些功能(如日志记录、权限验证等),过滤器可能是一个更好的选择。

    struts2 trim拦截器 过滤首尾空格

    Struts2框架提供了拦截器机制,可以在Action执行前后执行某些操作,以满足特定的需求。TrimInterceptor就是一个这样的拦截器,它的主要功能是过滤请求数据的首尾空格。 TrimInterceptor实现 TrimInterceptor继承...

    struts 拦截器,扩展,以及java annotation

    1. **Struts拦截器**: - 拦截器是Struts2的核心组件之一,它们是基于Java的动态代理机制实现的。在Action调用前后,拦截器可以执行一系列预定义的任务,如日志记录、权限验证、数据校验等。 - 拦截器链是由多个...

    struts2工作原理及拦截器和过滤器

    在实际应用中,开发者可以根据具体情况选择使用 Interceptor 或者 Filter 来实现某些功能。例如,在登录验证中,可以使用 Interceptor 来检查用户的登录状态,而在记录用户请求日志中,可以使用 Filter 来记录所有...

    struts2拦截器使用(用户session失效后的统一页面指向).docx

    `init()`方法在拦截器被加载到容器时调用,通常用于进行初始化操作,而`destroy()`方法则在拦截器从容器中移除时调用,可以用来释放资源。 在实际应用中,可能需要排除某些Action不经过此拦截器,例如注册页面的...

Global site tag (gtag.js) - Google Analytics