Struts2里面使用interceptor作为拦截器,一般继承AbstractInterceptor或者实现Incerptor接口。
它同样是利用了AOP的思想,它和Spring里面的AOP用法不太一样。
struts2里面是在Action标签里面ref这个interceptor,而Spring里面则是利用Advice,PointCut这些来实现的。
另外,值得注意的是,struts2里面还支持全局的拦截器,即我只需要配置一下,并不需要每个action标签都去引用才能使拦截器生效,而是它自动拦截所有action。
下面列举一些例子:
<package name="helloworld" extends="struts-default"> <interceptors> <interceptor name="myinterceptor" class="com.li.struts2.MyInterceptor" /> </interceptors> <action name="hello" class="com.li.struts2.HelloWorldAction" method="execute"> <interceptor-ref name="params"/> <interceptor-ref name="myinterceptor" /> <result name="success">/HelloWorld.jsp</result> </action> </package>
对于拦截器比较多的情况,还可以用拦截器栈:
<interceptor-stack name="basicStack"> <interceptor-ref name="exception"/> <interceptor-ref name="servlet-config"/> <interceptor-ref name="prepare"/> <interceptor-ref name="checkbox"/> <interceptor-ref name="params"/> <interceptor-ref name="conversionError"/> </interceptor-stack>
在action中引入此值栈:
<action name="hello" class="com.li.struts2.MyAction"> <interceptor-ref name="basicStack"/> <result>view.jsp</result> </action>
----------------------------------------------------------------------------------------------------
上面这个例子,对于页面上有大量表单内容要提交之类,必须引入basicStack,否则拦截器不会让参数的值注入到action中。
-----------------------------------------------------------------------------------------------------
如果想让拦截器对所有action生效,则显式声明一个默认的栈即可:
如下图所示:
<default-interceptor-ref name="myStack"></default-interceptor-ref>
其中,注意到,要将myStack提前声明好。
-----------------------------------------------------------------------------------------------------------------
另外,注意到,如果是拦截ajax请求的话,根据它的request中的header来区分即可。
其中,request还是通过 HttpServletRequest req = ServletActionContext.getRequest(); 来获得。
refurl:http://blog.csdn.net/xwlxw/article/details/10906437 拦截器入门配置
refurl:http://blog.csdn.net/will_awoke/article/details/16940939 ajax请求和普通http请求的区别
refurl:http://www.open-open.com/lib/view/open1342570764135.html 配置默认的拦截器
http://www.blogjava.net/webber/archive/2010/02/10/312531.html struts2所有自带拦截器介绍
相关推荐
在实践中,我们可以结合Struts2的源码和提供的工具,例如IDE的调试功能,来进一步探索和优化我们的拦截器设计。 总之,Struts2的拦截器机制极大地增强了框架的功能性和灵活性,使得开发者可以轻松地添加自定义逻辑...
在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...
这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...
在压缩包文件`Struts2_Interceptor`中,可能包含了关于Struts2拦截器使用的示例代码、解释文档或者教程,你可以进一步研究这些资源,以便更深入地理解并掌握Struts2拦截器的用法。学习如何创建自定义拦截器,以及...
本篇文章将深入探讨如何使用Struts2的拦截器技术来实现页面检测和用户注册功能。 首先,我们需要理解Struts2拦截器的工作原理。拦截器是基于Java的动态代理机制实现的,它们在Action调用之前和之后执行,形成一个...
本文将深入探讨如何使用Struts2实现拦截器,以及如何配置拦截器来实现用户权限拦截。 首先,我们需要了解拦截器的工作原理。在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序形成一个拦截...
### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...
拦截器工作原理是,当一个请求到达时,Struts2框架会按照配置的顺序调用一系列拦截器,每个拦截器都有机会处理请求或传递请求给下一个拦截器。在我们的例子中,我们可以创建一个名为"LoginInterceptor"的拦截器,它...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用。拦截器是Struts2框架的一个...对于初学者来说,从基础开始了解并掌握拦截器的用法,将有助于进一步探索Struts2的高级特性和最佳实践。
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要组件,尤其是在权限控制方面。本文将深入探讨Struts2拦截器如何帮助我们实现精细的权限控制,并通过实际例子进行说明。 首先,理解Struts2...
在本篇文章中,我们将深入探讨Struts2的拦截器原理以及如何在实际项目中应用拦截器。 拦截器在Struts2中的作用就像电影中的导演,它在动作执行前后插入额外的逻辑,比如日志记录、权限检查、数据验证等。这些操作不...
以下是使用Struts2拦截器解决重复提交问题的基本步骤: 1. **创建拦截器类**:首先,我们需要定义一个实现了`Interceptor`接口的Java类。这个类需要覆盖`intercept`方法,该方法在每个请求到达Action之前被调用。在...
### Struts2拦截器权限设置 #### 背景与目的 在开发Web应用程序时,权限控制是一项重要的功能。它确保只有经过验证的用户才能访问特定的资源或执行某些操作。Struts2作为一款流行的Java Web框架,提供了丰富的功能...
这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任链模式实现的,它们按照指定的顺序执行,对请求进行处理。拦截器可以用来进行权限检查、日志记录、事务管理等...
Struts拦截器(Interceptors)是Struts2框架的核心组件之一,它们在处理请求时扮演着重要的角色。拦截器的工作原理类似于AOP(面向切面编程),允许开发者在动作执行前后插入自定义逻辑,比如权限检查、日志记录、...
Struts2日志拦截器是Java Web开发框架Struts2中的一个重要组件,它允许开发者在应用程序执行过程中记录和处理日志信息。日志对于任何软件系统都是至关重要的,因为它提供了程序运行时的行为跟踪,帮助开发者在调试、...
在Struts2中,拦截器(Interceptor)是实现业务逻辑处理、数据验证、权限控制等核心功能的重要组件。本篇将详细介绍如何配置并创建Struts2的第一个拦截器。 首先,了解拦截器的基本概念。拦截器在Action执行前后...
而`Struts2.782`可能是Struts2的一个版本,其中包含了框架的核心库和示例代码,可以帮助进一步理解和学习拦截器的使用。 通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器...
其中,拦截器(Interceptor)是Struts2框架的核心特性之一,用于增强Action的处理能力,实现业务逻辑与控制流程的分离。在Struts2中,拦截器扮演着类似于过滤器的角色,但它们更专注于处理Action执行前后的逻辑。 ...