JSP培训(13)——异常处理

本文主要描述JSP代码中的异常,关于Java代码中的异常,可以参考另一篇文章:http://blog.youkuaiyun.com/JavaEETeacher/archive/2007/03/19/1533754.aspx

要对JSP程序可能产生的异常进行处理,可以从多个角度完成:可以针对特定的代码,可以针对特定的文件,也可以针对错误的类型。
如果针对特定的代码,可以使用标准标签库中的核心标签库中的<c:catch>标签。
如果针对特定的文件,可以使用JSP的page指令中的isErrorPage属性和errorPage属性完成。
如果针对特定类型的错误,可以使用web.xml配置文件。
1 使用<c:catch>进行异常处理
<c:catch>标签可以针对特定的一行或者多行代码。<c:catch>标签的基本格式如下:
<c:catch [var="存储异常信息的变量"]>
其他的JSP代码,包括各种标签
</c:catch>
用法与Java代码中的try语句非常类似,把可能产生异常的代码放在<c:catch>开始标志和结束标志之间。这样,当这些代码产生异常的时候,JSP容器会对异常进行处理。
下面是一个对界面异常进行处理的例子:
<c:catch>
<c:out value="${user.address}"/>
</c:catch>
如果希望产生异常之后,把异常信息保存起来供其它的代码使用,可以使用var属性指定一个变量。
下面的代码会在异常产生的时候把异常信息存储在exceptionInfo变量中:
<c:catch var="exceptionInfo">
<c:out value="${user.address}"/>
</c:catch>
如果需要可以在后面输出异常的信息:
<c:if test="${exceptionInfo != null}">
运行时候产生异常,异常信息为:${exceptionInfo.message}
</c:if>
2 为页面指定异常处理文件
如果不想针对每一段代码都进行异常处理,可以以页面作为单位进行异常处理,可以指定当前页面运行过程中产生错误的时候,由特定的页面对异常进行处理。
采用这种异常处理方式,需要编写一个专门的异常处理文件,然后在每个需要进行异常处理的文件中进行设置。
编写异常处理文件
异常处理文件中需要使用page指令的isErrorPage属性,格式如下:
<%@ page isErrorPage="true"%>
如果在页面上进行了这样的设置,页面就具有了一项特殊的功能,能够访问异常对象exception。exception是JSP的内部对象,当页面在运行过程中产生异常的时候,会抛出异常对象exception,该对象包含了异常信息。
下面是一个异常处理文件:
文件名:errorPage.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page isErrorPage="true"%>
页面产生异常,异常信息如下:${exception.message}
为页面指定异常处理文件
要想让页面产生异常的时候,由专门的异常处理文件对异常进行处理,需要在该页面中使用page指令的errorPage指定专门的异常处理界面,格式如下:
<%@ page errorPage="异常处理文件"%>
假设要设置前面编写的errorPage.jsp页面为当前页面的异常处理文件,可以使用下面的代码:
<%@ page errorPage="errorPage.jsp"%>
3 通过web.xml进行配置
如果不想为每个页面设置异常处理文件,可以为同一种类型的异常指定统一的异常处理文件。还有一些异常的处理是没有办法通过页面设置来完成的,例如用户输入了网站中的一个不存在文件,这时候应该告诉用户文件不存在,但是这种异常是没有办法通过在页面设置来解决的。
要想为每种类型的异常指定一个异常处理文件,可以通过web.xml进行配置。在web.xml中进行配置可以根据错误类型配置,例如NullPointException、IOException等,也可以根据错误编码配置。
常见的异常编码如下:
403错误:文件被禁止访问;
404错误:文件没有找到;
500错误:文件在运行过程中发生未知错误。
根据异常类型进行配置,可以使用下面的代码:
<error-page>
< exception-type >java.lang.NullPointerException</exception-type>
<location>/nullpointer.jsp</location>
</error-page>
根据异常编码进行配置,可以使用下面的代码:
<error-page>
<error-code>401</error-code>
<location>/401.jsp</location>
</error-page>

参考教材:《Java Web程序设计基础教程》

test exception 测试 android exception 在android中 try catch 的作用 : 只可以捕获checkException。如果是Error或者是 RuntimeException, 即使catch住了,则程序仍然会崩溃。 立即下载

相关推荐

JSP 异常处理

JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方。JSP代码中通常有以下几类异常: 检查型异常:检查型异常就是一个典型的用户错误或者一个程序员无法预见的错误。举例来说,如果一个文件将要被打开,但是无法找到这个文件,则一个异常被抛出。这些异常不能在编译期被简单地忽略。 运行时异常:一个运行时异常可能已经被程序员避免,这种异常在编译期将会被忽略。 错误:错误不是异常,但问题是它超出了用户或者程序员的控制范围。错误通常会在代码中被忽略,您几乎不能拿它怎么样。举例来说,栈溢出错误。这些错误都会在编译期被忽略。 本节将会给出几个简单而优雅的方式

