SpringMVC笔记之HandlerExceptionResolver异常处理
来源:互联网 发布:电脑上下什么软件 编辑:程序博客网 时间:2024/05/16 08:06
转载请标明出处:http://write.blog.csdn.net/postedit/8537938
Spring MVC的确很强大,在每一个你想的到和想不到的地方都会留下钩子,来插入自定义的实现,透明替换默认实现,我想用到HandlerExceptionResolver这个东东来处理异常
首先我们实现 HandlerExceptionResolver
package com.qunar.advertisement.exception;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import org.springframework.web.servlet.HandlerExceptionResolver;import org.springframework.web.servlet.ModelAndView;import com.qunar.advertisement.utils.StringPrintWriter;public class MyExceptionResolver implements HandlerExceptionResolver{ private static Logger logger = Logger.getLogger(MyExceptionResolver.class); @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { logger.error("Catch Exception: ",ex);//把漏网的异常信息记入日志 Map<String,Object> map = new HashMap<String,Object>(); StringPrintWriter strintPrintWriter = new StringPrintWriter(); ex.printStackTrace(strintPrintWriter); map.put("errorMsg", strintPrintWriter.getString());//将错误信息传递给view return new ModelAndView("error",map); }}
我们还需要一个辅助的类StringPrintWriter,因为ex.printStackTrace参数只有个PrintWriter类型的,java自带的StringWriter
不可用,所以我们需要自己实现一个装饰器的StringPrintWriter。
package com.qunar.advertisement.utils;import java.io.PrintWriter;import java.io.StringWriter;public class StringPrintWriter extends PrintWriter{ public StringPrintWriter(){ super(new StringWriter()); } public StringPrintWriter(int initialSize) { super(new StringWriter(initialSize)); } public String getString() { flush(); return ((StringWriter) this.out).toString(); } @Override public String toString() { return getString(); }}
我们只需要在xml中配置一下就可以了:
<bean class="com.qunar.advertisement.exception.MyExceptionResolver"></bean>
我们在错误页面掩藏区域显示错误信息:
我们在错误页面隐藏区域显示错误信息:我们在错误页面隐藏区域显示错误信息:我们在错误页面隐藏区域显示错误信息:我们在错误页面隐藏区域显示错误信息:
<div style="display:none;"> <c:out value="${errorMsg}"></c:out></div>
- SpringMVC笔记之HandlerExceptionResolver异常处理
- SpringMVC 学习笔记(十) 异常处理HandlerExceptionResolver
- SpringMVC 异常处理HandlerExceptionResolver 笔记(八)
- SpringMVC 异常处理 - HandlerExceptionResolver
- 14.SpringMVC 异常处理 - HandlerExceptionResolver
- springmvc 统一异常处理 实现 HandlerExceptionResolver接口
- 利用HandlerExceptionResolver对SpringMVC进行统一异常处理
- Spring 异常处理HandlerExceptionResolver
- Spring 异常处理HandlerExceptionResolver
- Spring 异常处理HandlerExceptionResolver
- 自定义异常处理 HandlerExceptionResolver
- SpringMvc之HandlerExceptionResolver
- springmvc 之HandlerExceptionResolver
- springMvc 自定义错误处理--HandlerExceptionResolver
- SpringMVC笔记之HandlerInterceptorAdapter异常处理
- springMVC源码分析--异常处理机制HandlerExceptionResolver简单示例(一)
- springMVC源码分析--异常处理机制HandlerExceptionResolver执行原理(二)
- springMVC之异常处理
- Ofbiz: 自定义表单校验
- [易飞]报表字段小数位数设置
- 网络流专题 1019
- 如何让websphere JVM 参数设置(支持中文)
- USB mass storage协议
- SpringMVC笔记之HandlerExceptionResolver异常处理
- Android中深入研究Service
- latex学习第一篇
- 指针和引用的区别
- 字符串统计
- android粗略获得程序运行时间的方法
- C++的类中,那些函数不能用virtual修饰?
- 美的代码
- IOCP 完成端口 是性能最好的一种I/O模型