Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Struts中的异常处理机制

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Struts中的异常处理机制

 

Struts中的异常处理,必须利用Struts内置的机制(只针对actionexecute)和标准的servlet机制相结合,才能完美的实现。

 

1.         首先通过在配置文件中定义全局异常处理或者特定于action的异常处理句柄

 

2.         然后在process执行actionexcute遇到异常就读取其异常处理配置,并生成相应的ExceptionConfig对象。若ExceptionConfignull(即此action没有配置异常处理),则直接抛出IoException或者ServletException到总控的dopostdoget,由容器负责处理(此时将会用到在web.xml中定义的异常处理对象)。

 

3.         根据ExceptionConfig生成ExceptionHandler,然后执行其execute方法。在execute中将产生actionerrors(包含由配置生成的actionerror列表)对象,并放到相应的scope(默认为request)(Globals.EXCEPTION_KEY为健),然后转到错误处理叶面,以<html:error>显示。

 

4.         form bean 的验证方法中产生的action errors也是以Globals.EXCEPTION_KEY为健,但是存在request中。

 

5.         struts的异常处理利用了其内置的资源文件和国际化机制。由于生成的actionerror是配置exception时的keyexception.getMessage()键值对,所以必须在message中放入足够的信息,我们无法在发生异常时,得到异常本身的引用,这或许是struts 的不足之处!

 

6.        在扩展struts总控时发现process()方法抛出的是IOException, ServletException,这不是明摆着不让我们扩展此方法吗?扩展时有新的异常难道都得包装成IOException, ServletException吗?不明白作者的深意?




相关文章

相关软件