jsp自定义标签

1、如果Web应用中用到了自定义JSP标签,则必须在web.xml文件中加入元素,它用于声明所引用的标签所在的标签库 /sometaglib /WEB-INF/someTLD.tld 2、设定Tag Library的惟一标示符,在Web应用中将根据它来引用Tag Libray; 3、指定和Tag Library对应的TLD文件的位置; 4、在JSP文件中需要加入指令来声明对标签库的

limengmeng9006的专栏 361

【Konva】解决图形加入group后无法获取到绝对坐标,以及group内绘制新图形坐标偏移的问题

解决konva绘图开发时“图形加入group后坐标不会变动,无法获取到绝对坐标”的问题

近10年前端开发工作经验,为你分享日常经验所得 1500

JSP中的异常处理

JSP中的异常处理         一、try/catch/finally/throws/throw          // 在局部代码里处理异常。         二、errorPage, isErrorPage            // 在整个页面处理异常。         1.errorPage         形如:            表示:需要错误处理的页面    

小慕 1462

APM32F103 配置CAN

摘要: 本文介绍了基于APM32F103RCT6的CAN通信实现,包含GPIO初始化、CAN配置、数据收发功能。通过配置CAN1的GPIO引脚(PB8/PB9)和波特率(500Kbps),实现标准帧格式的数据传输。发送函数支持8字节数据包,接收函数通过FIFO0处理消息,并根据接收ID触发响应发送(如ID 0x1回复0x2)。代码还包含错误状态检测(如总线关闭处理)和过滤器配置(32位掩码模式)。整体实现了基础的CAN通信与错误管理功能。

weixin_43676660的博客 863

伪距单点定位算法原理以及利用最小二乘法计算实例

即该公式:建立下列代价函数满足最佳估值的条件为:即:可解得未知参数 X 的最佳估值由于每个可见卫星观测量的精度可能不一样,这时,需要对不同观测量赋予一个权重系数,称为加权。

qq_43381998的博客 1万+

常见jsp出现的页面错误(404,500等)与捕捉办法

<br />今天被一哥们问到了这个问题 顿时觉得很囧 以前只知道404 ,500等几个错误<br />刚才到网上找了下 常用的有这些<br />200 ->请求已完成 记得在ajax中的status状态值也是用200来判断发送的请求是否完成<br />400 ->400 错误请求,原因可能是请求中存在异常字符或者是请求语法有错误等等引起<br />404 ->大名鼎鼎,找不到指定资源或者文件等, 想servlet的mapping配置错误 或者像struts的action配置错误都有可能引起该错误<br />

2145

ElementUI时间选择器(el-date-picker)输入格式的智能转换与动态适配

本文深入探讨了ElementUI时间选择器(el-date-picker)在处理用户自由格式输入时的痛点,并提出了基于Vue自定义指令的智能转换解决方案。该方案通过核心解析函数自动识别如“20231225”等连续数字输入,将其动态转换为标准时间格式,并确保与表单验证兼容,有效提升了后台管理系统的输入效率和用户体验。

weixin_29016833的博客 294

JSP-使用JSTL-out、set、remove、catch捕捉异常、条件判断、流程控制、字符截取

使用JSTL在MyEclipse2014中,使用JSTL只要在文件开始加上一句 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>prefix表示前缀,用于区分其他标签,可以自定义前缀。 使用JSTL可以进一步减少Scriptlet的使用。使前端页面更加简洁输出语句out<c:out value=”value” defa

Twilight's Blog 1314

手把手教你如何在应用宝的Android模拟器安装第三方应用方法

通过上述步骤,你就能在腾讯应用宝模拟器中安装并运行本地的第三方APK应用了。虽然稍显繁琐,但操作起来并不复杂,只要按照步骤一步步做,就能顺利完成。希望这篇文章能帮助到遇到类似问题的你!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7217

【Ubuntu】RK3576 Linux 6.10 Ubuntu 22.04 系统中 HUSB311 Type-C 转 DP 显示输出与 Device/OTG 模式切换配置详解

本文详细介绍了在Rockchip RK3576开发板(Linux Kernel 6.10+Ubuntu 22.04)上配置HUSB311 Type-C控制器的设备树实现方案。主要内容包括:1)硬件连接与模块组成;2)设备树完整配置,涵盖Type-C供电、USB OTG/Host模式、DP显示输出等关键功能;3)软件配置步骤与常见问题排查方法。该方案实现了Type-C接口的DisplayPort AltMode显示输出、USB Device/Host模式自动切换等功能,为嵌入式系统Type-C接口开发提供参考

qq_34478161的博客 808

培训目录

李绪成的一亩三分地 1595

【x265编码器】章节6——x265的码率控制

