登录超时 拦截器里无法跳转到登录页面

发布于 2021-11-26 01:44:35 字数 928 浏览 958 评论 4

@JFinal 你好,想跟你请教个问题:

我想使用拦截器实现用户登录超时后,进行操作时跳转到登录页面,debug后发现已经进入了我想要的interceptor,但是controller.redirect("/login.jsp");这句没有起作用,页面任然停留在正在操作的页面里。

public class LoginInterceptor implements Interceptor {

	@Override
	public void intercept(ActionInvocation ai) {
		Controller controller = ai.getController();
	    String loginUser = controller.getSessionAttr("username");
	    if (loginUser != null && !loginUser.equals("")){
	    	ai.invoke();
	    }else{
	    	controller.removeSessionAttr("username"); 
	    	controller.redirect("/login.jsp"); //debug下能运行到这一步 但是不跳转
	    	return;
	    }
	}
}



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

凌乱心跳 2021-11-29 14:52:53

十分感谢,找到原因了,是ajax请求造成的。顺便想问一下,如果是ajax请求的情况下,有什么好的方法实现页面跳转吗

做个少女永远怀春 2021-11-29 10:20:52

回复
如果是 ajax,只需要 在 jfinal 这端使用renderJson("redirectUrl", "/login.jsp"); 然后 ajax 那端得到 redirectUrl 的返回值 "/login.jsp" 以后,通过 js 做个跳转即可: location.href = redirectUrl;

网名女生简单气质 2021-11-28 18:25:29

回复
回答的很详细,成功实现了,谢谢

坐在坟头思考人生 2021-11-28 09:46:31

回复
ajax请求的话 得到成功的消息 直接在页面重定向就行了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文