java 中prehandle,拦截器preHandle()不会重定向到login.html

I have a spring application. I introduced a sessionInterceptor to prevent direct access to index.jsp. If the user is not logged in it shouldn't be able to access index.jsp and should be redirected to login.html. The code is hitting the preHandle() method and running all the code but after return false it's not redirecting to login.html. What's wrong? Any gurus out there for help? Thanks in advance.

My preHandle() in SessionInterceptor.java is:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

HttpSession session = request.getSession();

// if displaying the home page, make sure the user is reloaded.

if (request.getRequestURI().endsWith("login.html")) {

session.removeAttribute("isUserLoggedIn");

}

if (session.getAttribute("isUserLoggedIn") == null && !request.getRequestURI().endsWith("login")) {

response.sendRedirect(request.getContextPath() + "/login.html");

return false;

}

return true;

}

I have tried the following as well but all in vain.

RequestDispatcher dispatcher = request.getServletContext().getRequestDispatcher("/login.html");

dispatcher.forward(request, response);

My dispatcher-servlet.xml settings are:

The web.xml is:

dispatcher

/rest/*

login.html

解决方案

you can try redirecting to a logical path that will be catched from a controller

Try

response.sendRedirect("/NotLogged");

And then create a function like this:

@RequestMapping(value = {"/NotLogged"}, method = RequestMethod.GET)

public String notLogged() {

return "login.html";

}

I hope it will work for you!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值