说起来也有点傻吧,以前没有用过struts2 的 interceptor,所以不知道用户登录之后session中的数据究竟是怎么进行权限控制的,后来因为项目的需求,所以在google上面查找了一些这个方面的资料,并且照着这个方法写了一个,还真的起了很大的左右,而且上面还有的方法说,有的jsp页面是不能采用那种方法的,但是通过filter可以实现!
下面附上我的代码,希望对大家有所帮助吧!
public class AuthorityInteraptor extends AbstractInterceptor {
private static final long serialVersionUID = 5715931131999632475L;
@SuppressWarnings("unused")
private static Log log = LogFactory.getLog(AuthorityInteraptor.class);
@Override
public String intercept(ActionInvocation arg0) throws Exception {
// TODO Auto-generated method stub
ActionContext ctx = arg0.getInvocationContext();
Map<String, Object> session = ctx.getSession();
if(session.get("user") != null){
System.out.println("success!");
return arg0.invoke();
}
System.out.println("fail");
ctx.put("tip","您还没有登录,请登陆系统");
return Action.LOGIN;
}
}
struts.xml的配置:
<package name="authority" extends="struts-default">
<interceptors>
<!--定义一个名为authority的拦截器-->
<interceptor
class="com.goosteel.kdonl.interaptor.AuthorityInteraptor"
name="authority"/>
<!--定义一个包含权限检查的拦截器栈-->
<interceptor-stack name="mydefault">
<!--配置内建默认拦截器-->
<interceptor-ref name="defaultStack"/>
<!--配置自定义的拦截器-->
<interceptor-ref name="authority"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="mydefault"></default-interceptor-ref>
<global-results>
<result name="login">/login.jsp</result>
</global-results>
</package>
其他的只要是继承自struts-default的package只要继承自这个package就可以了,例:
<package name="knowledgepart" namespace="/knowledgepart" extends="authority">
分享到:
相关推荐
这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学逻辑的具体实现。当你仔细阅读书籍时,会发现Java中有大量的数学知识,包括:扰动函数、负载因子、拉链寻址、开放寻址、...
Java OCR(Optical Character Recognition,光学字符识别)技术是一种计算机视觉领域的应用,它能将图像中的文字转换成可编辑的文本格式。这项技术在各种场景下都有广泛应用,比如文档扫描、车牌识别、发票处理等。...
Java API文档是Java开发者的重要参考资料,它包含了Java开发工具包(JDK)中的所有类、接口、方法和常量的详细说明。这份中文网页版的Java API文档为中国的开发者提供了便利,无需通过英文版本来学习和查找API信息,...
java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011 java 人脸识别完整源代码java_011...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...