JSP创建错误处理页面

程序运行难免会发生异常或者错误。当处理JSP页面时,遇到的异常分为两个基本类型:
[b] 1. 编译时的错误[/b]
[b] 2. 运行时的错误。[/b]
如果在编译时出现错误,那么将会产生那边错误(错误代码500)。如果错误在JSP编译完成后发生,那么就是运行时错误。如果我们不对错误进行处理,根据服务器的不同,就会显示出不友好的出错页面。同时也暴露了一些信息。
在JSP程序中可以捕获产生的异常,并且在代码中进行异常处理,比如:

<%
try{
int i=Integer.parseInt(request.getParameter("age"))
}
catch(NumberFormatException e)
{
response.sendRedirect("reenter.jsp");
}
%>

在上面的代码中,JSP已经捕获到了异常。但是如果异常在客户端请求时出现并且根本没有捕获到这个异常,那么用户还是会出现不友好的出错界面。这样噩梦需要建立一些异常页面。建立异常页面时,可以在编程中指定JSP出错的页面,也可以再web.xml文件中描述错误代码和出错页面。

[b]在JSP中声明出错页面[/b]
由于JSP文件被编译成Servlet执行,出现异常的默认操作就是显示异常从堆栈。JSP页面提供了重写这个默认行为的功能。并且将异常处理转到另一个文件中:
<%@ page errorPage="error.jsp"%>
这样在这个JSP页面中,如果遇到任何为捕获到的Throwable对象,那么就会显示指定的出错页面。
[b] 建立错误代码和错误页面[/b]
以上是在编程中指定错误页面,有一些异常不是由JSP页面抛出,而是由应用服务器抛出的,比如访问的页面不存在,应用服务器将会抛出页面不存在的异常(错误代码404)
这样的页面同样也是不友好的,我们可以在web.xml文件中对异常进行声明。比如出现错误代码为404,就调用pageNotFound.html页面,出现错误代码为500的异常,就调用internalError.jsp页面。
可以在web.xml文件中进行声明如下:

<?xml version="1.0" encoding="iso-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4">
<error-page>
<error-code>404</error-code>
<location>/pageNotFound.html</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/internalError.html</location>
</error-page>
<error-page>
<exception-type>java.lang.NumberFormatException</exception-type>
<location>/NumberFormatException.html</location>
</error-page>

可以看出,在声明错误页面时,可以指定错误的代码。

[b]国际化问题[/b]
一个真正意义的全球资源,其Web浏览器的内容对每个接收到的用户来说都是易读的。现在大多数全球资源的网站都是英文的。当然,现在也在发生变化,有的网站为一些特定的国家定制非英文版本。比如简单的google.com和google.cn吧。

国际化的问题主要包含以下的内容:
1. 日期、时间
2. 数字
3. 货币
4. 其他一些特殊的字符
也就是说,不同的Locale,显示日期、时间格式是不一样的。当然,不同的语言有自己不同的字符集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值