- 浏览: 128852 次
- 性别:
- 来自: 杭州
-
文章分类
- 全部博客 (145)
- java (145)
- Java网络编程 (1)
- SWT 文本框Text通过GC重绘改变边框颜色 (1)
- tomcat部署web工程的两种方法 (1)
- JAX-RS 从傻逼到牛叉 1:REST 基础知识 (1)
- FreyjaJdbcTemplate 大致上完工了,想请人重构。。 (1)
- 开始认识自己 (1)
- 设计模式-Abstract Factory 模式 (1)
- 数据库中主键的设计原则 (1)
- JNI中jstring类型与c语言中的字符串的转换 (1)
- mac环境变量 (1)
- STC单片机ADC转换的例子 (1)
- myeclipse 8下安装Ibator . (1)
- OSGI与Android结合 (1)
- CSDN BLOG EXPERT (1)
- Java中网络操作的开源库CommonsNet (1)
- Apache License Version 2.0 英文内容及中文翻译 (1)
- JTest (1)
- GeoCon 用C#编写的开源的地理信息数据转换工具 (1)
- ERP简易教程 (1)
- 提高站点在搜索引擎上的排名 (1)
- Wifi (1)
- 腾讯Q+开放平台,相信又是一次成功的模仿 (1)
- C#坦克大战网络版代码 (1)
- Problem16 (1)
- Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较) (1)
- ava框架数据库连接池比较(c3p0 (1)
- dbcp和proxool)bonecp (1)
- 继续向成熟男人靠拢 (1)
- Qt4.7中 默认的构造函数 (1)
- xml CDATA (1)
- 只针对中英文混合分词的中文分词器 (1)
- 典型相关分析及其适用范围和spss操作(转) (1)
- llvm (1)
- java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access (1)
最新评论
-
xm3530:
什么鬼?都没法看,发出来干嘛
Android中利用App实现消息推送机制的代码实例 -
lvtenglongxiaohei:
太经典了!
学习一下!
ERP简易教程 -
lvtenglongxiaohei:
<br> 一天中午,丈 ...
ERP简易教程 -
hzw2312:
加油~~~!!!
开始认识自己 -
123048591:
显示乱码
tomcat部署web工程的两种方法
spring3.0中对异常的处理方法一共提供了两种:一种是使用<span style="color: #0000ff;">handlerexceptionresolver</span>接口;一种是在controller类内部使用<span style="color: #0000ff;">@exceptionhandler</span>注解。使用第一种方式可以实现全局异常控制,并且spring已经提供了一个默认的实现类simplemappingexceptionresolver;使用第二种方式可以在controller内部实现更个性化点异常处理方式,灵活性更高。一般来说,项目中只需要采用第一种方式就可以了,每个人都自己定义异常的展现方式,太过个性了,不统一。
从目前的调查结果看,这两种方式不能共存,不知道未来的版本是否能将他们合二为一,这样才能灵活配置。
<h3>基于handlerexceptionresolver接口的异常处理:</h3>使用这种方式只需要实现resolveexception方法,该方法返回一个modelandview对象,在方法内部对异常的类型进行判断,然后常见合适的modelandview对象,如果该方法返回了null,则spring会继续寻找其他的实现了handlerexceptionresolver接口的bean。换句话说,spring会搜索所有注册在其环境中的实现了handlerexceptionresolver接口的bean,逐个执行,直到返回了一个modelandview对象。
示例代码:
示例代码:
以上配置基于spring3.05进行设置,参考其《reference documentation》
从目前的调查结果看,这两种方式不能共存,不知道未来的版本是否能将他们合二为一,这样才能灵活配置。
<h3>基于handlerexceptionresolver接口的异常处理:</h3>使用这种方式只需要实现resolveexception方法,该方法返回一个modelandview对象,在方法内部对异常的类型进行判断,然后常见合适的modelandview对象,如果该方法返回了null,则spring会继续寻找其他的实现了handlerexceptionresolver接口的bean。换句话说,spring会搜索所有注册在其环境中的实现了handlerexceptionresolver接口的bean,逐个执行,直到返回了一个modelandview对象。
示例代码:
/** * 基于handlerexceptionresolver接口的异常处理类 * @author zywang 2011-4-2 */public class customexceptionhandler implements handlerexceptionresolver { @override public modelandview resolveexception(httpservletrequest request, httpservletresponse response, object object, exception exception) { if(exception instanceof ioexception){ return new modelandview("ioexp"); }else if(exception instanceof sqlexception){ return new modelandview("sqlexp"); } return null; }}这个类必须声明到spring中去,让spring管理它,你可以使用@component标签,也可以使用<bean/>节点。为了简单的进行异常处理,spring提供了simplemappingexceptionresolver类,该类实现了handlerexceptionresolver接口,需要使用时只需要使用<bean/>节点进行声明即可,示例如下:
<bean class="org.springframework.web.servlet.handler.simplemappingexceptionresolver"> <!-- 定义默认的异常处理页面,当该异常类型的注册时使用 --> <property name="defaulterrorview" value="error"></property> <!-- 定义异常处理页面用来获取异常信息的变量名,默认名为exception --> <property name="exceptionattribute" value="ex"></property> <!-- 定义需要特殊处理的异常,用类名或完全路径名作为key,异常也页名作为值 --> <property name="exceptionmappings"> <props> <prop key="ioexception">error/ioexp</prop> <prop key="java.sql.sqlexception">error/sqlexp</prop> </props> </property> </bean><h3>基于@exceptionhandler的异常处理:</h3>该方法需要定义在controller内部,然后创建一个方法并用@exceptionhandler注解来修饰用来处理异常,这个方法基本和@requestmapping修饰的方法差不多,只是可以多一个类型为exception的参数,@exceptionhandler中可以添加一个或多个异常的类型,如果为空的话则认为可以触发所有的异常类型错误。
示例代码:
/** * 基于@exceptionhandler异常处理 * @author zywang 2011-4-2 */@controllerpublic class exceptionhandlercontroller { @exceptionhandler(value={ioexception.class,sqlexception.class}) public string exp(exception ex,httpservletrequest request) { request.setattribute("ex", ex); return "/error.jsp"; }}
以上配置基于spring3.05进行设置,参考其《reference documentation》
发表评论
-
java连接数据库Oracle|DB2|Sql Server|Sybase|Informix|MySQL||PostgreSQL|access
2012-02-08 14:17 1077<div>Java数据库连接(JDBC)由 ... -
llvm
2012-02-07 16:29 890llvm ... -
典型相关分析及其适用范围和spss操作(转)
2012-02-07 15:43 1592看文章《科学学研 ... -
只针对中英文混合分词的中文分词器
2012-02-03 10:39 1029该版本说明 1、只针对中英文混合分词 需要一些中文和 ... -
xml CDATA
2012-02-03 08:45 1218<h2 style="font-si ... -
Qt4.7中 默认的构造函数
2012-02-01 09:14 1099<p><span style=&qu ... -
继续向成熟男人靠拢
2012-01-11 17:04 889转自徒儿的人人。 ... -
ava框架数据库连接池比较(c3p0,dbcp和proxool)bonecp
2012-01-11 14:13 1149<h1 style="text ... -
Ajax 应该变成 Ajaj (关于JSON 与 XML 的比较)
2011-12-28 15:23 973<span style="font- ... -
Problem16
2011-12-28 12:53 681package com.shui.mu.yao.io. ... -
C#坦克大战网络版代码
2011-12-20 13:09 1006简单C#坦克大战网络版代码 写完单机版 http ... -
腾讯Q+开放平台,相信又是一次成功的模仿
2011-12-20 10:44 868今天看到两则新 ... -
Wifi
2011-12-19 13:14 1098. Confirm if Wifi is On ... -
提高站点在搜索引擎上的排名
2011-12-19 12:04 949对于拥有网站的各位站长来说,都希望自己的站点能够在各种 ... -
ERP简易教程
2011-12-16 16:47 935注明:下面的帖子 ... -
GeoCon 用C#编写的开源的地理信息数据转换工具
2011-12-14 12:29 966<p class="MsoNorma ... -
JTest
2011-12-14 09:00 1038接到parasoft公司一位先生打来的电话,说下个月第 ... -
Apache License Version 2.0 英文内容及中文翻译
2011-12-13 12:59 2371</span> <p class= ... -
Java中网络操作的开源库CommonsNet
2011-12-13 12:39 830<p class="MsoNorma ... -
CSDN BLOG EXPERT
2011-12-13 08:59 1106<img src="http://p. ...
相关推荐
15.7.3 异常处理 15.8 小结 第5篇 测试及实战 第16章 实战型单元测试 16.1 单元测试概述 16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2 JUnit 4快速进阶 ...
15.7.3 异常处理 15.8 小结 第5篇 测试及实战 第16章 实战型单元测试 16.1 单元测试概述 16.1.1 为什么需要单元测试 16.1.2 单元测试之误解 16.1.3 单元测试之困境 16.1.4 单元测试基本概念 16.2 JUnit 4快速进阶 ...
通常,我们创建一个DAO类继承自`HibernateDaoSupport`,这个类已经包含了对HibernateSession的管理,如事务处理和异常处理。通过使用`HibernateTemplate`,可以简化数据库操作,避免直接操作Session带来的复杂性。 ...
3. **异常处理**: - 在Struts中配置全局异常处理器,统一处理运行时异常。 - 使用Spring的`@ExceptionHandler`注解处理控制器中的异常。 4. **性能优化**: - 对于Hibernate,合理配置缓存策略,减少数据库访问...
5. **错误处理**:Servlet可以通过`error-page`元素在web.xml中配置错误处理器,或者在Servlet中捕获并处理异常,提供统一的错误反馈。 综上,这个学习文档提供了深入理解Servlet高级特性和应用场景的机会,无论是...