`
gongmingwind
  • 浏览: 577973 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

(转)关于JSP中的错误页面处理

    博客分类:
  • web
阅读更多
通常JSP 在执行时,在两个阶段下会发生错误。
JSP 网页 → Servlet 类
Servlet 类处理每一个请求时
    在第一阶段时,产生的错误我们称为Translation Time Processing Errors;在第二阶段时,产生的错误我们称为Client Request Time Processing Errors。接下来我们针对这两个阶段产生错误的原因和处理方法,进行介绍。

    1、 Translation Time Processing Errors
    Translation Time Processing Errors 产生的主要原因:我们在撰写JSP时的语法有错误,导致JSP Container 无法将JSP 网页编译成Servlet 类文件( .class),例如:500 Internal Server
Error,500 是指HTTP 的错误状态码,因此是Server Error。
    通常产生这种错误时,可能是JSP 的语法有错误,或是JSP Container 在一开始安装、设定时,有不适当的情形发生。解决的方法就是再一次检查程序是否有写错的,不然也有可能是JSPContainer 的bug。



    2、 Client Request Time Processing Errors
    Client Request Time Processing Errors 错误的发生,往往不是语法错误,而可能是逻辑上的错误,简单地说,你写一个计算除法的程序,当用户输入的分母为零时,程序会发生错误并抛出异常(Exception),交由异常处理(Exception Handling)机制做适当的处理。对于这种错误的处理,我们通常会交给errorPage 去处理。下面举个例子:
使用errorPage 的范例程序 :ErrorPage.jsp

<%@ page contentType="text/html;charset=GB2312" errorPage="Error.jsp" %> //设置Error.jsp页为本页的错误处理页
<html>
<head>
<title>CH4 - ErrorPage.jsp</title>
</head>
<body>
<h2>errorPage 的范例程序</h2>
<%!
private double toDouble(String value)
{
return(Double.valueOf(value).doubleValue());
}
%>
<%
double num1 = toDouble(request.getParameter("num1"));
double num2 = toDouble(request.getParameter("num2"));
%>
您传入的两个数字为:<%= num1 %> 和 <%= num2 %><br>
两数相加为 <%= (num1+num2) %>
</body>
</html>

    ErrorPage.jsp 程序中,我们使用page 指令中的errorPage 属性,告诉JSP Container,如果在程序中有错误产生时(指的是servlet运行时产生的错误或显示用throw抛出的异常),会自动交给Error.jsp 处理。

Error.jsp
<%@ page contentType="text/html;charset=GB2312" isErrorPage="true" %>   //设置该页为错误处理页
<%@ page import="java.io.PrintWriter" %>
<html>
<head>
<title>CH4 - Error.jsp</title>
</head>
<body>
<h2>errorPage 的范例程序</h2>
<p>ErrorPage.jsp 错误产生:<I><%= exception %></I></p><br>
<pre>
问题如下:<% exception.printStackTrace(new PrintWriter(out)); %> //输出错误的原因
</pre>
</body>
</html>


    Error.jsp 主要处理ErrorPage.jsp 所产生的错误,所以在ErrorPage.jsp 中page 指令的属性errorPage设为Error.jsp,因此,若ErrorPage.jsp有错误发生时,会自动转到Error.jsp来处理。Error.jsp 必须设定page 指令的属性isErrorPage为true,因为Error.jsp是专门用来处理错误的网页。设定page 指令的属性isErrorPage为true后,在Error.jsp里就可以使用exception异常类了。

    由于在这个程序中并没有做一个窗体来输入两个数字,所以必须手动在URL后输入num1和num2的值,如http://localhost:8080/ErrorPage.jsp?num1=100&num2=245。当ErrorPage.jsp 产生错误时(如加数为字符串型),就会交由Error.jsp 去处理,所以我们看到的结果,不

再是原始的服务器提示的乱七把糟的错误提示,将是执行Error.jsp 后的结果。



在jsp中显式地抛出异常时,系统也会转到错误处理页面:
<%@page language="java" contentType="text/html;charset=GBK" import= "java.util.* " errorPage="exception.jsp"

%>

<jsp:useBean id="user" scope="session" class="S_userObj"/>

<% 

       if(user= =null)

throw new Exception("您没有登陆或者登陆超时,请重新登陆"); 


。。。 。。。

当user为空时系统会自动转到错误处理页面。

总之,以下情况jsp会转到错误处理页面:

前提:jsp成功的转换到了servlet,转换过程中没有发生错误。

当servlet运行时,程序中碰到异常。

当servlet运行时,程序控制转到了显式抛出的异常。例如:if(…) throw new exception();


转自:http://www.blogjava.net/kingace/archive/2008/07/24/217110.html
分享到:
评论

相关推荐

    JSP里web.xml实现错误处理页面的制

    JSP里web.xml实现错误处理页面的制

    jsp错误处理页面的例子

    针对运行jsp页面中产生的exception或者404,505错误的处理

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    jsp简单语法,servlet,JSP概述,JSP页面构成,注释,指令,脚本元素,动作元素,错误处理

    在web.xml中设置错误处理页面.docx

    请在web.xml文件中使用– page &gt;元素为整个web应用程序设置错误处理页面。已知:处理状态码为404的页面为404.jsp,处理状态码为500的页面为500.jsp。

    JSP里web.xml实现错误处理页面的制作404,和500

    JSP里web.xml实现错误处理页面的制作404,和500

    jsp的页面设置

    jsp的页面设置,调用java的代码,页面设置中常见的问题,处理与错误的纠正,供学习之用!

    JSP 异常处理

    JSP 异常处理 当编写JSP程序的时候,程序员可能会遗漏一些BUG,这些BUG可能会出现在程序的任何地方。JSP代码中通常有以下几类异常: 检查型异常:检查型异常就是一个典型的用户错误或者一个程序员无法预见的错误。举例...

    基于Java的Servlet和JSP的404错误处理设计源码

    本项目是基于Java的Servlet和JSP的404错误处理设计源码,包含46个文件,其中主要包含18个jsp页面文件,12个xml配置文件等。系统采用了Java编程语言,实现了基于Servlet和JSP的404错误处理功能。项目结构清晰,代码...

    jsp页面下载类

    特点及功能介绍: &lt;br&gt;支持单文件下载。支持多文件zip压缩下载。... 下载处理过程中出错时,会报告错误信息。 日文系统下文件名是中文时出现乱码问题。 处理前需要进行相对繁琐的设定。

    JSP---Model 实现的验证登陆

    建立 后台处理页面validator.jsp ,负责从前台拿出数据放到JavaBean中, 调用业务逻辑,如果正确跳到success.jsp,错误跳到 error.jsp。 - 这样实现的弊端: 1美工不好理解页面的内容。 2页面上的Java代码不能...

    关于Tomcat和jsp经验总结

    对JSP开发中容易出现的一些错误的总结,有出现错误的截图以及解决方法,包括了jsp页面的一些常见错误,控制台出现的错误,中文乱码处理、日期格式转换以及一些批量删除等小功能的实现方法等等,并有关于Tomcate的...

    作业6 JSP JDBC操作数据库

    作业6 JDBC操作数据库 作业类型:验证性实验 实验目的:理解JDBC接口操作数据库的方法,熟练掌握数据的增删改查。 实验内容: ...通过验证,跳转到success.jsp提示登录成功,否则,在login.jsp页码提示错误。

    JSP技术知识点考查 jsp动态建站技术

    exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。 out对象代表提供输出流的访问 page对象代表JSP页面对应的Servlet类实例 pageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有...

    JSP期末考试试题及答案

    3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码...

    JSP动态网页制作基础培训教程源代码.rar

    8 error.jsp 第4章\ch4 div.jsp页面的错误处理页面 9 web.xml 第4章\ch4\WEB-INF 第4章程序应用的描述文件 表5 第5章 序号 文件名称 位置 说明 1 setAutoFlushFalse.jsp 第5章\ch5 测试autoFlush的使用方法 ...

    JSP 程序设计从入门到精通 PDF 教程

     1.3.1 JSP页面中的元素 14  1.3.2 JSP语法概要 15  1.3.3关于模板文本(静态HTML) 16  1.4 运行第一个Jsp程序 16  1. 5本章小结 20  第2章Jsp 基础学习 20  2.1 JSP基本语法 20  2.1.1 JSP 语法之...

    jsp复习总结

    jsp,el表达式 1. Page指令: *" pageEncoding="utf-8"%&gt; 注意:一个页面可以有多个page指令,除了import外,其他属性都只能出现一次。...a) jsp页面异常处理: *" pageEncoding="utf-8" isErrorPage="true"%&gt;

    JSP实例编程100例

    5、建立错误处理页面的范例程序 6、jsp:forward 7、简单计数器 8、设置页面属性 9、使用GB2312编码 10、使用Big5编码 11、c:catch的用法 12、&lt;c:forEach&gt; begin、end和step的用法 13 、 &lt;c:forEach&gt; 循环 14、...

    JSP设计(第三版)

    不仅如此,在此还详尽地描述了Apache Tomcat服务器的建立、JSP和JSTL语法和特征、错误处理和调试、鉴别和个人化、数据库访问、XML处理和国际化等诸多内容。 希望学习JSP的专业人士可以划归为两大阵营,而这本书...

Global site tag (gtag.js) - Google Analytics