在网站中经常由于用户的不当操作造成异常,一般情况下我们可以将这些异常在一个网页中统一显示。这个时候就需要用到errorPage跟isErrorPage属性。
errorPage指令的作用就是在其中指定一个网页,当jsp程序出现未被捕获的异常时,就跳转到那个指定的页面,通常情况下跳转到的页面需要使用isErrorPage来指明处理其他页面的错误信息。
完成错误页的操作,满足下列条件:
1.指定错误出现时的跳转页(此处跳转页为anErrorPage.jsp),通过errorPage属性指定
语法:<%@page errorPage="anErrorPage.jsp"%>
2.错误处理页必须要有明确的标识,通过ErrorPage属性指定
语法:<%@page isErrorPage="true"%>
1 <%@page contentType="text/html" pageEncoding="gb2312" 2 errorPage="anErrorPage.jsp"%> 3 <html> 4 <body> 5 <% 6 //其向anErrorPage抛出异常,让其处理 7 int num=1/0; 8 %> 9 </body> 10 </html>
anErrorPage.jsp
1 <%@page language="text/html" pageEncoding="gb2312" 2 isErrorPage="true"%> 3 <html> 4 <body> 5 <% 6 //处理抛出的异常 7 out.println("出现数学运算异常!"); 8 %> 9 </body> 10 </html>
运行最后结果我就不显示了,很简单。这里提个醒,正常情况下是可以跳转的,但是有时会出现无法跳转的问题,其原因是:跳转后,有可能将anErrorPage认为一个出错页,所以不显示,处理方法:
在anErrorPage中进行设置告诉用户其为正常页面
<%response.setStatus(200)%>
跳转后发现页面内容发生改变,但不为anErrorPage.jsp页面
不改变地址栏的跳转称为服务器端跳转
避免在每个页面设置errorPage,可以在web.xml中进行设置:
格式: <error-page>
<error-code>name</error-code>
<location>path</location>
</error-page>
配置完成后重新启动服务器