`

Struts2拦截器基本流程

阅读更多
Struts2拦截器(动态代理)
1. 实现接口:Interceptor顶层接口,拦截器都必须直接或间接实现这个接口,后面介绍继承类。public class MyInterceptor implements Interceptor{init()方法 public String intercept(ActionInvocation invocation) throws Exception {
String result = invocation.invoke(); return result;} destroy()方法 }
2. Struts.xml配置:
<package name = “struts2 ” extends = “struts-default”>
<interceptors>
   <interceptor name=”myIntercept” class = “com.test.interceptor.MyInterceptor”>
  <param name = “hello”>world</param>
</interceptor>
   <interceptor-stack name=”mystack”>
      <interceptor-ref name = “myIntercept”></interceptor-ref>
      <interceptor-ref name = “defaultstack”></interceptor>
   </interceptor-stack>
</interceptors>
<default-interceptor-ref name = “myStack”></default-interceptor-ref>
<action name=”register” class = “com.test.action.RegisterAction” method=”test”>
   <result name = “login” class=””>/login.jsp</result>
     
</action>
</package>
extends : 继承Struts2中的包内容,同时也继承了Struts2中的拦截器。
拦截器栈:
<interceptor-stack name = “basicStack”>
   <interceptor-ref name = “exception”>
   <interceptor-ref name = “servletConfig”>
   <interceptor-ref name = “prepare”>

   <interceptor-ref name = “checkbox”>

   <interceptor-ref name = “params”>


</interceptor-stack>
拦截器栈可以由拦截器组成也可以由拦截器栈组成。栈可以包含栈。
当手动的引用一个拦截器时,Struts2就不会将默认的拦截器栈赋到action中引用 。如果想引用默认的拦截器,需要在action标签中添加如下代码:<interceptor-ref name = “defaultStack”></interceptor-ref>

如果没有添加手动的拦截器,那么Struts2会将默认的拦截器添加到action中,如果添加了手动的拦截器,那么默认的拦截器就不会起作用,想使用默认的拦截器,如上所说。
一般在使用拦截器时不是实现Interceptor接口,而是直接继承AbstractInterceptor,AbstractInterceptor也是实现Interceptor接口,他只是使用intercept()方法,而没有实现init()、destroy()方法,

方法过滤拦截器:
细化到拦截某一个方法,而不是指定某个Action,继承MethodFilterInterceptor类。
public class MyInterceptor3 extends MethodFilterInterceptor{
   protected String doIntercept(ActionInvocation invocation ) throws Exception{
   String result = invocation.invoke();
return result;
}
}

Struts.xml配置:
<interceptors>
  <interceptor name = “myInterceptor3” class = “com.test.interceptor.MyInterceptor3”>
  </interceptor>
</interceptors>
<action  method=”test”>
  <interceptor-ref name = “myInterceptor3”>
   <param name=”includeMethods”>test,execute</param>
   <param name=”excludeMethods”>test,execute</param>

</interceptor-ref>
</action>
分享到:
评论

相关推荐

    Struts2拦截器实现权限控制demo

    通过以上步骤,我们可以实现一个基本的基于Struts2拦截器的权限控制系统。这个demo对于初学者来说,是一个很好的起点,可以帮助他们理解如何在实际项目中结合Struts2的拦截器和权限控制来增强应用的安全性。在实际...

    Struts2 拦截器

    拦截器是Struts2框架的核心特性之一,它们扮演着处理请求、增强功能和实现业务逻辑的角色。在Struts2中,拦截器就像过滤器一样工作,通过链式调用在动作执行前后进行预处理和后处理。 首先,我们来理解一下拦截器的...

    struts2拦截器的使用方法

    ### Struts2拦截器的使用方法 #### 一、Struts2拦截器概述 ...通过以上介绍,我们可以了解到Struts2拦截器的基本使用方法及配置方式,这对于理解Struts2框架的工作机制以及优化应用架构具有重要意义。

    Struts2 拦截器 和 Java 中的动态代理

    首先,让我们了解Struts2拦截器的基本工作原理。拦截器在Action执行前后被调用,形成一个拦截器链。每当一个HTTP请求到达,Struts2的DispatcherServlet会按照配置的顺序逐个调用这些拦截器,直到最后执行Action。...

    struts1.2拦截器使用插件

    2. **注册拦截器**:在`struts-config.xml`配置文件中,通过`&lt;interceptors&gt;`标签定义拦截器栈,然后通过`&lt;action&gt;`标签的`interceptor-ref`属性引用拦截器栈。 3. **配置拦截器栈**:在`struts-config.xml`中,...

    struts2 拦截器的使用(继承抽象拦截器)

    这篇博客文章“struts2 拦截器的使用(继承抽象拦截器)”探讨了如何通过继承Struts2的抽象拦截器来创建自定义拦截器。 首先,让我们理解拦截器的基本概念。在Struts2中,拦截器是基于Java的动态代理机制实现的,...

    Struts2拦截器的实现原理(csdn)————程序.pdf

    在Struts2中,拦截器(Interceptor)是一个至关重要的概念,它提供了一种灵活的方式来增强或修改请求处理流程,而无需侵入实际的业务逻辑。下面我们将深入探讨Struts2拦截器的实现原理。 首先,让我们理解一下拦截...

    struts2.0拦截器、crud例子与用法

    本文将详细解析Struts2中的拦截器(Interceptor)、CRUD操作以及Action的执行流程。 首先,让我们聚焦于Struts2的拦截器机制。拦截器是Struts2的核心组件,它们在Action执行前后运行,提供了AOP(面向切面编程)的...

    12 struts2拦截器

    拦截器的工作流程是这样的:当一个请求到达Struts2框架时,首先会通过DispatcherServlet进行调度,然后Struts2的FilterDispatcher会根据配置文件找到对应的Action,接着调用Interceptor栈对请求进行预处理。...

    Struts2的拦截器的使用详解

    在Struts2框架中,拦截器扮演着关键角色,它们提供了AOP(面向切面编程)的功能,使得开发者可以在不修改业务逻辑的情况下,对请求处理流程进行增强。本文将深入探讨Struts2的拦截器使用,结合实例和源码分析,帮助...

    Struts2拦截器的使用

    在深入探讨Struts2拦截器的使用之前,我们先来了解一下Struts2框架以及拦截器的基本概念。Struts2是一个开源的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发过程。它提供了丰富的功能,如类型...

    struts2拦截器的使用

    Struts2的拦截器机制提供了一个灵活的方式来控制Action的执行流程。拦截器链是由多个拦截器组成的一个列表,它们按照一定的顺序被执行。 #### 三、示例需求解析 本示例的需求是实现一个简单的登录功能,具体包括:...

    struts2拦截器笔记

    Struts2 拦截器是其核心特性之一,它是一种强大的机制,允许开发者在请求到达 Action 之前或之后执行自定义逻辑。拦截器在 Struts2 框架中扮演着中间件的角色,可以用来处理如日志、权限验证、数据校验等常见任务,...

    基于ssh拦截器框架Struts2拦截器的登录验证实现

    首先,我们需要了解 Struts2 拦截器的基本概念。拦截器是基于Java的动态代理实现的,它可以看作是一系列处理请求的中间层,这些中间层可以在动作执行前后插入额外的行为。拦截器的执行顺序由配置文件决定,使得...

    struts2拦截器一些用法

    通过以上介绍可以看出,Struts2的拦截器机制非常灵活强大,不仅可以方便地控制Action的执行流程,还能帮助开发者轻松实现各种跨切关注点的功能。正确理解和使用拦截器对于开发高质量的Struts2应用来说至关重要。

    Struts2之拦截器原理分析及使用-上案例struts007

    在Struts2中,拦截器的执行流程是由ActionInvocation对象控制的。ActionInvocation是执行链的核心,它包含了当前Action的实例、Action的执行方法以及一系列拦截器。当一个请求到来时,ActionInvocation会按照配置的...

    Struts2自定义拦截器

    在深入探讨自定义拦截器之前,我们先理解一下Struts2拦截器的基本概念。 拦截器(Interceptor)是基于Java的动态代理机制实现的,它可以拦截用户的请求,对请求进行预处理,并且在Action执行后进行后处理。通过在...

    Struts2的拦截器

    Struts2的拦截器机制极大地提高了代码的复用性和可维护性,通过内置和自定义的拦截器,开发者可以灵活地控制Action的执行流程,处理各种公共行为,从而构建出更加健壮和高效的Web应用。理解和掌握Struts2的拦截器,...

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

    Struts2是一个强大的Java Web框架,它为开发者提供了一种优雅的方式来组织...通过这个小示例,初学者可以了解到Struts2拦截器的基本概念、配置方式以及如何自定义拦截器。这将为后续更深入的学习和实践打下坚实的基础。

Global site tag (gtag.js) - Google Analytics