求struts2权限控制实例

谁帮我写个用struts2控制用户登录权限的实例,要求:只能是登录用户才能进入某些页面,否则转入登录页面。... 谁帮我写个用struts2控制用户登录权限的实例,
要求:只能是登录用户才能进入某些页面,否则转入登录页面。
展开
 我来答
liuzhh110
2010-08-14 · TA获得超过306个赞
知道小有建树答主
回答量:103
采纳率:0%
帮助的人:92.4万
展开全部
这是我以前写的最简单的一个拦截器 登陆以后要存一个参数ssid(用户ID) 到 session里
拦截器里面的"noid" 你只要在struts.xml中设置一个全局的转发错误的页面或者返回到登陆页面就好了:
如:(
<global-results>

<!-- 逻辑名为login的结果,映射到/login.jsp页面 -->

<result name="noid" type="redirect">/noid.jsp</result>

</global-results>
)

拦截器代码:
package com.jihe.interceptor;

import java.util.Map;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class MyInterceptor extends AbstractInterceptor {

@Override
public String intercept(ActionInvocation invocation) throws Exception {

Map session = invocation.getInvocationContext().getSession();

if (null != session.get("ssid")) {

return invocation.invoke();

} else {

return "noid";

}
}
}

然后在sturt.xml中配置拦截器(我设置的是全局的,如果你用可能会出现问题,因为你设置这个拦截器以后在登陆时的ssid肯定是null,所以要把不需要拦截器验证的action放到别的package里如: <package name="struts2.1" extends="struts-default"> )

<package name="struts2" extends="struts-default" >
<interceptors>

<!-- 定义权限控制拦截器 -->

<interceptor name="authority"

class="com.jihe.interceptor.MyInterceptor" />

<!-- 定义一个包含权限控制的拦截器栈 -->

<interceptor-stack name="mydefault">

<interceptor-ref name="defaultStack" />

<interceptor-ref name="authority" />

</interceptor-stack>

</interceptors>

<!-- 定义默认拦截器 -->

<default-interceptor-ref name="mydefault" />

</package>

如果看实在不会用的话 就用过滤器写吧! 过滤器应该会吧!
qqqqanje
2010-08-12 · TA获得超过262个赞
知道小有建树答主
回答量:151
采纳率:100%
帮助的人:77.4万
展开全部
用户登录后将其放入ActionContext里
ActionContext.getContext().put("user",user);
然后在自己写拦截器或过滤器取出user比对就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂热1985
2010-08-11 · TA获得超过782个赞
知道小有建树答主
回答量:517
采纳率:0%
帮助的人:327万
展开全部
这个需要300分
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式