springMVC3学习(八)--全球异常处理
在springMVC在配置文件:
<bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="defaultErrorView">
<value>/error</value><!-- 表示当抛出异常但没有在exceptionMappings里面找到相应的异常时 返回名叫error的视图-->
</property>
<property name="defaultStatusCode" value="404"/><!-- 表示在发生异常时默认的HttpServletResponse的返回码,默认是404-->
<property name="statusCodes"><!-- 定义在发生异常时视图跟返回码的相应关系 -->
<props>
<!-- 表示在发生NumberFormatException时返回视图number,然后这里定义发生异常时视图number相应的HttpServletResponse的返回码是500 -->
<prop key="number">500</prop>
<prop key="null">503</prop>
</props>
</property>
<property name="exceptionMappings">
<props>
<prop key="NumberFormatException">number</prop><!-- 表示当抛出NumberFormatException的时候就返回名叫number的视图-->
<prop key="NullPointerException">null</prop>
</props>
</property>
</bean>
这里基本的类是SimpleMappingExceptionResolver类,和他的父类AbstractHandlerExceptionResolver类。
你也能够实现HandlerExceptionResolver接口,写一个自己的异常处理程序.
通过SimpleMappingExceptionResolver我们能够将不同的异常映射到不同的jsp页面(通过exceptionMappings属性的配置)。
同一时候我们也能够为全部的异常指定一个默认的异常提示页面(通过defaultErrorView属性的配置),
假设所抛出的异常在exceptionMappings中没有相应的映射,则Spring将用此默认配置显示异常信息。
Login.java測试类
import java.io.File;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class Login {
@RequestMapping("/null")
public void testNullPointerException() {
File file = null;
// 空指针异常,返回定义在SpringMVC配置文件里的null视图
System.out.println(file.getName());
} @RequestMapping("/number")
public void testNumberFormatException() {
// NumberFormatException。返回定义在SpringMVC配置文件里的number视图
Integer.parseInt("abc");
} @RequestMapping("/default")
public void testDefaultException() {
if (1 == 1)
// 因为该异常类型在SpringMVC的配置文件里没有指定,所以就会返回默认的exception视图
throw new RuntimeException("Error!");
}
}
显示错误的jsp页面(已error.jsp为例)
<body>
<%
Exception e = (Exception)request.getAttribute("exception");
out.print(e.getMessage());
%>
</body>
測试URL: http://localhost:8080/spring_exception/null
http://localhost:8080/spring_exception/number
http://localhost:8080/spring_exception/default
springMVC3学习(八)--全球异常处理的更多相关文章
- springMVC3学习(八)--全局的异常处理
在springMVC的配置文件中: <bean id="exceptionResolver" class="org.springframework.web.serv ...
- Python Tutorial 学习(八)--Errors and Exceptions
Python Tutorial 学习(八)--Errors and Exceptions恢复 Errors and Exceptions 错误与异常 此前,我们还没有开始着眼于错误信息.不过如果你是一 ...
- springMVC3学习(三)--handlerMapping和handlerAdapter
基本结构和 springMVC3学习(一)--框架搭建 差不多,这里不再用Annotation注解的方式 以下只说明需要修改的部分: 1.在Spring配置文件中配置HandlerMapping.Ha ...
- WCF 学习笔记之异常处理
WCF 学习笔记之异常处理 1:WCF异常在配置文件 <configuration> <system.serviceModel> <behaviors> <s ...
- springMVC3学习--ModelAndView对象(转)
原文链接:springMVC3学习(二)--ModelAndView对象 当控制器处理完请求时,通常会将包含视图名称或视图对象以及一些模型属性的ModelAndView对象返回到DispatcherS ...
- SVG 学习<八> SVG的路径——path(2)贝塞尔曲线命令、光滑贝塞尔曲线命令
目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- struts2官方 中文教程 系列八:异常处理
在本教程中,我们将探讨如何启用Struts 2框架处理web应用程序生成的任何未捕获的异常.Struts 2提供了健壮的异常处理,包括能够自动记录任何未捕获的异常,并将用户重定向到错误web页面. 贴 ...
- SpringBoot源码学习系列之异常处理自动配置
SpringBoot源码学习系列之异常处理自动配置 1.源码学习 先给个SpringBoot中的异常例子,假如访问一个错误链接,让其返回404页面 在浏览器访问: 而在其它的客户端软件,比如postm ...
随机推荐
- HIVE编程指南之HiveQL的学习笔记1
// HiveQLa) 数据定义语言1 数据库表的一个目录或命名空间,如果用户没有指定数据库的话,那么将会使用默认的数据库default-----创建数据库CREATE DATABASE guoyon ...
- 在windows下创建.gitignore文件
1.使用另存为的方式 2.在win7下,文件名输入 ”.gitignore.“ http://hbiao68.iteye.com/blog/2055496 http://lyhopq.github ...
- Mozilla对HTML5规范支持列表
翻译自Mozilla Developer Network 在2009年10月28日,HTML 5规范草稿在网络超文本应用技术工作组(WHATWG)中基本出于最后定稿阶段,这意味着HTML 5标准基本定 ...
- underscore demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 【POJ1743】 Musical Theme (二分+后缀数组)
Musical Theme Description A musical melody is represented as a sequence of N (1<=N<=20000)note ...
- 如何禁止anonymous用户访问nexus
nexus在默认情况下是允许anonymous用户浏览仓库,并下载仓库中的jar包的,如果我们搭建的私服是有公网IP的,必须要进行设置,使得anonymous用户的权限被禁用.操作步骤如下: 使用管理 ...
- android学习——ADT的离线安装
前一篇讲解了ADT的在线安装,不过有的时候在线在线安装的速度很慢.所以今天学习一下ADT的离线安装: 首先 下载与SDK相对应的ADT(如果SDK是最新版的就下最新版ADT否则就把SDK更新到最新版以 ...
- applicationContext.xml 配置
Hibernate SQL方言 (hibernate.dialect) 数据库 hibernate方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 ...
- HDU-1518 Square(DFS)
Square Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submi ...
- HDU-1874 畅通工程续 (最短路径启蒙题)
hdu 1874比较基础,拿来练各种刚学会的算法比较好,可以避免好多陷阱,典型的最短路模板题 畅通工程续 Time Limit: 3000/1000 MS (Java/Others) Memor ...