拦截器差点儿遍布每个程序中,所以贴出拦截器配置的具体过程,希望可以帮到大家。

Struts2 拦截器具体配置过程

<interceptors>

<!-- 先定义拦截器 -->

<interceptor name="myInterceptor" class="com.zzz.struts2.interceptor.MyInterceptor">

<!-- 指定系统初始化给拦截器的參数 -->

<param name="hello">张钊钊</param>

</interceptor>

<!-- 加到自己设置的拦截器栈里边去 -->

<interceptor-stack name="myStack">

<interceptor-ref name="myInterceptor">

</interceptor-ref>

<interceptor-ref name="defaultStack"></interceptor-ref>

</interceptor-stack>

</interceptors>

<!-- 改变系统默认的拦截器,改成自己的默认拦截器,而且一个系统仅仅能有一个默认的拦截器,这样这个拦截器栈会默认应用到全部的Action上去 -->

<default-interceptor-ref name="myStack">

</default-interceptor-ref>

也能够在使用拦截器的时候给它设置參数:  就是在一个action 的reslut以下配置上例如以下:

<action name="register" class="com.zzz.struts2.action.RegisterAction">

<result name="success">/success.jsp</result>

<!-- result 它当中另一个信息转发类型 type=""记住,假设不转向JSP,转向图表。能够改

type=""值 -->

<result name="input">/register.jsp</result>

<interceptor-ref name="myInterceptor">

<param name="hello">welcome</param>

</interceptor-ref>

<interceptor-ref name="myStack"></interceptor-ref>

</action>

2.拦截器,拦截器栈和默认的拦截器之间的关系

1:拦截器和拦截器栈是一个级别的,也就是说一个拦截器栈中包含很多拦截器, 一个拦截器栈中还能够包含很多拦截器栈,配置例如以下方式:

<interceptors>

<!-- 先定义拦截器 -->

<interceptor name="myInterceptor" class="com.zzz.struts2.interceptor.MyInterceptor">

<!-- 指定系统初始化给拦截器的參数 -->

<param name="hello">张钊钊</param>

</interceptor>

<!-- 加到自己设置的拦截器栈里边去 -->

<interceptor-stack name="myStack">

<interceptor-ref name="myInterceptor">

</interceptor-ref>

<interceptor-ref name="defaultStack"></interceptor-ref>

</interceptor-stack>

</interceptors>

拦截器的使用:1.先定义;2.在引用使用;

<interceptor name="myInterceptor" class="com.zzz.struts2.interceptor.MyInterceptor">

<interceptor-ref name="myInterceptor">

</interceptor-ref>

2:struts2中有一个系统默认的拦截器栈是 defaultStack,假设你手动引用自己的拦截器,系统默认的拦截器栈将不起作用;这样必需手动引入系统的拦截器栈

<interceptor-ref name="defaultStack"> </interceptor-ref>

假设想改变系统默认的拦截器栈,能够这样配置:

<default-interceptor-ref name="myStack"> </default-interceptor-ref>

当中myStack是自定义的拦截器栈名字; 假设拦截器栈中有多个拦截器,在运行action之前的顺序跟配置拦截器的顺序一致,而在action之后运行的顺序是相反的;

3:抽象的拦截器类AbstractInterceptor

1:Interceptor这个超级拦截器接口,有三方法须要实现,可是假设不想使用init();  和destroy()

方法,能够去继承这个抽象拦截器类; 它的使用跟上边的没有什么差别;

4:方法过滤拦截器MethodFilterInterceptor

1:上边的拦截器都要是针对整个action的,假设针对某个方法进行拦截能够去继承这个类;

它的使用跟上边的用法差点儿相同,仅仅是须要要配置它对那个方法进行拦截,方法过滤拦截器

好不要配置到自己设置默认的拦截器栈里边,自己手动配置.

<interceptor-ref name="myInterceptor3">

<param name="includeMethods">execute</param>

<param name="excludeMethods">execute</param>

</interceptor-ref>

<interceptor-ref name="defaultStack"></interceptor-ref>

当中includeMethods ,excludeMethods是固定写法: includeMethods 包括拦截那些方法,多个方法须要用”,”隔开; excludeMehtods是排除拦截的那些方法;

5:鉴听器PreResultListener接口

1:它的鉴听点在拦截器运行完某个action方法后,在渲染视图之前做一些事情;让某个类去实现这个接口; 然后向须要它的拦截器中注冊进去例如以下代码:

