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

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. WinFrom - DataGridView控件右键选中记录并弹出菜单

    dataGridView右键菜单并选中该行 程序代码: private void dataGridView1_CellMouseDown(object sender, DataGridViewCell ...

  2. 使用BigDecimal来进行精确计算

    在一些以金融等行业中的计算是需要十分精确的,即使我们使用像double这样的类型,由于浮点数的原因,会使得数据计算变得不精确,例如下面的例子: double a = 0.1; double b = 0 ...

  3. javascript——ajax应用

    概念 AJAX 指异步JavaScript及XML(Asynchronous JavaScript And XML).Ajax的核心是JavaScript对象XmlHttpRequest.XmlHtt ...

  4. Ubuntu 环境安装整理

    Ubuntu11.04下Java开发环境搭建和配置 转自:http://guoyunsky.iteye.com/blog/1175861 类似的搭建,网上一搜一大把,但每次去搜索比较麻烦.我这里就整理 ...

  5. Delphi安装NT服务程序时(不出现提示信息)

    如果我们不加上"/silent",那么Delphi在安装和卸载NT服务程序时候,都会出现一个提示信息,不希望出现这个提示信息,那么使用如下命令: 1,安装:“你的nt程序 /ins ...

  6. redis+tomcat共享session问题(转)

    为了让楼主看看Java开发是多么的简单和轻松,你说你耗时一周都没搞好,简直就是胡说八道!!我从没搞过reids和tomcat整合的(我做的项目一直都是去session用cookie,为了验证你在胡说八 ...

  7. 《Java从入门到精通》src9-25

    find . -name *.java |xargs  -i sh -c "echo {};cat {}" > ../all.java[op@TIM src]$ cat al ...

  8. awk 正则表达式

    awk 正则表达式.正则运算符详细介绍 前言:使用awk作为文本处理工具,正则表达式是少不了的. 要掌握这个工具的正则表达式使用.其实,我们不必单独去学习它的正则表达式.正则表达式就像一门程序语言,有 ...

  9. android在其他线程中访问UI线程的方法

    1.Activity.runOnUiThread( Runnable ) 2.View.post( Runnable ) 3.View.postDelayed( Runnable, long ) 4. ...

  10. C++晋升之std中vector的实现原理(标准模板动态库中矢量的实现原理)

    我们实现的数据结构是为了解决在执行过程中动态的开辟空间使用(比如我们不停的输入,输入的多少我们不确定) 假设当你看到这篇文章的话,就当作是零食咀嚼,营养没有有BUG,能够直接看我博客中文章:CPU对内 ...