`

Struts2 中的Interceptor

 
阅读更多

Interceptor 作用:在Action执行前或执行后,执行某些代码,也以决定是否继续调用其它Interceptor及Action.

public class TestInterceptor extends AbstractInterceptor{

	@Override
	public String intercept(ActionInvocation invocation) throws Exception {
		// TODO Auto-generated method stub
		
		//在之后的Interceptor和Action执行前,可以执行某些代码
		
		String resultCode=ActionSupport.INPUT;
		if(true){
		  resultCode = invocation.invoke();//继续执行之后的Interceptor和Action
		}else{
			//也可以不执行之后的Interceptor和Action,直接跳转到其它页面。
		}
		
		//在Interceptor和Action执行完成之后,可以执行某此代码。
		
		return resultCode;
	}

}

 

 Struts 中默认执行的interceptor在struts-default.xml中定义:

 

  <interceptor-stack name="defaultStack">
                <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>
                <interceptor-ref name="servletConfig"/>
                <interceptor-ref name="i18n"/>
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                <interceptor-ref name="fileUpload"/>
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="multiselect"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="actionMappingParams"/>
                <interceptor-ref name="params">
                    <param name="excludeParams">^class\..*,^dojo\..*,^struts\..*,^session\..*,^request\..*,^application\..*,^servlet(Request|Response)\..*,^parameters\..*,^action:.*,^method:.*</param>
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    <param name="excludeMethods">input,back,cancel,browse</param>
                </interceptor-ref>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="deprecation"/>
            </interceptor-stack>
<default-interceptor-ref name="defaultStack"/>

 interceptor的执行顺序与下面定义的顺序一至,最后一个interceptor执行完成后之后,调用Action. 

 

 


 

 

  • 大小: 1.7 MB
分享到:
评论

相关推荐

    Struts2_interceptor_和_filter区别

    在Struts2中,Filter扮演着框架入口的角色,所有HTTP请求都需通过FilterDispatcher这一核心Filter进行处理。 **Interceptor** 是Struts2框架特有的概念,用于在Action执行前后进行拦截,可以实现类似Filter的功能,...

    struts2 Interceptor详解

    Struts2 Interceptor详解 Struts2作为一款流行的Java Web框架,其强大的功能之一就是拦截器(Interceptor)。拦截器在MVC模式中扮演着重要角色,它可以对请求进行预处理和后处理,提供了灵活的扩展机制,使得业务...

    Struts2拦截器(Interceptor)

    Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)

    Struts2 拦截器 Interceptor

    1. **拦截器**:在Struts2中,拦截器是实现了`com.opensymphony.xwork2.interceptor.Interceptor`接口的类。拦截器可以在方法执行前后进行拦截处理。 2. **拦截器栈**:多个拦截器的集合称为拦截器栈,Struts2默认...

    struts2 Interceptor拦截器

    1. **何时被调用**:在Struts2中,Interceptor 在Action执行前后被调用。具体的时机由拦截器链(Interceptor Chain)的配置决定。 2. **如何实现**:Struts2提供了一个灵活的Interceptor框架,开发者可以通过实现...

    STRUTS2:拦截器Interceptor

    STRUTS2:拦截器Interceptor

    Struts2.x_Interceptor

    2. **配置Interceptor**:在struts.xml配置文件中,可以通过`&lt;interceptors&gt;`标签定义拦截器栈,并使用`&lt;interceptor&gt;`子标签声明具体的拦截器。`&lt;action&gt;`标签中的`interceptor-ref`属性用于指定该Action应使用的...

    saif(struts1 interceptor)

    然而,在Struts1的原生设计中,并没有内置拦截器(Interceptor)这一概念,这与后来的Struts2框架有所不同。Struts2引入了拦截器,极大地增强了框架的灵活性和可扩展性。但是,由于Struts1的流行和项目需求,"saif...

    struts2 interceptor annotation plugin

    在Struts2中,拦截器(Interceptor)是核心组件之一,它们在Action执行前后进行拦截,实现了如日志记录、权限检查、数据验证等业务逻辑。而"struts2 interceptor annotation plugin"则是Struts2框架提供的一种使用...

    struts2 拦截器写法

    Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.

    留言板留言板struts2留言板struts2

    2. **Action与ActionMapping**:在Struts2中,业务逻辑通常封装在Action类中。一个Action类对应一个用户请求,处理来自客户端的请求并返回结果。ActionMapping则负责配置Action与URL的映射关系,使得请求能正确路由...

    Struts2中文教程,Struts2API

    在“Struts2中文教程”中,你可以找到关于这个框架的基础知识,包括安装配置、Action类、结果类型、拦截器等关键概念的详细介绍。教程通常会从最基础的环境搭建开始,教你如何配置Struts2的核心库和web.xml文件,...

    struts2jar包

    在Struts2中,OGNL用于传递Action与视图之间的数据,以及在拦截器中进行表达式计算。 4. **struts2-convention-plugin.jar**:这是Struts2的约定优于配置插件,它简化了Action类和结果配置,使得开发者可以按照一定...

    struts2项目开发

    在 Struts2 项目开发中,需求分析是非常重要的一步。通过对项目的需求分析,可以确定项目的功能需求、性能需求、安全需求等。例如,在个人信息管理系统中,需要分析用户的需求,例如登录与注册、个人基本信息管理、...

    Struts2接口文档

    在Struts2的配置中,Struts.xml文件扮演着关键角色,它包含了Action、Result、Interceptor的配置信息。通过这个配置文件,开发者可以声明Action的映射、指定Result类型以及设置Interceptor链。 此外,Struts2还支持...

    Struts2-API+Struts2中文帮助文档

    文档中还会讲解如何使用Struts2的异常处理机制,以及如何调试和解决常见的运行时问题。 总的来说,这个压缩包对于想深入理解并熟练掌握Struts2框架的开发者来说是宝贵的资源。通过API文档可以了解框架的底层机制,...

    struts2 ,struts2 demo

    OGNL是Struts2中的默认表达式语言,用于在Action和视图之间传递数据。例如,`${user.name}`可以获取User对象的name属性。 **7. Struts2的注解** 除了XML配置外,Struts2还支持使用注解进行配置,使得代码更加简洁。...

    struts2的各种jar包

    2. **核心库**:`struts2-core.jar`是框架的核心,包含Action、Result、Interceptor、Freemarker模板引擎等相关类,它是Struts2运行的基石。 3. **拦截器库**:`struts2-convention-plugin.jar`和`struts2-...

Global site tag (gtag.js) - Google Analytics