publicclass MyInterceptor3 extends MethodFilterInterceptor {

privatestaticfinallongserialVersionUID = 3756655410194005443L;

@Override

protected String doIntercept(ActionInvocation invocation) throws Exception {

//

把鉴听器注冊到拦截中去;

invocation.addPreResultListener(new MyListener());

System.out.println("my Interceptor3");

String result=arg0.invoke();

System.out.println("my interceptor3 finshed!");

return result;

}

}

Struts2 拦截器具体配置过程的更多相关文章

  1. 转载 - Struts2 拦截器详细配置过程

    出处:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Inter ...

  2. Struts2拦截器的执行过程浅析

    在学习Struts2的过程中对拦截器和动作类的执行过程一度陷入误区,特别读了一下Struts2的源码,将自己的收获分享给正在困惑的童鞋... 开始先上图: 从Struts2的图可以看出当浏览器发出请求 ...

  3. Struts2拦截器的配置

    struts2拦截器interceptor的三种配置方法方法1. 普通配置法 <struts> <package name="struts2" extends=& ...

  4. Struts2拦截器详解

    一.Struts2拦截器原理: Struts2拦截器的实现原理相对简单,当请求struts2的action时,Struts 2会查找配置文件,并根据其配置实例化相对的    拦截器对象,然后串成一个列 ...

  5. struts2 拦截器配置

    CheckLoginInterceptor.java---拦截器具体实现类: package com.sunhoo.hcpms.struts2.action.interceptors; import  ...

  6. Struts2 拦截器配置以及实现

    @(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...

  7. struts2拦截器interceptor的三种配置方法

    1.struts2拦截器interceptor的三种配置方法 方法1. 普通配置法 <struts> <package name="struts2" extend ...

  8. Struts2拦截器配置

    1. 理解拦截器 1.1. 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AO ...

  9. Struts2拦截器配置实例

    拦截器介绍 拦截器 的使用 ,源自Spring AOP(面向切面编程)思想 拦截器 采用 责任链 模式 * 在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链. * 责任链每一个节 ...

随机推荐

  1. <转载>DIV+CSS position定位方法总结

    如何学习DIV+CSS布局之position属性 如果用position来布局页面,父级元素的position属性必须为relative,而定位于父级内部某个位置的元素,最好用 absolute. 任 ...

  2. W英语: 紧急, 非紧急

    take your time 慢慢来 It is not urgent. Take it easy please. 不急,慢慢来.

  3. 性能测试之LoardRunner 手动关联一

    概述: 1.什么是关联,关联的分类? 2.实例讲解 1.关联 为什么要关联?关联是应用LoadRunner进行性能测试的一项重要技能,那为什么我们要进行关联呢?当利用VuGen录制脚本时,它会拦截Cl ...

  4. Mac上利用Eclipse编译Cocos2d-x

    目前使用较多的Cocos2d-x开发平台是XCode,应该是由于大部分Cocos2d-x开发者都是iOS开发出生.但是当我们将XCode开发的Cocos2d-x工程发布Android版本时,每次都需要 ...

  5. 定义自己的仪表板DashBoard - -kankanstyle

    既然做了奶站软件,需要使用的仪表板,显示质量数据 public class MDashboard extends ImageView { private Bitmap mPointerBitmap; ...

  6. Servlet的学习(三)

    本篇接上一篇<Servlet的学习(二)> ,主要讲诉如何使用MyEclipse来开发Servlet,和导入Servlet所需要的源代码. 现在我们来创建一个web应用,就叫[myserv ...

  7. 开源力量公开课第三十期- 跟我一起玩转OpenStack

    开源力量公开课第三十期- 跟我一起玩转OpenStack 开课时间:2013年9月10日 18:30 - 21:30 形式:现场(北京3W咖啡) + 线上直播,   免费报名:http://www.o ...

  8. JavaScript移除数组元素

    //数组移除长度方法 var array=[]; array[0]="张三"; array[1]="李四"; array[2]="王五"; ...

  9. android.graphics.Color

    该类定义的都是些static常量和函数,这些函数都是为了创建和转化成int型的color.颜色是由int型的数表示,由4个字节组成,分别是A R  G  B,这个int型的值是确定的,透明度的值只能存 ...

  10. Android颜色转换工具类ColorUtil

    项目中需要根据ScrollView的滚动距离来动态设置Topbar的背景透明度,网上有类似的开源库FadingActionBar,使用的是ActionBar做的.而我的项目中并没有使用ActionBa ...