欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

java,

来源: javaer 分享于  点击 44813 次 点评:279

java,


说起来也有点傻吧,以前没有用过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">

相关文章

    暂无相关文章
相关栏目:

用户点评