springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller——ExceptionHandler。
下面是使用第一种,使用HandlerExceptionResolver接口的实现类SimpleMappingExceptionResolver,通过DispatcherServlet中指定处理异常的页面可以实现把异常信息集中显示在页面中,代码示例
<!--省略定义视图及路劲的代码-->
<!-- 定义处理异常页面 -->
<bean id="exceptionResolver"
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<!-- 设置异常映射 -->
<property name="exceptionMappings">
<props>
<prop key="java.sql.SQLException">outException</prop>
<prop key="java.sql.IOException">outException</prop>
</props>
</property>
</bean>
上面的代码说明只要发生SQLException异常或者IOException异常,就跳到/WEB-INF/jsp/outException.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>抛出异常页面</title>
</head>
<body>
<%
Exception ex=(Exception)request.getAttribute("Exception");
%>
<h2>Exception:<%=ex.getMessage();%></h2>
</body>
</html>