`
gongmingwind
  • 浏览: 588315 次
  • 性别: 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实现错误处理页面的制

    通过在web.xml中配置`&lt;error-page&gt;`元素,结合自定义的JSP错误处理页面,开发者可以显著提升Web应用的健壮性和用户体验。这种策略不仅能够优雅地处理常见的HTTP错误,还能为用户提供清晰的指导,减少因技术问题带来...

    jsp错误处理页面的例子

    - **try-catch-finally语句**:在JSP页面中,可以使用Java的try-catch-finally结构来捕获并处理可能出现的异常。当异常发生时,catch块中的代码会被执行,finally块通常用于资源清理,无论是否发生异常都会执行。 ...

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

    本文将讲述如何在 web.xml 文件中使用 `&lt;error-page&gt;` 元素来设置错误处理页面,并结合实验结果,分析 JSP 的基本语法和错误处理机制。 web.xml 文件的 `&lt;error-page&gt;` 元素 在 JavaWeb 应用程序中,web.xml 文件...

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

    JSP可以通过`&lt;error-page&gt;`标签在web.xml中配置错误处理,当特定HTTP状态码或异常发生时,转向指定的错误页面。 总结,JSP和Servlet是构建Java Web应用程序的重要工具,它们结合使用可以实现动态网页功能,提供高效...

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

    在 `web.xml` 文件中,可以通过 `&lt;error-page&gt;` 元素来定义错误页面。这些元素指定了当发生特定类型的错误时,服务器将重定向到哪个页面。例如: ```xml &lt;error-code&gt;404 &lt;location&gt;/building.jsp ...

    servlet/jsp自定义错误页面

    在Servlet和JSP开发中,自定义错误页面是一项重要的功能,它允许开发者为特定的HTTP错误状态码提供定制的响应,提升用户体验。错误页面通常用于处理像404(未找到)和500(服务器内部错误)这样的常见错误。在给定的...

    jsp登录页面设计源代码

    在jsp登录页面设计中,我们需要使用try-catch语句来处理错误信息。例如,在上面的代码中,我们使用out.println()方法来打印错误信息。 jsp登录页面设计需要考虑到多个方面,包括HTML代码设计、样式设计、表单设计、...

    jsp页面加载时提示loading

    4. **JSP脚本错误**:JSP页面中的语法错误或逻辑错误可能会导致页面加载异常。检查JSP文件中的Java代码,确保没有编译错误或运行时异常。使用IDE的错误检查功能可以帮助快速定位问题。 5. **缓存问题**:浏览器缓存...

    关于jsp的一系列错误整理

    【关于jsp的一系列错误整理】 在JavaServer Pages (JSP) 开发过程中,开发者经常会遇到各种问题,这些问题可能涉及到语法错误、逻辑错误或是环境配置问题。以下是对这些常见错误的详细解析和解决策略: 1. **数字...

    jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法

    在JSP页面开发过程中,EL(Expression Language)表达式是一种用于简化数据访问的语法,通过它可以方便地访问Java EE环境中JSP页面的隐含对象和JavaBeans组件。当EL表达式被错误地当作字符串处理而不是被解析时,会...

    适用JSP技术实验网页遇到错误时,实验错误页转发

    本实验涉及的是当JSP页面运行时遇到错误时,如何设置错误处理机制,将错误信息转发到一个专门的错误页面进行显示,从而提高用户体验。以下是详细的知识点讲解: 1. **JSP异常处理**: JSP页面在执行过程中可能会抛...

    jsp基本错误调试方法ppt

    当在IE浏览器的JavaScript控制台中看到黄色叹号表示有JS错误,而没有黄色叹号则可能是JSP错误。 3. **使用debug单步执行**:大多数开发环境如Eclipse、IntelliJ IDEA都支持断点调试功能。通过设置断点,可以单步...

    2022年处理添加留言的JSP页面.pptx

    8. JSP页面的调试:在处理添加留言的JSP页面中,需要对JSP页面进行调试,以便查找和修复错误。可以使用JSP页面的调试工具,如Eclipse和IntelliJ IDEA来实现JSP页面的调试。 9. JSP页面的部署:在处理添加留言的JSP...

    jsp小例子 登陆页面

    表单的`action`属性会指定处理这些数据的JSP页面,这可能是`index22.jsp`或者`test.jsp`。 在`index22.jsp`或`test.jsp`中,我们将处理用户提交的数据。JSP允许我们嵌入Java代码来执行后端逻辑,比如验证用户名和...

    jsp简单注册,登录页面

    2. **JSP语法**:在JSP页面中,我们可以使用`&lt;jsp:include&gt;`、`&lt;jsp:useBean&gt;`、`&lt;jsp:setProperty&gt;`等指令进行页面包含、创建Java对象以及设置对象属性。此外,还可以使用脚本元素`&lt;% %&gt;`、`&lt;%= %&gt;`、`! %&gt;`, 分别...

    韩顺平 jsp页面计算器

    7. **错误处理与调试**:描述中提到在编写过程中遇到并解决了问题,这意味着你会了解到如何使用调试工具,查看服务器日志,以及利用断点和步进执行来找出程序中的错误。 8. **J2EE基础**:虽然这个项目是简单的JSP...

    jsp登录注册页面

    9. **前后端交互**:JSP页面可以结合Servlet或控制器(如Spring MVC的Controller)进行业务逻辑处理。前端JSP负责展示界面,后端Servlet或Controller负责处理请求并返回结果。 10. **模板引擎**:为了提高代码的可...

    JSP页面显示PDF,根据PDF路径在JSP页面显示PDF

    在JSP页面中,我们可以通过创建一个iframe或者使用JavaScript来加载PDF文件的URL,让浏览器处理显示。 标题“JSP页面显示PDF,根据PDF路径在JSP页面显示PDF”意味着我们要依据PDF文件在服务器上的存储路径来生成...

    jsp的页面设置

    综上所述,JSP页面设置涉及了多种技术,包括指令、脚本元素、动作元素等,同时还需要关注编码、错误处理和调试。学习和理解这些知识点对于开发高质量的JSP应用至关重要。通过实践和不断地解决实际问题,可以提升对...

Global site tag (gtag.js) - Google Analytics