在线等!关于struts2中拦截器权限控制的问题,没登录的时候一直不跳到登录页面!

struts.xml</package><packagename="p2"extends="struts-default"><interceptors><intercep... struts.xml

</package>
<package name="p2" extends="struts-default">

<interceptors>
<interceptor name="mylogin" class="com.sun.struts2.Interceptor"/>

<interceptor-stack name="mydefault">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="mylogin"/>
</interceptor-stack>

</interceptors>
<default-interceptor-ref name="mydefault"/>
<global-results>
<result name="login">/Login.jsp</result>
</global-results>

<action name="applicat_*" class="com.sun.struts2.demo.ApplicationAction" method="{1}">
<result name="success">/MyJsp.jsp</result>
</action>
</package>
拦截器代码:
public String intercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub

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

String user = (String)session.get("uName");
System.out.println("user-----------------"+user);
if (user != null){
System.out.println(user+"已登录。。。。。。。。");
return invocation.invoke();
}
ctx.put("tip", "您还没有登录!");
return Action.LOGIN;
}
在运行中,会进入到拦截器里进行拦截,但应该返回Login.jsp还是会跳到MyJsp.jsp
展开
 我来答
匿名用户
2011-07-27
展开全部
必然的啊,因为你在进入登陆的Action前执行的拦截器,而这时还没有执行你的登陆方法,因此取得的username为空.

登陆拦截是拦截登陆方法以外的Action,登陆的Action千万别拦截,否则永远没办法登陆了
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
匿名用户
2011-07-27
展开全部
必然的啊,因为你在进入登陆的Action前执行的拦截器,而这时还没有执行你的登陆方法,因此取得的username为空.

登陆拦截是拦截登陆方法以外的Action,登陆的Action千万别拦截,否则永远没办法登陆了
另外,虚机团上产品团购,超级便宜
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f40712d
2011-07-26 · TA获得超过830个赞
知道小有建树答主
回答量:643
采纳率:0%
帮助的人:720万
展开全部
朋友,你DEBUG看一下呀,有没有执行到Action.LOGIN?

看你这个调试的方法不对,程序中用System.out.println来高度是属于最低级的调试

建议你看看怎么用DEBUG来调试吧,这样一是快,二是不会出错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不一定是飞机
2011-07-26 · TA获得超过827个赞
知道小有建树答主
回答量:270
采纳率:100%
帮助的人:321万
展开全部
你有几个package?
globel-results在哪?
追问
就一个package

/Login.jsp

有写的
追答
如果拦截到,而且配置了global-results 
是可以跳转的
或许跳转到登陆页面,仍然被拦截
这样就成死循环了
你需要判断下请求页面是不是login.jsp
如果是的话则invocation.invoke()
否则再 Action.LOGIN
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式