您的位置:首页 > Web前端

ssm框架+前端ajax登录,解决登录后跳转回原链接问题

2016-10-15 16:56 330 查看
当前环境:

      spring做全链接拦截,在拦截器中进行登录验证,登录方法在前端触发使用的是ajax,登录方式调用成功后,将在session中保存登录的UUID,登录成功后的处理直接使用页面跳转到主页(window.location.href)。

出现的变更:

      如果页面长时间没有访问,session失效后,之前打开的页面上的任何业务操作都将会跳转到登录页面,登录后会跳转到主页。

      在重新登录后客户希望回到原来的页面。

处理方案:

     1、在拦截器中,当登录的uuid为空的时候,记录下访问的全路径保存到session中:

String getFullURL(HttpServletRequest request) {
StringBuffer url = request.getRequestURL();
if (request.getQueryString() != null) {
url.append("?");
url.append(request.getQueryString());
}
return url.toString();
}


      2、当正常跳转时,清除保存到session中的路径,由于程序逻辑中,在登录成功后会直接在页面上跳转,故而在登录成功后的uuid不为空时,保存的全路径已经被使用了。

            或者在退出的动作中删除session中的路径,如此保证了,正常登录时,能跳转到主页上。

      3、在登录成功后,如果session中保存的路径为空,那么直接将首页链接返回到前端,否则获取session中保存的路径,直接作为ajax的data返回到页面,页面获取此路径后,直接跳转到此路径;

引申问题:

如果在登录失效后输入的URL是错误的,那么登录后将会继续打开错误的URL,特别是当URL为ajax方法调用的连接时,页面上将返回action的输出的内容。这种情况应该怎么处理?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