首页 > 代码库 > 2017.3.31 spring mvc教程(四)全局的异常处理
2017.3.31 spring mvc教程(四)全局的异常处理
学习的博客:http://elf8848.iteye.com/blog/875830/
我项目中所用的版本:4.2.0。博客的时间比较早,11年的,学习的是Spring3 MVC。不知道版本上有没有变化比较大的功能。
spring mvc教程(四)全局的异常处理
1.SimpleMappingExceptionResolver
1 SimpleMappingExceptionResolver 的父类 : AbstractHandlerExceptionResolver 2 通过SimpleMappingExceptionResolver,将不同的异常映射到不同的jsp页(通过exceptionMappings属性的配置)。 3 如果所抛出的异常在exceptionMappings中没有对应的映射,则Spring将显示默认异常页。 通过defaultErrorView属性,配置默认异常页。 4 也可以自己实现HandlerExceptionResolver接口,用来处理异常。
注意:这里配置的异常显示界面均仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定。如/error/error表示/error/error.js。
1 <!-- 总错误处理--> 2 <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"> 3 <property name="defaultErrorView"> 4 <value>/error/error</value> 5 </property> 6 <property name="defaultStatusCode"> 7 <value>500</value> 8 </property> 9 <property name="warnLogCategory"> 10 <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value> 11 </property> 12 </bean>
显示错误的jsp文件:
"exception"是key,在SimpleMappingExceptionResolver类中默认指定的。可以通过配置文件修改这个值。
1 <%@ page language="java" contentType="text/html; charset=GBK" 2 pageEncoding="GBK"%> 3 <%@ page import="java.lang.Exception"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=GBK"> 8 <title>错误页面</title> 9 </head> 10 <body> 11 <h1>出错了</h1> 12 <% 13 Exception e = (Exception)request.getAttribute("exception"); 14 out.print(e.getMessage()); 15 %> 16 </body> 17 </html>
2.将全局异常记录到日志中
(1)warnLogCategory属性
1 <property name="warnLogCategory">
2 <value>org.springframework.web.servlet.handler.SimpleMappingExceptionResolver</value> 3 </property>
(2)log4j的配置文件
加入(全限定名):log4j.logger.org.springframework.web.servlet.handler.SimpleMappingExceptionResolver=WARN。这样即使log4j的根日志级别是ERROR,也一定会被收录。
2017.3.31 spring mvc教程(四)全局的异常处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。