自定义struts2拦截器

二、自定义拦截器

1、编写一个类,实现com.opensymphony.xwork2.interceptor.Interceptor

2、主要实现public String intercept(ActionInvocation invocation) throws Exception{}方法

该方法的返回值就相当于动作的返回值

如果调用了String result = invocation.invoke();得到了动作类的返回的值。

public String intercept(ActionInvocation invocation) throws Exception {

//判断用户是否登录

HttpSession session = ServletActionContext.getRequest().getSession();

Object obj = session.getAttribute("user");

if(obj==null){

return "login";

}else{

return invocation.invoke();//调用动作方法

}

}

3、拦截器定义好后,一定要在配置文件中进行注册:

<interceptors> 只是定义拦截器,并没有起作用

<interceptor name="permissionInterceptor"

class="cn.itcast.interceptor.PermissionInterceptor"></interceptor>

</interceptors>

4、配置文件中的动作,要通过

<interceptor-ref name="permissionInterceptor"></interceptor-ref>使用该拦截器

注意:一旦动作中使用了自定义的拦截器,那么默认的就不起作用了。一般应该采用如下的做法:

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

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

多个动作类都要使用的话,可以通过package来进行组合。

时间: 2024-10-12 15:38:49

自定义struts2拦截器的相关文章

struts2拦截器加自定义注解实现权限控制

https://blog.csdn.net/paul342/article/details/51436565 今天结合Java的Annotation和Struts2进行注解拦截器权限控制. 功能需求:添加.查找.删除三个功能,添加.查找功能需进行权限拦截判断,删除功能则不需进行权限拦截判断. 操作流程如下:客户未登录或登录已超时,提示"客户还没登陆或登陆已超时!!!",终止执行,然后跳转到某页面:否则继续往下执行. 以下模拟案例大概实现如上需求,接下来废话少说,直接copy代码 项目地

笔记:Struts2 拦截器

配置拦截器 Struts.xml 配置文件中,使用<interceptor-/>来定义拦截器,有属性 name 表示拦截器的名称,class 表示拦截器的具体首先类,可以使用<param-/>子元素来配置拦截器的参数,配置示例: <package name="包名称" extends="抽象包名称"> <interceptors> <interceptor name="拦截器名称" class

struts2拦截器

1. 拦截器 1.1 概述 ü 基本概念 Intercetor, 即为拦截器. 1) 在Struts2中,把每一个功能都用一个个的拦截器实现:用户想用struts的哪个功能的时候,可以自由组装使用. 2)Struts2中,为了方法用户对拦截器的引用,提供了拦截器栈的定义,里面可以包含多个拦截器.   文件夹(文件, 文件2)  拦截器栈(拦截器,拦截器2) 3)Struts2中,如果用户没有指定执行哪些拦截器,struts2有一个默认执行的栈,defaultStack;  一旦如果用户有指定执行

【SSH2(实践篇)】--Struts2拦截器精解

上篇博客对Struts2的体系结构做了初步的了解,Struts2是以WebWork作为处理核心,并采用拦截器的机制来处理用户的请求,同时它还集成了Struts1丰富的标签库.另外上篇博客还对Struts2的配置使用进行了初步的介绍,下面将会集中讨论Struts2的拦截器. 一.拦截器 1.拦截器小介 拦截器的功能类似于web.xml文件中的Filter,能对用户的请求进行拦截,通过拦截用户的请求来实现对页面的控制.拦截器是在Struts-core-2.2.3.jar中进行配置的,原始的拦截器是在

Struts2拦截器的使用 (详解)

这位仁兄的写的不错,我照抄过来了:http://www.blogjava.net/i369/articles/162407.html 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了struts2自带的checkbox拦截器):<interceptor-ref name="checkbox">  <param name=&q

5、struts2 拦截器

拦截器 1.1 概述 ?基本概念 Intercetor, 即为拦截器. 1) 在Struts2中,把每一个功能都用一个个的拦截器实现:用户想用struts的哪个功能的时候,可以自由组装使用. 2)Struts2中,为了方法用户对拦截器的引用,提供了拦截器栈的定义,里面可以包含多个拦截器. 文件夹(文件, 文件2) 拦截器栈(拦截器,拦截器2) 3)Struts2中,如果用户没有指定执行哪些拦截器,struts2有一个默认执行的栈,defaultStack; 一旦如果用户有指定执行哪些拦截器,默认

Struts2拦截器的配置

struts2拦截器interceptor的三种配置方法方法1. 普通配置法 <struts> <package name="struts2" extends="struts-default"> <interceptors> <interceptor name="myInterceptor" class="edu.zd.core.MyInterceptor"></inter

Struts2整理-----Struts2拦截器

struts2的拦截器是struts2的核心,其底层实现使用了Java的反射机制与动态代理. 实现struts2拦截器的方法 1.实现Interceptor接口,实现init(),destory(),intercept()方法. 2.继承AbstractInterceptor类,重写intercept()方法. 3.继承MethodFilterInterceptor类,重写doIntercept()方法 拦截器实现原理: 当请求struts2的action时,strus2会查找配置文件,并根据其

struts2:拦截器配置

一.拦截器 说明: 拦截器(Interceptor):拦截器是Struts2的核心,Struts2的众多功能都是通过拦截器来实现的. 拦截器跟filter的概念是非常类似的,拦截器只能拦截Action,而filter是可以过滤所有的访问. 所有的Struts 2的拦截器都直接或间接实现接口com.opensymphony.xwork2.interceptor.Interceptor.该接口提供了三个方法: 1)void init(); 在该拦截器被初始化之后,在该拦截器执行拦截之前,系统回调该方