ssm框架+前端ajax登录,解决登录后跳转回原链接问题
当前环境: 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的输出的内容。这种情况应该怎么处理? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何debug bison和flex写的程序
- reactjs – 如何使用react-router-redux routeActions?
- PostgreSQL9.2 升级至 PostgreSQL 9.3
- 正则表达式匹配所有排除块注释
- vuejs使用axios异步访问时用get和post的实例讲解
- ruby-on-rails – wicked_pdf不在Ubuntu服务器上运行:wkht
- ruby-on-rails – Rails:ActiveSupport的未定义方法`prima
- Loadrunner 9.5 flex性能测试
- 发布时一键添加html中的css标签和script标签版本号来防止浏
- 缓存 – 我可以在JMeter聚合报告中包含缓存响应的请求