dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>jsp>文章内容
JSP入门实例教程8-jsp错误处理
来源: 作者:

大家访问你的网站的时候并不想看到栈跟踪记录,而且他们也不想得到一个“404 NOT Found 的标准错误。当然错误是在所难免的,你无法保证一个错误也没有,不过,至少你可以给用户一种更友好的错误响应页面。可以设计一个定制页面来处理,然后使用page指令配置错误页面。我们在tomcat的安装目录里webapps目录下创建一个testerror文件夹

指定的错误页面(errorPage.jsp

代码如下:

<%@ page  contentType="text/html;charset=GB2312" %>

<%@page  isErrorPage=”true” % >

<html>

<head><title>百家拳软件教程网</title></head>

<body>

这是错误页面

</body>

</html>

抛出异常的坏页面(badPage.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@page errorPage =”errorPage.jsp”%>

<html>

<head><title>百家拳软件教程网</title></head>

<body>

<%int i=10/0;%>

</body>

</html>

当你请求badPage.jsp页面的时候,你可以在地址栏里敲入http://localhost:8080/tests/badPage.jsp .这是你就可以看到一个错误页面。

上面的方法是用page指令来制定要使用的错误,如果我想根据不同的错误使用不同的错误页面,那该怎么办呢?我们可以在web-xml中为web应用声明错误页面,甚至可以为不同的异常类型或http错误代码类型(404500)配置不同的错误页面,容器使用<error-page>web-xml配置作为默认的错误页面,但是如果jsp有一个明确的errorPage page指令,容器就会优先使用该指令。这样就可以根据产生的错误的问题类型向客户显示不同的错误页面了。我们举3个声明方式,这些都是写在web-xml里的

第一个,声明一个普通的错误类型,它应用于所有web的应用,不只是jsp。你可以在单个jsp中加入一个包括errorPage属性的page指令来覆盖这个设置。

<error-page>

<exception-type>java.lang.Throwable</exception-type>

<location>/errorPage.jsp</location>

</error-page>

我们可以将badPage.jsp中的<%@ page errorPage%>去掉在从新调试。建一个jspbadPage1.jsp 代码如下

<%@ page contentType="text/html;charset=GB2312" %>

<html>

<head><title>百家拳软件教程网</title></head>

<body>

<%int i=10/0;%>

</body>

</html>

因为他和badPage.jsp都指向同一个错误页面,所以你可能看到的页面提示都是“这是错误页面”,这样你就可以当测试badPage1.jsp 将“这是错误页面”改成“此页面以错误“或者是别的。

我们在浏览器的地址栏里敲入http://localhost:8080/tests/badPage1.jsp可以看到运行后的结果

第二个,声明一个明确异常的错误页面,比如说是只要存在Exception异常时才调用自己的页面Exception.jsp。如果既有这个声明,又有上面的声明,那么只要不是Exception异常,其他异常都会导致调用“errorPage.jsp

<error-page>

<exception-type>java.lang.THrowable</exception-type>

<location>/ExceptionPage.jsp</location>

</error-page>

 

错误页面实际上就是一个处理异常的jsp,所以容器为这个页面提供了一个额外的exception对象。你可能不想向用户显示异常,但这个异常你可以明确得到。你可以这样做我们可以将上面的错误页面(errorPage.jsp)修改一下,建一个新的errorPage1.jsp代码如下:

<%@page  isErrorPage=”true”% >

<%@ page contentType="text/html;charset=GB2312" %>

<html>

<head><title>百家拳软件教程网</title></head>

<body>

我能抓到这个异常,这个异常是:${pageContext.exception}

</body>

</html>

他相应的badPage2.jsp代码如下:

<%@ page contentType="text/html;charset=GB2312" %>

<%@page errorPage ="errorPage1.jsp"%>

<html>

<head><title>百家拳软件教程网</title></head>

<body>

<%int i=10/0;%>

</body>

</html>

我们可以用EL隐式对象${pageContext.exception}来获得具体的异常。

我们在浏览器的地址栏里敲入http://localhost:8080/tests/badPage2.jsp可以看到运行后的结果

Jsp的页面错误处理,我就给大家讲这么多,更多的知识还得大家自己去研究学习。

例子下载

下一节,我们将讲一讲jsp中权限设置的问题。


上一篇:JSP入门实例教程9-jsp的权限设置   下一篇:JSP入门实例教程7-JSTL+EL语言的应用例子
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·JSP入门实例教程
·什么是Servlet
·JSP常用内置对象使用说明
·JSP自定义标签由浅到深详细讲解
·JSP自定义标签由浅到深详细讲解
·Java Servlet技术
·Javax.servlet API的特征
·一个简单的jsp注册页面
·JSTL操作数据库示例
·JSP入门实例教程13-MVC模式
·JSP入门实例教程12-jstl处理数
·JSP入门实例教程11-jstl处理xml
  相关文章
·JSP入门实例教程9-jsp的权限设置
·JSP入门实例教程7-JSTL+EL语言
·JSP入门实例教程10-jstl国际化
·JSP入门实例教程6-jsp自定义标签
·JSP入门实例教程11-jstl处理xml
·JSP入门实例教程5-简单的动作标
·JSP入门实例教程12-jstl处理数
·JSP入门实例教程4-jsp内置对象
·JSP入门实例教程13-MVC模式
·JSP入门实例教程3-jsp基本语法
·JSTL操作数据库示例
·JSP入门实例教程2(2)-jsp和servl
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763