拦截器可以在用户请求Struts的Action时的前或后,进行一些业务处理。拦截器可以是1或N个。
在Struts2中,Interceptor的拦截类型,分成以下三类:
1. before
before拦截,是指在拦截器中定义的代码,它们存在于invocation.invoke()代码执行之前。这些代码,将依照拦截器定义的顺序,顺序执行。
2. after
after拦截,是指在拦截器中定义的代码,它们存在于invocation.invoke()代码执行之后。这些代码,将一招拦截器定义的顺序,逆序执行。
3. PreResultListener
有的时候,before拦截和after拦截对我们来说是不够的,因为需要在Action执行完之后,但是还没有回到视图层之前,做一些事情。Struts2同样支持这样的拦截,这种拦截方式,是通过在拦截器中注册一个PreResultListener的接口来实现.
ლ(╹◡╹ლ)以上摘抄自百度~
strut2自定义拦截器很简单,步骤也很少~
首先、在struts.xml文件中注册拦截器,新建一个栈需要把默认拦截器也引进去~
<!-- 注册拦截器 --> <interceptors> <!-- 自定义的拦截器 --> <interceptor name="myInterceptor" class="com.web.interceptor.MyInterceptor"></interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors> <!-- 覆盖默认拦截器的引用 --> <default-interceptor-ref name="myStack"/> <global-results> <result name="index" type="redirectAction"> <param name="namespace">/</param> <param name="actionName">/success.jsp</param> </result> </global-results>
自定义拦截器的类,实现com.opensymphony.xwork2.interceptor.Interceptor的接口及其方法~intercept方法为拦截处理ai.invoke()为不拦截←我是这么理解的_(:зゝ∠)_
public class MyInterceptor implements Interceptor{ private static final long serialVersionUID = -649966144489142691L; public void destroy() { } public void init() { } public String intercept(ActionInvocation ai) throws Exception { System.out.println(">>>>>>> Interceptor >>>>>> "); //从session中读取登录信息 Map<String,Object> session = ai.getInvocationContext().getSession(); if(session.get("user") != null){ System.out.println(">> pass >>"); return ai.invoke(); }else{ System.out.println(">> forbidden >>"); return "index"; } }这例子用作登录过滤~当然也能用在其他功能上~
PS:<global-results>的标签是一个全局<result>,当一个action返回的String没有对应的result,就会去找这个标签~这里是用于响应拦截器的( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
相关推荐
Struts2拦截器(Interceptor) Struts2拦截器(Interceptor)
简单的拦截器例子,适合初学者学习,也是一个备忘录
struts2 拦截器_教程.zip
STRUTS2:拦截器Interceptor
struts2,Interceptor struts2拦截器实例,两套实例,一套是针对单个的action配置的,另一套实例是针对全局的action配置的拦截器interceptor
struts2 Interceptor拦截器 http://whitewolf.0fees.net
Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现.
利用反射和动态代理机制实现自定义拦截器Interceptor http://blog.csdn.net/alanchen520/article/details/34087833
1. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,拦截器是AOP的一种实现. 2. 拦截器栈(Interceptor Stack)。Struts2拦截器栈就是将拦截器按...
Struts2.3.6实现自定义拦截器Interceptor http://blog.csdn.net/alanchen520/article/details/34086699
创建自己struts2拦截器,手工创建自己的拦截器实现
拦截器是一种AOP(面向切面编程)思想的编程方式.它提供一种机制是开发者能够把相对独立的代码抽离出来,...下面这篇文章主要给大家介绍了关于Struts2拦截器Interceptor的原理与配置的相关资料,需要的朋友可以参考下。
综合使用servlet filter与struts2 interceptor对权限进行验证。
NULL 博文链接:https://johnson2132.iteye.com/blog/720398
jfinal中拦截器(Interceptor)的参数注入jfinal中拦截器(Interceptor)的参数注入
使用Struts2实现用户权限拦截、重点是掌握拦截器的使用和配置方法,通过案例的学习,就能掌握struts中拦截器的使用方法,让我们能快速上手
Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口; Interceptor 它其中有三个方法(init(),destroy() ,interceptor()): Init()方法:在服务器起动的时候加载一次,并且只加载一...
Interceptor拦截器详解和部分源码的指导,方便深入学习struts2,增加理解
拦截器可以说相当于是个过滤器:就是把你不想要的或不想显示的内容给过滤掉。拦截器可以抽象出一部分代码可以用来完善原来的Action。同时可以减轻代码冗余,提高重用率。比如在登入一个页面时,如果要求用户密码、权限...