struts2杀器---Interceptor拦截器

本文介绍如何使用Struts2框架实现权限管理。通过创建自定义拦截器和配置拦截器栈来控制用户访问权限。

 

    struts2是目前java开发中流行的控制层框架,取代了原先的servlet。struts2的惊天创举就是采用了一系列拦截器,对前台请求进行一系列处理, 这一创举开启了面向切面编程的时代,也体现了一种成熟的架构思想。

 

 

    废话少说,show my code,首先在web层定义一个权限拦截器,如下:

public class PrivilegeInterceptor extends MethodFilterInterceptor{

	@Override
	protected String doIntercept(ActionInvocation invocation) throws Exception {
		//获得session,获得登陆标识
		User user = (User) ActionContext.getContext().getSession().get("user");
		//判断标识是否存在
		if(user != null){
			//已登陆
			return invocation.invoke();//放行
		}else{
			//不存在
			return "toLogin";
		}
		
	}
	
}

在web.xml中配置struts2拦截器

<package name="crm" namespace="/" extends="struts-default">
	<!-- 拦截器配置 -->
	<interceptors>
		<!-- 注册自定义拦截器 -->
		<interceptor name="myInter" class="com.iteason.web.PrivilegeInterceptor"></interceptor>
		
		<!-- 注册自定义拦截器栈 -->
		<interceptor-stack name="myStack">
			<!-- 引入自定义拦截器 -->
			<interceptor-ref name="myInter">
				<!-- 配置不拦截的方法 -->
				<param name="excludeMethods">login.regist</param>
			</interceptor-ref>
			
			<!-- 引入默认的拦截器栈 -->
			<interceptor-ref name="defaultStack"></interceptor-ref>
		</interceptor-stack>
	</interceptors>
	
	<!-- 指定默认自定义的拦截器栈为默认拦截器栈 -->
	<default-interceptor-ref name="myStack"></default-interceptor-ref>
	
	//lots of actions
</package>

 

这样就可以用struts2实现权限管理了。

 

配置顺序:

--》配置拦截器   

    |--》注册自定义拦截器

    |--》注册自定义拦截器栈

            |--》引入自定义拦截器并配置拦截方法

            |--》引入struts2的默认拦截器栈

--》配置拦截器

--》指定默认拦截器栈

 

注意

1、自定义的拦截器必须实现的是MethodFilterInterceptor类

2、自定义拦截器栈必须引入struts的默认拦截器

3、这些配置都在某一package下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值