`
kongweile
  • 浏览: 517356 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts2的核心-拦截器

阅读更多

拦截器(interceptor):
首先我们必须了解java里的反射机制,因为动态代理是基于反射的,而拦截器是基于动态代理的!所以动态代理和反射都要了解.
拦截器就是在进入某个action之前进行一些工作,在action执行完之后再进行一些工作.
拦截器是struts2里面的核心,其实拦截器就是一个类,我们可以实现Interceptor接口来创建自己的拦截器,struts2会自动帮我们空实现destroy(),init(),intercept().
不过通常我们会继承AbstractInterceptor类.因为它已经帮我们把destroy和init空实现了.我们只需要填写intercept就可以了.

通常每一个拦截器里面的intercept的格式如下:

public String intercept(ActionInvocation invocation) throws Exception{
 dosomethingbefore();

 String result = invocation.invoke()

 dosomethingafter();

 return result;
}

首先要了解invoke的意思是什么,它的意思是如果接下来还有拦截器的话,就执行下一个拦截器,如果没有的话就执行action.

如果你使用的是拦截器栈.如某个拦截器栈有两个拦截器a,b.a在b的上面.那么先执行a的dosomethingbefore,然后执行a的invoke,它发现还有拦截器b.所以执行b的dosomethingbefore,然后执行b的invoke.这时候发现已经没有拦截器了.所以执行action.并返回String给result.再返回result.其实这时候的result就是action里面execute返回的String.然后执行b的dosomethingafter.再执行a的dosomethingafter.finished!

当我们写好拦截器后,我们需要声明它,打开struts.xml.在package标签中,加入<interceptors>标签.在interceptors标签下,有interceptor和interceptor-stack标签.如果是interceptor.它之下又有param可以设置这个拦截器的字段.如果是interceptor-stack,它之下有interceptor-ref.就是引用已有的拦截器的意思.在interceptor-ref下有param可以设置该拦截器的字段.

在package标签下可以设置默认的拦截器.系统默认为<default-interceptor-ref name="defaultStack" />,我们可以重新定义一个拦截器栈或者拦截器.在我们的struts.xml加入<default-interceptor-ref name="xxx" />.

关于<global-results>,从它的英文可以看出.这是全局结果的意思.我们可以在这标签下加入<result>,这个result和我们平时用的action的<result>一样.

分享到:
评论

相关推荐

    struts2-拦截器

    struts2-拦截器 struts2的核心

    一个Struts2的核心拦截器例子

    核心拦截器是Struts2框架的重要组成部分,它们允许开发者在动作执行前后插入自定义逻辑,以实现如日志、权限验证、数据校验等常见功能。下面将详细讲解Struts2的核心拦截器以及如何在项目中使用它们。 1. **Struts2...

    struts-2.5.12-min 精简的核心li包

    3. **拦截器(Interceptors)**:拦截器是Struts 2的一个强大特性,允许在Action执行前后插入自定义逻辑,如日志记录、权限检查、性能监控等。核心包中会包含一些基本的拦截器,如ValidationInterceptor进行表单验证...

    Struts2--自定义拦截器

    自定义拦截器是Struts2中的一个重要特性,允许我们扩展框架的功能,以实现诸如日志记录、权限检查、性能监控等通用任务。在本文中,我们将深入探讨如何创建和使用自定义拦截器。 首先,了解拦截器的基本概念。在...

    struts2--4.拦截器

    在Struts2中,拦截器扮演着核心角色,极大地增强了框架的功能和灵活性。本文将深入探讨Struts2中的拦截器,以及如何使用它们来优化应用的性能和功能。 ### 1. 拦截器的概念 拦截器是Struts2框架的一个关键特性,它...

    [原]Struts2-拦截器

    在Struts2中,拦截器(Interceptor)扮演着非常重要的角色,它是实现业务逻辑控制和数据处理的核心组件。这篇文章将深入探讨Struts2中的拦截器机制,以及其在实际开发中的应用。 首先,我们要了解什么是拦截器。在...

    struts2学习之九---拦截器

    拦截器是Struts2的核心特性之一,它在MVC设计模式中起到了承上启下的作用,增强了框架的功能和灵活性。在Struts2中,拦截器可以理解为一种AOP(面向切面编程)的概念,它们在动作执行前后进行额外的操作,比如日志...

    struts2学习笔记十(第10讲.Struts2的核心 拦截器)

    本篇将深入探讨Struts2的核心拦截器以及其工作原理。 在Struts2中,拦截器是一个实现了`Interceptor`接口的类,它通过在动作执行前后插入额外的处理逻辑,实现了对请求处理的增强。拦截器链是由多个拦截器按照特定...

    struts-2.3.34-all.zip

    3. **拦截器(Interceptor)**:拦截器是Struts2的一大特色,它允许在Action调用前后插入自定义逻辑,例如日志记录、权限检查等。默认提供了一些内置拦截器,如params预处理请求参数,validation进行数据校验。 4. ...

    struts-2.3.16-all

    通过学习和使用`struts-2.3.16-all`,开发者可以掌握Struts 2的MVC设计模式、拦截器机制、配置方式、以及与其他框架的集成技巧,从而更好地构建高效、安全的Java Web应用。同时,了解每个版本的更新内容和改进,有助...

    struts2-core-2.0.11源码

    1. **拦截器(Interceptors)**:Struts2的核心特性之一,拦截器负责在Action调用前后执行额外的逻辑,如日志记录、权限验证等。在`org.apache.struts2.interceptor`包下,你可以找到各种预定义的拦截器类。 2. **...

    struts-2.3.31-all.zip

    2. **Interceptor拦截器**:Struts2的拦截器机制是其一大亮点,允许开发者在Action执行前后插入自定义的处理逻辑,例如日志记录、权限验证、数据校验等。这些拦截器可以通过配置文件或注解灵活组合使用。 3. **...

    struts2.X 拦截器源码

    Struts2.X 拦截器是Apache Struts框架的核心组件之一,它是基于拦截器模式实现的,使得开发者能够方便地扩展和定制应用程序的行为。在Struts2中,拦截器扮演着中间件的角色,它在Action执行前后进行处理,可以进行如...

    struts2-showcase.rar

    2. **拦截器(Interceptors)**:Struts2的核心功能之一,拦截器可以插在Action调用之前和之后,实现如日志、事务管理、验证等通用功能,增强了代码的可复用性。 3. **动态方法调用(Dynamic Method Invocation,DMI...

    struts-2.5.2-all.zip

    2. **配置文件**:主要包括`struts.xml`,这是Struts 2的主配置文件,用于定义Action、结果类型、拦截器等。通过配置文件,开发者可以灵活地控制请求的映射和处理方式。 3. **拦截器(Interceptors)**:这是Struts...

    Struts2拦截器及其用法详细说明

    在Struts2中,拦截器(Interceptors)扮演着核心角色,增强了框架的功能和灵活性。这篇文章将深入探讨Struts2拦截器的概念、工作原理以及如何在实际应用中使用它们。 **一、什么是Struts2拦截器** 拦截器是基于AOP...

    struts-2.5.20-all.rar

    2. **配置文件**:Struts2使用XML配置文件(通常命名为struts.xml或struts-default.xml)来定义Action、结果、拦截器等。这些配置告诉Struts如何映射HTTP请求到Action类,以及Action执行后如何显示结果。 3. **拦截...

    struts2-core-2.0.12.jar

    Struts2的配置主要在struts.xml文件中进行,这里定义了Action的映射、结果类型、拦截器栈等。开发者可以通过XML或注解方式来配置Action,使应用更加灵活。 **4. 拦截器(Interceptors)** 拦截器是Struts2的一大...

    struts2-json-plugin源码

    4. **拦截器**:Struts2的拦截器机制允许在Action调用前后执行特定逻辑。JSON插件可能包含用于处理JSON请求和响应的拦截器,比如处理JSON参数的解析和验证。 5. **Action与模型驱动**:如果Action使用模型驱动模式...

Global site tag (gtag.js) - Google Analytics