`
wandejun1012
  • 浏览: 2732955 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2 拦截器进一步使用

 
阅读更多

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 拦截器

    在实践中,我们可以结合Struts2的源码和提供的工具,例如IDE的调试功能,来进一步探索和优化我们的拦截器设计。 总之,Struts2的拦截器机制极大地增强了框架的功能性和灵活性,使得开发者可以轻松地添加自定义逻辑...

    使用struts2拦截器对登陆权限验证

    在本案例中,我们将深入探讨如何使用Struts2拦截器实现登录权限验证,同时结合Servlet Filter进一步加强安全性。 首先,让我们理解Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念设计的,它们...

    struts2 拦截器实现登录控制

    这篇博客“struts2 拦截器实现登录控制”显然会探讨如何利用拦截器来实现用户登录验证,从而保护应用程序的受保护资源。 首先,我们了解下Struts2拦截器的工作原理。拦截器是基于AOP(面向切面编程)的概念,它位于...

    struts2中拦截器的使用

    在压缩包文件`Struts2_Interceptor`中,可能包含了关于Struts2拦截器使用的示例代码、解释文档或者教程,你可以进一步研究这些资源,以便更深入地理解并掌握Struts2拦截器的用法。学习如何创建自定义拦截器,以及...

    运用struts2技术的拦截器实现的页面检测和用户注册

    本篇文章将深入探讨如何使用Struts2的拦截器技术来实现页面检测和用户注册功能。 首先,我们需要理解Struts2拦截器的工作原理。拦截器是基于Java的动态代理机制实现的,它们在Action调用之前和之后执行,形成一个...

    struts2实现拦截器、

    本文将深入探讨如何使用Struts2实现拦截器,以及如何配置拦截器来实现用户权限拦截。 首先,我们需要了解拦截器的工作原理。在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序形成一个拦截...

    Struts2拦截器实例.docx

    ### Struts2拦截器实例——登录校验 #### 概述 在Web应用开发中,登录验证是一项重要的功能。为了确保只有已登录的用户才能访问特定的资源或页面,通常会采用拦截器来实现这一需求。本文档将详细介绍如何在Struts2...

    struts2拦截器

    拦截器工作原理是,当一个请求到达时,Struts2框架会按照配置的顺序调用一系列拦截器,每个拦截器都有机会处理请求或传递请求给下一个拦截器。在我们的例子中,我们可以创建一个名为"LoginInterceptor"的拦截器,它...

    简单Struts2拦截器

    Struts2是一个强大的MVC(模型-视图-控制器)框架,它在Java Web开发中广泛应用。拦截器是Struts2框架的一个...对于初学者来说,从基础开始了解并掌握拦截器的用法,将有助于进一步探索Struts2的高级特性和最佳实践。

    struts2拦截器控制权限

    在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要组件,尤其是在权限控制方面。本文将深入探讨Struts2拦截器如何帮助我们实现精细的权限控制,并通过实际例子进行说明。 首先,理解Struts2...

    Struts2之拦截器原理分析及使用案例struts008

    在本篇文章中,我们将深入探讨Struts2的拦截器原理以及如何在实际项目中应用拦截器。 拦截器在Struts2中的作用就像电影中的导演,它在动作执行前后插入额外的逻辑,比如日志记录、权限检查、数据验证等。这些操作不...

    struts2拦截器解决重复提交源代码

    以下是使用Struts2拦截器解决重复提交问题的基本步骤: 1. **创建拦截器类**:首先,我们需要定义一个实现了`Interceptor`接口的Java类。这个类需要覆盖`intercept`方法,该方法在每个请求到达Action之前被调用。在...

    struts2拦截器权限设置

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

    struts2 自定义拦截器.rar

    这篇博客文章可能是关于如何在Struts2中创建和使用自定义拦截器的教程。 在Struts2中,拦截器是基于责任链模式实现的,它们按照指定的顺序执行,对请求进行处理。拦截器可以用来进行权限检查、日志记录、事务管理等...

    struts拦截器和url放行

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

    struts2 日志拦截器

    Struts2日志拦截器是Java Web开发框架Struts2中的一个重要组件,它允许开发者在应用程序执行过程中记录和处理日志信息。日志对于任何软件系统都是至关重要的,因为它提供了程序运行时的行为跟踪,帮助开发者在调试、...

    Struts2 配置第一个拦截器

    在Struts2中,拦截器(Interceptor)是实现业务逻辑处理、数据验证、权限控制等核心功能的重要组件。本篇将详细介绍如何配置并创建Struts2的第一个拦截器。 首先,了解拦截器的基本概念。拦截器在Action执行前后...

    简单介绍Struts2中的拦截器的小示例

    而`Struts2.782`可能是Struts2的一个版本,其中包含了框架的核心库和示例代码,可以帮助进一步理解和学习拦截器的使用。 通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器...

    struts2中的拦截器

    其中,拦截器(Interceptor)是Struts2框架的核心特性之一,用于增强Action的处理能力,实现业务逻辑与控制流程的分离。在Struts2中,拦截器扮演着类似于过滤器的角色,但它们更专注于处理Action执行前后的逻辑。 ...

Global site tag (gtag.js) - Google Analytics