`
sanyecao2314
  • 浏览: 131237 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

springMVC对全局异常的统一处理

    博客分类:
  • SSH
阅读更多

使用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;
	}
	
}

 

1
4
分享到:
评论
2 楼 sanyecao2314 2016-05-30  
cgs1999 写道
这只是其中的一种处理方式,更全面的异常处理和实例,可以查看我的博文《使用Spring MVC统一异常处理实战》
http://cgs1999.iteye.com/blog/1547197

嗯,你这个整理的比较全面.我这是记录了我在项目中的处理方式.
1 楼 cgs1999 2016-05-27  
这只是其中的一种处理方式,更全面的异常处理和实例,可以查看我的博文《使用Spring MVC统一异常处理实战》
http://cgs1999.iteye.com/blog/1547197

相关推荐

    springmvc返回json的全局异常统一处理demo

    springmvc返回json的全局异常统一处理demo,有问题可以留言。

    Springboot全局异常处理demo.zip

    Springboot全局异常处理demo 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的...

    spingmvc+mybatis+统一异常处理机制

    采用springmvc+mybatis,搭建部分大致跟网上其他资料差不多,唯一不同的加入了统一错误处理,为了方便开发人员开发,所有错误码用一张表存在数据库中,然后由应用将整表缓存,缓存采用的spring自带的cache,开发中...

    Springmvc+JPA(Hibernate4)+redis+activemq

    绝对的物超所值, spring,springmvc,hibernate,jpa2,ehcache,activemq,redis,全局异常拦截统一处理,附件上传下载,史上最全的代码基础框架集成等。

    基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统

    对各种不同异常进行了全局统一处理 使用lombok简化java代码,让源码更简洁,可读性高 mybatis未进行二次封装,原滋原味,简单sql采用注解,复杂sql采用Mapper.xml配置 使用了layui的弹出层、菜单、文件上传、富...

    multilingual.zip

    本项目使用了SpringBoot集成SSM,为所有Spring开发者更快的入门, 开箱即用,提供各种默认...SpringMVC是控制层 ,内置了全局异常捕捉功能,出现异常时可统一进行处理, 在实体类方面使用的是lombok简化冗余代码。

    Crm客户关系管理系统

    ● 通过SpringMvc全局异常控制实现系统统一异常处理,其中包括页面信息异常展示与Json异常数据控制; ● 采用Mybatis和二次BaseDao封装完成持久层基本crud操作,提高系统开发效率; ● 通过AOP、自定义注解和...

    基于SSM框架的java在线考试系统,优秀毕业设计系统,小白必看!

    主要功能: ... ... 根据课程类型随机抽取数据库中的考试题库并显示试题 在考试过程中会有计时功能,时间到了之后自动交卷 在考生提交试卷后实现自动阅卷功能,并...使用SpringMVC提供的全局异常处理器进行统一异常处理。

    基于SSM框架开发的一款在线考试系统+源代码+文档说明

    OnlineExamSystem 基于SSM框架开发的一款在线考试系统 (如果觉得有用的,欢迎Star,感谢~) 功能 ... ... 根据课程类型随机抽取数据库中的考试题库并显示试题 ...使用SpringMVC提供的全局异常处理器进行统一异常处理。

    基于Java web的SSM框架的在线考试系统设计与实现(源码+数据库).zip

    # OnlineExamSystem 基于SSM框架开发的一款在线考试系统 项目简介: 前端框架使用的主要是easyui和jquery 后端框架使用的主要是Spring、SpringMVC、...使用SpringMVC提供的全局异常处理器进行统一异常处理。

    Spring+Spring mvc+Hibernate+Bootstrap、企业级员工信息管理系统

    01. 采用后台及前台的 Spring + ... 通过自定义处理器 ExceptionIntercept 实现 Spring mvc的全局异常捕获 10. 系统中包含了企业中采用的开发工具类的集合 11. AbstractDao 父类实现了Dao中针对单个对象的常用操作

    ssm-maven-model

    SSM框架整合(Spring,SpringMVC,MyBatis)1.I18国际化.2.404异常统一跳转3.全局统一异常处理.4.JSR303(Hibernate-validate校验)

    代码生成器-可自定义模版-guns

    系统地讲解了如何构建一个日常生产环境...10. 页面统一的js key-value单例模式写法,每个页面生成一个唯一的全局变量,提高js的利用效率,并且有效防止多个人员开发引起的函数名/类名冲突,并且可以更好地去维护代码

    SpringBoot新手学习手册

    6.2使用AOP统一处理Web请求日志 32 6.3Spring Boot集成lombok让代码更简洁 33 七、 缓存支持 35 7.1注解配置与EhCache使用 35 7.2使用Redis集成缓存 37 八、 热部署 37 8.1 什么是热部署 37 8.2 项目演示案例...

    java微信公众号MVC开发框架

    提供统一的异常处理机制 提供access_token自动更新机制 请求消息组装 灵活的响应消息类型 二、快速入门 本章教材提供一个最简单的例子,用户在微信公众号发一条foo的文本请求消息,公众号响应一条bar的文本响应消息...

Global site tag (gtag.js) - Google Analytics