今天上课讲到一个web应用时,随口提起异常、错误集中处理显示,自然地想到了web.xml配置文件中的<error-page>项,进而在一个servlet中应用了一下。如下:
web.xml加入如下配置
<error-page>
<exception-type>javax.servlet.ServletException</exception-type>
<location>/error.jsp</location>
</error-page>
servlet中加入异常抛出代码
String title=request.getParameter("title");
if(title==null || title.trim().equals(""))
throw new ServletException("请输入数据");
启动运行,页面一片空白!?怎么回事,难道没有进入error.jsp?仔细查了查看到控制台报的异常中有一处是EncodingFilter的代码位置,难道和过滤器有关?!于是屏蔽了过滤器再启动服务运行,一切OK了!果真和过滤器有关,翻开servlet-2.4手册查到一段说明:
The error page mechanism described does not intervene when errors occur
when invoked using the RequestDispatcher or filter.doFilter method. In this
way, a filter or servlet using the RequestDispatcher has the opportunity to handle
errors generated.
回头再认真看了看抛出的异常位置,是在过滤器的doFilter()方法调用处,恍然大悟,doFilter()调用被try-catch了,过滤器自己catch(ServletException)进行了处理,所以不会再转到error.jsp页面。最后想了个解决方法:
try {
filterChain.doFilter(request, response);
}catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
request.setAttribute("errMsg",sx.getMessage());
RequestDispatcher rd=request.getRequestDispatcher("/error.jsp");
try {
rd.forward(request, response);
} catch (Exception ex) {
filterConfig.getServletContext().log(ex.getMessage());
}
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
分享到:
相关推荐
MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化MongoDB疑难杂症分析及优化...
CorelDraw 疑难杂症速查手册---Coreldraw曲线形状如何等比例缩放? - AI┆矢量教程 - 平面教程学习
CorelDraw 疑难杂症速查手册---Coreldraw中如何抠图? - AI┆矢量教程 - 平面教程学习
在IT领域,系统疑难杂症处理是每个用户和专业技术人员都可能遇到的挑战。系统问题可能涵盖硬件故障、软件冲突、驱动程序问题、操作系统错误、病毒攻击、性能下降等多种情况。针对标题和描述中提到的“系统疑难杂症...
硬盘出现坏道则会影响数据读取,这时可以尝试使用磁盘检测工具进行修复,严重时需更换硬盘。 2. **内存问题**:内存条错误可能导致电脑启动困难或者运行不稳定。如果电脑频繁蓝屏,可以考虑检查内存条是否兼容,...
MySQL数据库疑难杂症排查 MySQL 数据库是一种关系型数据库管理系统,广泛应用于各种 Web 应用程序中。但是,在实际应用中,我们经常会遇到各种问题,例如数据库打开速度慢、查询效率低、服务器负载高等问题。因此...
Java作为世界上最流行的编程语言之一,其复杂性和深度使得开发者在实际开发过程中经常会遇到各种疑难杂症。这份"Java 疑难杂症_笔记.zip"压缩包中的笔记,显然是为了解决这些问题而编写的,旨在帮助Java开发者提高...
关于MySQL数据库疑难杂症排查,审明:本资源归原作者所有。
### MySQL疑难杂症排查知识点详解 #### 一、前言 在数据库运维过程中,经常会遇到各种MySQL相关的性能问题。这些问题可能会导致系统响应时间延长、用户体验下降等问题。因此,掌握有效的MySQL性能诊断方法对于DBA...
处理Excel疑难杂症时,可能会遇到以下几种情况: 1. **错误处理**:在使用COM对象时,可能会遇到文件已被其他进程占用、路径错误等问题。我们需要捕获并处理这些异常,确保程序的稳定运行。 2. **性能优化**:大量...
首先,文档标题《一网打尽sap各类用户疑难杂症》暗示了文档的主旨,是为了解决在使用SAP系统时可能遇到的各类问题。SAP是全球领先的企业资源规划(ERP)软件供应商,其产品被广泛应用于企业资源管理、客户关系管理、...
17个Docker常见疑难杂症解决方案汇总.docx
【电脑疑难杂症在线解答集锦】是一篇针对初级电脑用户的文章,主要涵盖了电脑使用过程中常见的问题和解决方案。这些问题包括: 1. **软盘引发启动错误**:当电脑开机时出现"Non-System disk or disk error replace ...
疑难杂症处理,修复工具包 PcMedik 汉化版 ========================= 此工具可修复您的电脑设定,通过对软硬件故障的派查,可有效地修正因上述问题对性能造成的负面影响,从而实现加速的目的。 日志部分已汉化,...
在电脑使用过程中,有时会遇到各种“疑难杂症”,如病毒感染、系统文件损坏、注册表出错等,这些问题可能导致电脑运行不正常或者功能受限。针对这种情况,开发了一款名为“电脑疑难杂症处理工具”的软件,它是一款...
clickhouse的疑难杂症
### Oracle EBS 设置实施疑难杂症笔记解析 #### 前言 本文旨在根据提供的“Oracle系统各类疑难杂症笔记”中的部分内容,整理并详细解释其中提到的关键知识点,帮助读者更好地理解和解决Oracle EBS(Enterprise ...