Spring MVC异常处理SimpleMappingExceptionResolver[转] (2012-12-07 13:45:33) 转载▼ 标签: 杂谈 分类: 技术分享 Spring3.0中对异常的处理方法一共提供了两种:一种是使用HandlerExceptionResolver接口:一种是在Controller类内部使用@ExceptionHandler注解.使用第一种方式可以实现全局异常控制,并且Spring已经提供了一个默认的实现类SimpleMappingExceptionRe…
希望对一些异常统一处理,他将异常类名映射为视图名,即发生异常时使用对应的视图报告异常.…
Spring MVC异常处理流程: 提供构造方法传值: 配置异常处理器的bean…
Spring MVC中异常处理的类体系结构 下图中,我画出了Spring MVC中,跟异常处理相关的主要类和接口. 在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要实现HandlerExceptionResolver接口.AbstractHandlerExceptionResolver实现该接口和Orderd接口,是HandlerExceptionResolver类的实现的基类.ResponseStatusExceptionResolver等具体的异常处理类均…
Spring Mvc 中异常处理,一般有两种解决办法: 一.利用org.springframework.web.servlet.handler.SimpleMappingExceptionResolver 这个类,配置在spring-servlet.xml文件中: <!-- 异常处理 --><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> &…
下图中,我画出了Spring MVC中,跟异常处理相关的主要类和接口. 在Spring MVC中,所有用于处理在请求映射和请求处理过程中抛出的异常的类,都要实现HandlerExceptionResolver接口.AbstractHandlerExceptionResolver实现该接口和Orderd接口,是HandlerExceptionResolver类的实现的基类.ResponseStatusExceptionResolver等具体的异常处理类均在AbstractHandlerExcept…
Servlet传统异常处理 Servlet规范规定了当web应用发生异常时必须能够指明, 并确定了该如何处理, 规定了错误信息应该包含的内容和展示页面的方式.(详细可以参考servlet规范文档) 处理方式 处理状态码<error-code> 处理异常信息<exception-type> 处理服务地址<location> Spring MVC 处理方式 所有的请求必然以某种方式转化为响应. Spring中特定的异常将自动映射为特定的HTTP状态码 使用@Response…
@ControllerAdvice(basePackageClasses = AcmeController.class) public class AcmeControllerAdvice extends ResponseEntityExceptionHandler { @ExceptionHandler(YourException.class) @ResponseBody ResponseEntity<?> handleControllerException(HttpServletReque…
以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-exception-handling-example.html: 例子: pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schema…
一.异常结构 1.异常由外到内如下: web服务器处理异常--->web应用里面web.xml处理异常--->Spring框架处理异常---->控制器注释处理异常--->控制器方法里面try处理异常 二.针对如上图讲解实现方法 1.Tomcat异常处理:在conf/web.xml里面加入错误页面配置信息.(了解) 2.Web应用程序:工程下的web.xml配置错误页面信息: <error-page> <error-code>404</error-cod…
完整的项目案例: springmvc.zip 目录 实例 除了依赖spring-webmvc还需要依赖jackson-databind(用于转换json数据格式) <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version></d…
1.异常处理介绍 Spring在web项目中,如果在请求处理时出现异常,那输出会是Servlet响应.这时异常需要以某种方式转换为响应. Spring将异常转换为响应的方式: a.特定的Spring异常将自动映射为指定的HTTP状态码: b.异常上添加@ResponseStatus注解,从而将其映射为某一个HTTP状态码: c.方法上添加@ExceptionHandler注解,使其处理异常. 2.异常处理代码 @RequestMapping("getPathVariable/{id}"…
一般实现业务的时候避免不了会抛一些自定义异常 抛给controller进行最终处理.如果业务上比较复杂.频繁的在try catch操作. 时间一长,代码维护性,可读性自然而然就上来了. 然后,spring 帮我们提供了一个注解. 个人理解 注解就是偷懒用的. 那就是 @ControllerAdvice 注解 直接贴代码:自定义异常处理 业务代码: 控制层并没有对抛出来的异常进行处理.. 这个时候.并不需要,你去一句句的try cat 也不需要你做多过的配置 . 官方文档: 访问: 验证注解:@V…
对一些特殊的异常进行处理,比如方法类型不匹配, 转换错误.…
作用在类和方法上面 更改返回的代码和错误消息 类上 通过throw new UserName***Exception()抛出 @ResponseStatus(value=HttpStatus.FORBIDDEN, reason="用户名和密码不匹配!") public class UserNameNotMatchPasswordException extends RuntimeException{ /** * */ private static final long serialVer…
通过HandlerExceptionResolver 处理程序异常,包括Handler映射, 数据绑定, 以及目标方法执行时的发生的异常 实现类如下 /** * 1. 在 @ExceptionHandler 方法的入参中可以加入 Exception 类型的参数, 该参数即对应发生的异常对象 * 2. @ExceptionHandler 方法的入参中不能传入 Map. 若希望把异常信息传导页面上, 需要使用 ModelAndView 作为返回值 * 3. @ExceptionHandler 方法标…
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于请求转发的页面,也可以是WEB-INF中页面:对于重定向的页面,不能为WEB-INF中的页面.因为重定向相当于用户再次发出一次请求,而用户是不能直接访问WEB-INF中资源的 1)重定向到页面 FirstController.java package cn.controller; import or…
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于请求转发的页面,也可以是WEB-INF中页面:对于重定向的页面,不能为WEB-INF中的页面.因为重定向相当于用户再次发出一次请求,而用户是不能直接访问WEB-INF中资源的 1)重定向到页面 FirstController.java package cn.controller; import or…
1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大. 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的.下面将介绍使用Spring MVC统一处理异常的解决和实现过程. 2 分析 Spring MVC处理异常有3种方…
一.概述 Spring MVC异常处理功能的作用为:捕捉处理器的异常,并映射到相应视图 有4种方式: SimpleMappingExceptionResolver:通过配置的方式实现异常处理,该方式简单.无侵入性,但仅能获取到异常信息 HandlerExceptionResolver:通过实现该接口并实例化为bean实现异常处理,该方式简单.无侵入性,并能够获取关于异常的更详细信息 @ExceptionHandler:通过在控制器类或控制器类的基类中添加异常处理方法,从而实现单个控制器范围的异常…
1 描述 在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的.不可预知的异常需要处理.每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大. 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的.下面将介绍使用Spring MVC统一处理异常的解决和实现过程. 2 分析 Spring MVC处理异常有3种方…
参考博客: http://www.cnblogs.com/dongying/p/6129937.html http://www.cnblogs.com/rollenholt/archive/2012/12/25/2832731.html http://cgs1999.iteye.com/blog/1547197 我在项目中的使用: 1)404找不到: web.xml中配置: <!-- 404错误 --> <error-page> <error-code>404</…
使用Spring MVC开发的博客网站时,遇到了如何处理业务层抛出的异常的问题,查阅到了spring官方博客-spring MVC中异常的处理,以下将会以登录模块为示例. 愚蠢的处理方式 处理异常遵循"早抛出,晚捕获"的原则,在controller中统一处理异常,调用业务逻辑service时使用try-catch包围. 然而这样需要每个controller方法中会编写模版代码,自然Spring MVC的设计者也会想到这个问题!于是去查阅资料. 优雅的解决方案 Spring MVC提供的…
一.Spring MVC 验证 JSR 303 是ajvaEE6 中的一项子规范 ,叫 Bean Validation 用于对javaBean中的字段进行校验. 官方的参考实现是: Hibernate Validator ,此实现和 Hibernate ORM 没有任何关系  //http://hibernate.org/validator Spring 3.x 也大力支持     JSR 303,使用的是  Hibernate Validator 1) 导包 4.3.1.Final 版本为例…
目录 异常处理 类型转换器 数据验证 文件上传与下载 拦截器 异常处理 Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过throw Exception向上抛出, 最后由中央处理器DispatchServlet交由全局异常处理器进行异常处理, 如下图所示 常用的Spring MVC异常处理方式主要有三种: 使用系统定义好的异常处理器SimpleMappingExceptionResolver 使用自定义异常处理器 使用异常注解 SimpleMap…
Spring MVC中404 找不到页面错误可以直接使用web.xml中配置: 在<web-app/>节点内加入: <error-page> <error-code>404</error-code> <location>/WEB-INF/views/errors/404.jsp</location> </error-page> 500的运行时错误,可以使用Spring MVC的SimpleMappingExceptionR…
在Spring MVC异常处理详解中,介绍了Spring MVC的异常处理体系,本文将讲解在此基础上Spring Boot为我们做了哪些工作.下图列出了Spring Boot中跟MVC异常处理相关的类. Spring Boot在启动过程中会根据当前环境进行AutoConfiguration,其中跟MVC错误处理相关的配置内容,在ErrorMvcAutoConfiguration这个类中.以下会分块介绍这个类里面的配置. 在Servlet容器中添加了一个默认的错误页面 因为ErrorMvcAuto…
Spring MVC教程--检视阅读 参考 Spring MVC教程--一点--蓝本 Spring MVC教程--c语言中午网--3.0版本太老了 Spring MVC教程--易百--4.0版本不是通过maven创建的 Spring MVC教程--javaschool纯理论 Spring MVC应用--javaschool纯理论 Spring MVC学习总结 Spring MVC 4.2.4.RELEASE 中文文档--基础学习后看 SpringMVC面试题 目前大多数使用的是spring4.x…
在使用SimpleMappingExceptionResolver实现统一异常处理后(参考Spring MVC的异常统一处理方法), 发现出现异常时,log4j无法在控制台输出错误日志.因此需要自定义一个继承至SimpleMappingExceptionResolver的 RrtongMappingExceptionResolver类,在RrtongMappingExceptionResolver中通过 log.error(ex.getMessage())的方式输出日志到控制台上.以下是具体的配…
我们都知道,Spring MVC的请求都会去找controller控制器,若果我们页面中引入了一个外部样式,这样是没效果的, 我们引入样式的时候是通过<like href="..."></like> 这也算请求,若果我们href中的URL是http://localhost:8080/Text/statics/css/main.css 他不会去找样式表,而是去拆解URL,在根据HandlerMapping去找对应的Handler,但是,这个地址是没有预支对应的Ha…