`
虚弱的java
  • 浏览: 163039 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论
阅读更多

我们通过简易用户管理系统中的登录功能演示Spring MVC的异常处理,只是使用用户登录功能模拟Spring mvc异常的处理。实际上,登录模块的设计并非如此的简单。

1、在UserController中,编写用户登录方法,代码如下:

@RequestMapping(value="/login",method=RequestMethod.POST)
 public String login(String username,String password,HttpSession session){//此处将HttpSession做为参数
  if(!users.containsKey(username)){
     throw new UserException("用户不存在!");//用户不存在,抛出异常
  }
  User u = users.get(username);
  if(!u.getPassword().equals(password)){
   throw new UserException("密码不正确!");//密码错误
  }
  session.setAttribute("loginUser", u);
  return "redirect:/user/users";
 }

 在上面的方法中,将HttpSession作为参数,Spring会自动的将其注入,用户登录成功后,将用户信息保存到Session中。

2、创建UserException类,并继承RuntimeException类。

3、创建login.jsp登录页面



 4、发布项目,进行登录操作。我们使用不存在的用户进行登录,此时页面会抛出异常。如下图所示:

 

 

 5、我们在UserController方法中,添加局部异常处理方法

@ExceptionHandler(value={UserException.class})//value可以是数组
 public String handlerException(UserException e ,HttpServletRequest req){
  req.setAttribute("e", e);//将异常信息放入请求中
  return "error";
 }

6、异常信息视图界面:



 7、运行效果如图:



以上只是局部异常处理,意味着仅仅只能处理控制中的异常。那么全局异常该如何处理呢?针对项目当中出现大量的异常,采用全局异常处理方式是常用的手法。

8、在Welcome-servlet.xml中配置全局异常处理,同时,项目的目录结构如下:



 

 上面图片的意思是:如果发现UserException抛出异常,则到error页面。

9、将UserCotroller中的局部异常注释掉,发布项目,在登录页面输出一个不存在的用户,得到效果如下:


 10、error.jsp,错误视图处理页面代码修改如下:

<body>
发现错误:
<h1>${exception.message}</h1>
</body>

至此,一个简单的spring mvc异常处理方式,已经完成。

 

<!-- 将静态文件指定到某个特殊的文件夹中统一处理 -->
 <mvc:resources location="/resources/" mapping="/resources/**"/>

以上代码段需要添加在welcome-servlet.xml文件中,其目的是spring mvc中提供了一种统一处理静态资源的方式。如果不添加,则页面引入的css等静态资源无法起作用。

 

 

  • 大小: 11.3 KB
  • 大小: 30.9 KB
  • 大小: 7.6 KB
  • 大小: 12.8 KB
  • 大小: 12.6 KB
  • 大小: 6.1 KB
  • 大小: 10.6 KB
分享到:
评论
1 楼 Herbaceous 2013-11-01  
请问您知道如何全局异常,统一输出Json吗

相关推荐

    spring mvc异常处理

    本文将深入探讨Spring MVC中的异常处理机制,帮助你更好地理解如何优雅地处理错误和异常。 1. **Spring MVC 异常处理概述** Spring MVC 提供了一种统一的方式来处理应用程序中抛出的异常。它通过`@...

    spring mvc统一处理异常

    spring mvc统一处理异常,通过@ControllerAdvice+@ExceptionHandler

    spring mvc异常简单处理

    在Spring MVC框架中,异常处理是一项关键任务,它确保了应用程序在遇到错误或异常时能够优雅地响应。本文将深入探讨Spring MVC中的异常处理机制,包括如何配置、自定义异常处理器以及异常转换策略。 首先,Spring ...

    Spring MVC 4.2.3

    6. **异常处理**:通过定义全局异常处理器,可以统一处理应用程序中的异常,提高代码的整洁性和可维护性。 7. **多视图解析器**:Spring MVC支持多种视图解析器,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求...

    最全最经典spring-mvc教程

    错误处理和异常处理也是Spring MVC中的重要部分,通过@ControllerAdvice和@ExceptionHandler可以全局处理异常,提供统一的错误页面。 最后,测试是任何应用程序开发的重要环节。Spring MVC提供了MockMVC,可以在不...

    Spring MVC 教程快速入门 深入分析

    十一、Spring MVC如何实现全局的异常处理:提供了实现全局异常处理器的方式,让开发者能够捕获所有控制器抛出的异常,统一处理。 十二、Spring MVC如何把全局异常记录到日志中:讲述了如何将异常信息记录到日志文件...

    Spring.MVC-A.Tutorial-Spring.MVC学习指南 高清可复制版PDF

    除此之外,Spring MVC还支持数据绑定、验证、本地化、主题、异常处理等功能。例如,使用@ModelAttribute注解可以将请求参数绑定到Controller方法的参数上,@Valid用于进行数据验证,Validator接口可以自定义验证逻辑...

    spring mvc 4.0

    8. **异步处理**:Spring MVC 4.0引入了异步请求处理,通过@ControllerAdvice和@Async注解,可以实现后台任务的异步执行,提高响应速度。 9. **多Part文件上传**:支持多文件上传,利用MultipartFile接口处理上传...

    Spring mvc 教程

    - **@ExceptionHandler 注解**:用于声明异常处理方法。 - **处理一般的 Spring MVC 异常**:Spring MVC 自身的一些异常可以在这里统一处理。 - **使用 @ResponseStatus 注解业务异常**:为自定义异常添加 HTTP 状态...

    spring mvc框架依赖全面jar

    `org.springframework.web-3.1.1.RELEASE.jar` 包含了Spring框架对Web应用的支持,如过滤器、异常处理和请求映射等。 `javassist-3.12.0.GA.jar` 是Java编程辅助工具,它在运行时可以动态修改类和创建新的类,常...

    Spring mvc5.0.3 所有jar包

    它还负责处理视图解析和异常处理。 2. **Model-View-Controller(MVC)架构**: Spring MVC遵循MVC设计模式,将应用程序逻辑分解为模型(Model)、视图(View)和控制器(Controller)三个部分。模型处理业务逻辑,...

    Spring MVC 4.2.4.RELEASE 中文文档

    异常处理** 通过自定义异常处理器,Spring MVC允许优雅地处理运行时异常,提供了统一的错误页面和异常信息。 **7. RESTful支持** Spring MVC支持构建RESTful服务,通过HTTP方法如GET、POST、PUT、DELETE等,实现...

    精通Spring MVC4

    Spring MVC提供了一种优雅的异常处理机制,可以使用@ControllerAdvice和@ExceptionHandler注解定义全局异常处理器。此外,还可以自定义错误页面,提高用户体验。 8. **数据绑定和验证** Spring MVC支持自动的数据...

    spring mvc 整合包

    13. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局处理异常,提供统一的错误页面。 14. **RESTful风格**:Spring MVC支持创建RESTful API,通过HTTP方法(GET、POST、PUT、DELETE等)和...

    Spring MVC跟jQuery和Twitter Bootstrap的结合

    5. **异常处理**:Spring MVC通过`@ExceptionHandler`注解处理异常,可以返回定制的错误页面。配合jQuery,可以在前端优雅地处理错误,如弹出错误消息。 6. **RESTful API**:Spring MVC支持构建RESTful服务,与...

Global site tag (gtag.js) - Google Analytics