自定义异常类UserException.java
package com.test.exception; public class UserException extends RuntimeException { public UserException(String message) { super(message); } }
在Action控制器UserController.java中类名上添加:
@SessionAttributes("loginUser"),表示loginUser是session属性,为在用户列表上显示当前登录人做准备
然后添加:
/** * 登录前 * * @return */ @RequestMapping(value = {"/loginUserPro", "/"}, method = RequestMethod.GET) public String loginUserPro() { return "user/loginUser"; } /** * 登录 * * @param username * @param password * @param model * @return */ @RequestMapping(value = "/loginUser", method = RequestMethod.POST) public String loginUser(String username, String password, Model model) { if (!users.containsKey(username)) { throw new UserException("用户名不存在!");// 异常捕获 } if (!password.equals(users.get(username).getPassword())) { throw new UserException("密码不正确!");// 异常捕获 } // 把登录用户名的信息保存到session的loginUser中,注意loginUser和上面@SessionAttributes中的参数保持一致 model.addAttribute("loginUser", users.get(username)); return InternalResourceViewResolver.REDIRECT_URL_PREFIX + "/user/userList"; } // 局部异常处理 @ExceptionHandler(UserException.class) public String handlerException(Exception e, HttpServletRequest request) { request.setAttribute("e", e); return "user/loginUser"; }
用户列表页面/jsp/user/userList.jsp添加:登录用户名:${loginUser.username }
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>用户列表</title> </head> <body> 登录用户名:${loginUser.username } <table border="1"> <tr> <th>用户名</th> <th>别名</th> <th>密码</th> <th>邮箱</th> </tr> <c:forEach items="${users}" var="user"> <tr> <td>${user.value.username }</td> <td>${user.value.nickname }</td> <td>${user.value.password }</td> <td>${user.value.email }</td> </tr> </c:forEach> </table> </body> </html>
登录页面/jsp/user/loginUser.jsp
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GBK"> <title>添加用户</title> </head> <body> <!-- 显示自定义局部异常信息 --> <font color="red">${e.message }</font><br> <form method="post" action="loginUser"> 用户名:<input type="text" name="username"/><br> 密码:<input type="password" name="password"/><br> <input type="submit" value="登录"/> </form> </body> </html>
在浏览器中输入:
http://127.0.0.1:9900/springmvc_005_rest_02/user/,页面随便填写,显示结果
用户名输入:ldh,密码输入:1,直接跳转到用户列表页面
知识扩展:
关于异常处理,spring提供了全局的异常处理:
去掉Action控制器UserController.java中的handlerException局部异常处理方法
在springmvc配置文件spring-mvc.xml中添加关于全局异常处理的配置
<!-- 全局异常处理 --> <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> <property name="exceptionMappings"> <props> <!-- 设置显示异常信息的视图逻辑 --> <prop key="com.test.exception.UserException">user/loginUser</prop> </props> </property> </bean>
这个时候传递到loginUser.jsp页面上的存放异常信息参数名默认就是exception(修改登录页面/jsp/user/loginUser.jsp中e为exception)
相关推荐
springMVC spring mybatis rest风格架构 根据请求的后缀名 解析成json 或者 xml格式的数据
springmvc中rest风格的增删改查,适合初学者参考
企业级开发-SpringMVC使用拦截器实现用户登录权限验证实验报告
REST风格简介 2、RESTful入门案例 入门案例 请求方法设定 请求路径参数 3、REST快速开发 RESTful快速开发(标准开发) @RestController 标准请求动作映射(4种) 4、案例:基于RESTful页面数据交互 5、SSM整合 ...
SSM笔记-SpringMVC REST风格初识、RequestMapping/PathVariable/RequestParam/RequestHeader/CookieValue基本使用方法
开发工具使用的是IDEA,使用SpringMVC+Maven实现用户登录功能,适合刚接触SpringMVC的技术。
使用了springmvc统一异常处理 使用了FormattingConversionServiceFactoryBean对于传入参数中日期或数字字符串进行数据转换和数据格式化 使用了SpringContextHolder方便在自定义线程中调用spring已经实例的bean,如...
SpringMVC构建REST接口:第四篇 第一个REST风格的接口的源代码
SpringMVC构建REST接口的源代码
主要介绍了springmvc Rest风格介绍及实现代码示例,rest风格简洁,分享了HiddenHttpMethodFilter 的源码,通过Spring4.0实现rest风格源码及简单错误分析,具有一定参考价值,需要的朋友可以了解下。
springmvc异常处理的博文如下: http://blog.csdn.net/dlf123321/article/details/50756003
本人在前辈《从MVC到前后端分离(REST-个人也认为是目前比较流行和比较好的方式)》一文的基础上,实现了一个基于Spring的符合REST风格的完整Demo,具有MVC分层结构并实现前后端分离,该项目体现了一个具有REST风格...
Java+tomcat+springMVC;实现用户注册及登陆 .没有Service与dao
实现框架:springMVC,数据库:oracle,实现用户登录和对用户的增删改查操作。使用时,请根据需要改变数据库链接地址
springmvc的rest风格的增删改查,适合springmvc的新手
自定义注解:SpringBoot中针对SpringMvc自定义注解获取用户登陆信息
SpringMVC用户管理实现 通过SpringMVC与JSP实现用户角色管理
Maven+SpringMVC实现统一异常处理
主要为大家详细介绍了springmvc+spring+mybatis实现用户登录功能,比较基础的学习教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
一个使用SpringMVC实现用户登录的Demo,很简单,非常适合初学者!