Spring MVC 下,不使用AJAX 登录时的错误提示的实现
来源:互联网 发布:大数据的技术架构 编辑:程序博客网 时间:2024/06/15 15:15
背景: 最近在写项目时,登录时,碰到用户名或密码错误时,只是简单的刷新一下页面,没有任何提示(用户看到的效果),用户体验极其不好. 后台代码当然是重定向.
看代码(修改前)
@RequestMapping("/login") public String login(HttpServletRequest req, HttpServletResponse res, User user) { String username = user.getUsername(); UsernamePasswordToken token = new UsernamePasswordToken(username, user.getPassword()); Session session = ForwardUtils.getSession(); session.setAttribute("lguser", user); try { SecurityUtils.getSubject().login(token); } catch (UnknownAccountException e) {// 没找到帐号 e.printStackTrace(); return "redirect:/toLogin"; } catch (LockedAccountException e) {// 帐号锁定 e.printStackTrace(); return "redirect:/toLogin"; } catch (Exception e) {// 凭证有误 e.printStackTrace(); return "redirect:/toLogin";//登录失败,,重定向到登录界面 } return "redirect:/toHome"; //登录成功 }
错误提示这东西就没了.楼主学术尚浅,用了简单的session 实现, (登录失败时,把错误信息保存到session, jsp页面使用el表达式获取错误信息,登录成功时销毁session),这样做的话,实现了登录错误提示,,但是用户在登录页面刷新页面时,错误信息还是存在. 这样就很监介了. 身为一个强迫症患者,这样是不行的.
废话说多了, 最后使用了RedirectAttributes
这个类就是spring mvc 给的了,,需要3.1 以上的哦...他的作用就是在重定向的时候顺便把想要传的值传过去了, 好吧 直接上代码
@RequestMapping("/login") public String login(HttpServletRequest req, HttpServletResponse res, User user , RedirectAttributes attr) { String username = user.getUsername(); UsernamePasswordToken token = new UsernamePasswordToken(username, user.getPassword()); Session session = ForwardUtils.getSession(); session.setAttribute("lguser", user); try { SecurityUtils.getSubject().login(token); } catch (UnknownAccountException e) {// 没找到帐号 e.printStackTrace(); attr.addFlashAttribute("login_error_alert","用户名或密码错误"); return "redirect:/toLogin"; } catch (LockedAccountException e) {// 帐号锁定 e.printStackTrace(); attr.addFlashAttribute("login_error_alert","用户名或密码错误"); //登录失败时把提示信息存入 return "redirect:/toLogin"; } catch (Exception e) {// 凭证有误 e.printStackTrace(); attr.addFlashAttribute("login_error_alert","用户名或密码错误"); return "redirect:/toLogin"; } return "redirect:/toHome"; }
jsp页面当然还是el表达式了
<span style="color: #f00">${login_error_alert}</span>
阅读全文
0 0
- Spring MVC 下,不使用AJAX 登录时的错误提示的实现
- Spring MVC使用ajax的400错误
- spring security登录失败的错误提示
- Spring MVC + mybatis实现的注册登录
- Spring MVC实现的登录拦截器
- spring mvc 实现网站登录与非登录的控制
- spring mvc 实现网站登录与非登录的控制
- spring mvc 实现网站登录与非登录的控制
- spring mvc 实现网站登录与非登录的控制
- spring mvc 实现网站登录与非登录的控制
- spring mvc+spring+mybatis+ajax实现登录验证
- 扩展jquery的ajax,实现登录超时和权限提示
- Spring mvc下国际化的实现
- 用Spring MVC实现用户登录的完整实例
- 用Spring MVC实现用户登录的完整实例
- 用Spring MVC实现用户登录的完整实例
- spring boot MVC 三 用户注册和登录的实现
- Spring4 Spring MVC实战(四)——Spring MVC实现类struts通配符跳转,HMTL、Ajax和EasyUI的交互,405及406错误
- 学习检查Linux是否遭到入侵篡改
- Android 百度统计
- hibernate多对多,中间表无数据问题
- jQuery学习之基本选择器、层次选择器和并且选择器
- Joomla入门 HEELOWORLD工作方式
- Spring MVC 下,不使用AJAX 登录时的错误提示的实现
- 《LeetCode》:Two Sum
- ECMA-262 V7.0 中关于对象的概述
- spring activeMQ 整合(二): 重发机制(消息发送失败后的重新发送)
- python中switch的用法
- C++之考虑virtual函数以外的其他选择(35)---《Effective C++》
- PADS 问题汇总
- Filter--URL Rewrite实现网站伪静态
- ubuntu14.04下安装webstorm2017.2