对于CRF模式而言,右边这部分是是固定值m_rateFactorConstant,在初始化的时候确定,跟分辨率,qCompress这个参数是外部可设参数,默认值0.6,因此QP的选择只跟编码复杂度有关,跟码率无关,编码复杂度越高,QP值越高,因此可以一定程度上说CRF模式是恒定质量的编码模式。其中Complex表示当前帧的编码复杂度,x265中用lookahead模块计算的SATD作为衡量当前帧的复杂度,c为模型参数,qscale是率失真优化中的拉格朗日乘子,R为编码当前帧需要的比特数。

vcvdv123的博客 1万+

java全家桶之29: java培训体系

6个月系统学习可达就业水平,但持续竞争力取决于技术迭代跟踪能力(建议每年投入200小时学习新技术栈)。:IOC容器(Spring)、AOP切面、Spring MVC、Spring Boot微服务。:每个阶段嵌入企业级项目(如医疗平台、在线商城),覆盖需求分析→部署运维全流程。:Maven依赖管理、Git版本控制、Linux部署。中级:解决性能优化(JVM调优)、高并发场景。✅ 优势:灵活时段、可反复学习、云端实验环境。:文件操作、Socket通信、HTTP协议。

leijmdas的专栏 878

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java课程培训

ava未来的使用前景广阔 ,从历史来看,Java技能自1995年问世以来,在我国的使用和开发也得到了迅速遍及,总体来看,这些使用主要集中于企业使用开发。据有关单位查询显现,从开发范畴的分布状况上看Web开发占了一半以上,为57.9%,JavaME移动或嵌入式使用占15%,C/S使用占11.7%,系统编程占15.4%。近30%的开发者用Java从事C/S使用或系统级使用的开发。 既然使用Java编程这么广泛,拿相应是Java编程开发市场对于人才的需求就会增加,但是随着Java培训机构的增多,从事J.

weixin_63757008的博客 122

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java毕业生设计在线培训课程网站管理系统计算机源码+系统+mysql+调试部署+lw

java毕业生设计在线培训课程网站管理系统计算机源码+系统+mysql+调试部署+lw。前端技术:Layui、HTML、CSS、JS、JQuery等技术。JSP社团管理系统的设计与实现sqlserver。springboot师生共评的作业管理系统。ssm基于Web的精品课程网站的设计与实现。springboot智能推荐的卫生健康系统。ssm青岛滨海药店管理系统的设计与实现。

bishe505的博客 124

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

java面试遇到的问题,SpringMVC--异常处理,帮你解决95%以上的问题

又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考以下是部分内容截图一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

2401_83977626的博客 961

java程序设计颜志军_清华大学出版社-图书详情-《JSP与Servlet程序设计实践教程》...

Java作为面向对象编程语言的杰出代表正被应用在越来越多的领域,从掌上设备到大型机,从嵌入式应用到企业级应用,Java的身影随处可见。Java作为开源的编程语言和开发工具,使得开发者无需担心版权和许可费用的问题,这也使得越来越多的项目倾向于使用Java作为开发语言。更为重要的是,Java作为跨平台的语言,其应用可以方便地在不同操作系统平台之间进行移植,这使得那些将来可能更换运行平台的应用会更多地考...

weixin_33764069的博客 237

java软件工程师面试培训_Java 软件工程师 面试集锦

java 是如何进行异常处理的Java通过面向对象的方法进行异常处理,把各种不同的异常进行分类,并提供了良好的接口。在Java中,每个异常都是一个对象,它是Throwable类或其它子类的实例。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并进行处理。Java的异常处理是通过5个关键词来实现的:try、catch、throw、throws和fi...

weixin_36471865的博客 176

java培训学费_南通JAVA培训哪个好学费多少

渡课IT教育的初创团队成立于2006年,致力于培养符合时代要求的高新IT技术人才。通过十余年的发展,已具备丰厚的软件开发类学科教研和培养能力。自2012年开始,团队先后打造了包括视觉设计类课程(UI设计、电商平面设计等)、企业自媒体营销课程、大数据云计算课程、人工智能算法课程等。形成了在软件开发、视觉设计、企业信息化管理、大数据人工智能等 4 个核心版块的主力产品结构。同时,我们展开了青少年编程实...

weixin_39601657的博客 154

大本营半年总结(115篇文章)

去年9月21日加入学生大本营,今天3月21日,刚好半年。 快啊! 有太多想说的话,......,下面是这些本年来文章的目录。   1、Java基础系列   Java基础:第四十一讲 this和super Java基础:第四十讲 向上转型和强制类型转换 Java基础:第三十九讲 多态 Java基础:第三十八讲 抽象类与抽象方法 Java基础:第三十七讲 成员方法的继承与覆盖 J...

李绪成的一亩三分地 2625
上一篇: JSP培训(12)——Java Web应用国际化
下一篇: JSP培训(14)——购物车实例(上)
Java_Web_Book
博客等级 码龄18年 8粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值