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下

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

被折叠的 条评论
为什么被折叠?



