jsp编译指令page有errorPage和isErrorPage这两个属性,可以实现自定义友好异常界面。errorPage指定异常后要跳转到哪个页面,此jsp页面必须是isErrorPage=“true”。
一个简单的例子
test.jsp的代码如下:
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %> //指定异常后要跳转的页面为error.jsp
<html>
<head>
<title>欢迎</title>
</head>
<body>
欢迎学习jsp知识
<%
out.println(new java.til.Date( )); //此处为出错的地方
%>
</body>
</html>
error.jsp代码如下:
<%@ page contentType="text/html; charset=UTF-8" isErrorPage="true"%>
<html>
<head>
<title>错误提示页面</title>
</head>
<body>
系统出现异常<br/>
</body>
</html>
然后,运行后的结果却有些意料之外,还是那个我们非常熟悉的Http Status 500错误。
原因有两个:
一、IE浏览器问题
如果你使用的是IE浏览器,那么可能的问题是IE的设置。
解决办法:在IE的设置--Intent选项--高级中取消掉“显示友好HTTP错误信息”这一项。
二、错误类型问题
如果你使用的是火狐或者设定好的IE,还是无法解决的话,那么就是错误类型问题了。
例子中的错误是语法错误,这种错误是不会跳转的。
只有Exception才能跳转,比如下面这个jsp页面就可以。
<%@ page contentType="text/html; charset=UTF-8" language="java" errorPage="error.jsp" %>
<html>
<head>
<title>欢迎</title>
</head>
<body>
欢迎学习Java Web知识
<%=1/0%>
</body>
</html>