使用springMVC框架时,因为前台的请求有些是ajax,有些是请求一个页面.而如果这些请求执行过程中有异常没有catch,会向前台页面抛出.url响应为500,可能也会将异常信息抛到前台,这既不安全也不规范.
使用如下方式即可完美解决.既可以在后台记录错误的堆栈log.对前端的ajax请求或页面请求,都可以有比较好的响应处理.
<!-- 全局异常处理.--> <bean id="exceptionHandler" class="com.novelbio.web.handler.ExceptionHandler"/>
异常处理类
package com.novelbio.web.handler; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.web.util.WebUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver; /** * 全局异常处理类.对后台直接抛往前台页面的异常进行封装处理. * * @author fans.fan *@date 2015年12月4日 */ public class ExceptionHandler extends SimpleMappingExceptionResolver { private static final Logger logger = LoggerFactory.getLogger(ExceptionHandler.class); @Override protected ModelAndView doResolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { ModelAndView modelAndView = super.doResolveException(request, response, handler, ex); String url = WebUtils.getPathWithinApplication(request); logger.error("controller error.url=" + url, ex); if (modelAndView == null) { modelAndView = new ModelAndView("/error/error"); modelAndView.addObject("error."); } return modelAndView; } }
相关推荐
springmvc返回json的全局异常统一处理demo,有问题可以留言。
采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...
统一异常处理就是将所有可能抛出的异常集中处理,提供一个全局的、一致的错误反馈,提高用户体验并简化代码结构。 1. **Maven配置** Maven的pom.xml文件是项目的核心,它定义了项目的依赖关系。为了使用SpringMVC...
Springboot全局异常处理demo 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的...
2. 全局异常处理:为了统一处理所有控制器的异常,可以创建一个处理全局异常的类,该类需要实现`HandlerExceptionResolver`接口或继承`AbstractHandlerExceptionResolver`,并在Spring配置中注册。此外,还可以使用`...
SpringMVC提供了全局异常处理器(`HandlerExceptionResolver`)来统一处理所有异常,这样可以在不重复代码的情况下,实现对不同类型的异常进行统一管理。 ### 自定义异常 1. **自定义异常类**:为了更精确地表示...
- SpringMVC通过@ControllerAdvice和@ExceptionHandler注解实现全局异常处理。 - 可以定义一个全局的异常处理器,处理所有Controller中抛出的异常,提供统一的错误页面或JSON响应。 通过以上知识点的学习,读者...
SpringMVC提供全局异常处理机制,通过`@ExceptionHandler`注解或配置`<exception-type>`元素,可以统一处理特定类型的异常。 通过这个实例,初学者可以了解到SpringMVC的基本工作流程,以及如何集成文件上传下载...
SpringMVC 提供了统一的异常处理机制,可以通过 `@ExceptionHandler` 注解定义异常处理器,或配置 `HandlerExceptionResolver` 实现类来集中处理异常。 ### 第 7 章 数据验证 SpringMVC 结合 Hibernate Validator ...
10. **异常处理**:通过`@ExceptionHandler`注解,可以在控制器中统一处理异常,或者在配置文件中全局定义异常处理器。 通过这个练手代码,你可以实践上述概念,了解它们如何协同工作。同时,你还能学习如何集成...
在Spring MVC框架中,全局异常处理是至关重要的,它确保了应用程序在遇到未捕获的异常时能够优雅地处理并返回合适的反馈给用户。`SimpleMappingExceptionResolver` 是Spring MVC提供的一种简单易用的异常处理器,它...
SpringMVC允许通过创建全局异常处理器来统一处理异常,并且可以配置异常处理器以及提供更为智能和友好的异常提示。 图片上传处理需要配置虚拟目录和多媒体解析器。编写图片上传处理代码时,需要在JSP页面进行修改,...
10. **异常处理**:通过@ControllerAdvice和@ExceptionHandler注解,可以全局统一处理异常,提供友好的错误提示。 本入门案例源码中,开发者可以学习到如何配置SpringMVC环境,创建和注册Controller,处理请求和...
此外,全局异常处理器(`@ControllerAdvice`)可以捕获所有控制器的异常,实现统一的错误处理。 7. **MVC配置**: 在SpringMVC中,配置可以通过XML、Java配置类或者基于注解的配置完成。现代实践中,基于Java配置...
8. **异常处理**:SpringMVC提供了统一的异常处理机制,通过@ControllerAdvice和@ExceptionHandler可以全局处理特定类型的异常。 9. **文件上传与下载**:SpringMVC支持文件上传和下载功能,通过MultipartFile接口...
在出现异常时,SpringMVC 提供了统一的异常处理机制,可以定义全局的异常处理器,使得错误处理更加规范。 SpringMVC 的拦截器(Interceptor)机制允许开发者定义一系列在请求处理前后执行的逻辑,例如权限检查、...
SpringMVC允许我们定义全局的异常处理器,如@ControllerAdvice和@ExceptionHandler,以便统一处理可能出现的运行时异常,提高程序的健壮性。 拦截器(Interceptor)是SpringMVC中一种强大的工具,可以拦截请求并在...
SpringMVC提供了统一的异常处理机制,通过@ControllerAdvice和@ExceptionHandler注解,可以在全局范围内捕获和处理异常,提供统一的错误页面。 8. **视图解析** 视图解析器(ViewResolver)根据处理方法返回的...
9. **异常处理**:通过@ControllerAdvice和@ExceptionHandler,可以统一处理全局的异常,提高代码的健壮性。 10. **RESTful风格**:SpringMVC支持RESTful编程风格,可以通过@RequestMapping的path变量、HTTP动词...
7. **异常处理**:通过`@ExceptionHandler`注解,可以在控制器类中定义全局异常处理方法,统一处理运行时异常。 8. **拦截器**:SpringMVC允许自定义拦截器,通过`@InterceptorRegistry`和`HandlerInterceptor`接口...