JSPCN主页 | JSP空间 | 网站制作 | JSP下载 | JSP论坛 | JSP教程 | 关于JSPCN | 联系我们
JSP虚拟主机,jsp空间,java空间,java虚拟空间,详细请点击进入
做最专业的JSP中文网站 当前位置首页--JAVA技术--异常处理  
文章搜索:
关键字 标题
  
JSP中文网内容管理系统(JCMS)
JSP虚拟主机
网络笔记本
网摘,图片,笔记收藏
虚拟服务器

JSPCN文章目录分类
JSP配置[219]JSP基础[136]
中文问题[69]上传问题[27]
JAVABEAN[46]数据库[212]
文件操作[126]图片声音[17]
JSP其他[57]时间相关[16]
JAVAMAIL[72]STRUTS[144]
开发工具[28]教程系列[157]
JSP实例[89]
JAVA基础[421]APPLET[78]
JAVA网络[179]Applica[115]
Servlet[98]XML[163]
J2ME[257]J2EE[374]
考试相关[63]JAVA线程[90]
EJB[261]Swing[26]
Java API[141]声音图片[28]
异常处理[33]JAVA实例[290]
JAVA类[139]SUN[89]
Hibernate[6]JMX[8]
Spring[34]
本版推荐文章 
本版热点文章 
相关文章链接 
 
exception 隐含对象
作者:     文章来源:
访问次数:159次     加入时间:2006年11月06日
    exception 隐含对象在转换为Servlet之后,会对应至java.lang.Throwable型态的对象,也就是异常处理相关对象,只要您对Java例外处理有认识,就应当知道如何使用exception的各种方法,这边则由exception为招牌,实际上介绍如何在web.xml中规划错误处理网页,以及在发生对应的异常发生时呼叫对应的异常处理网页。 
    服务器发现错误时,会有自己的一套错误讯息网页以供响应,例如在发生404 Not Found之类的错误时,IIS、Apache、Tomcat等都会有各自不同的网页来响应客户端,而为了要在不同的服务器有一致的错误处理页面外观,我们也可以自行规划错误讯息处理网页,将服务器的那一套替换掉,使用自行的规画,我们实际在web.xml中加入以下的标签作示范: 
代码: 
    <error-page> 
        <error-code>400</error-code> 
        <location>/400.html</location> 
    </error-page> 

    <error-page> 
        <error-code>404</error-code> 
        <location>/404.html</location> 
    </error-page> 

    上面的设定会在服务器发生相对应的错误时,呼叫对应的网页(可以是静态或动态的网页),例如发生404 Not Found时,就会传回404.html给客户端,不过有些浏览器会有自己的错误讯息网页,例如Internet Explorer在接收到404 Not Found时,会使用自己的错误讯息来显示给操作者看。
    我们之前曾示范过如何在page指令元素中设定异常处理网页,并利用exception对象来显示相关讯息,这边介绍另一种方式,首先我们要知道任何被Servlet抛出来的异常对象如果没有被Servlet处理,则服务器会负责处理它,处理的方式视不同的服务器而定,如果您想要在发生异常时,能有一致的处理方式,即使是Servlet被部署在不同的服务器上,最好是自行处理异常,处理异常的方式可以使用try-catch-finally或是之前介绍的例外处理网页设定,这是在Servlet内处理例外的方式,如果要将异常丢给服务器处理,而又要自订处理响应页面,则也可以在web.xml中设定,例如我们在web.xml中加入以下的内容: 
代码: 
    <error-page> 
        <exception-type>javax.servlet.ServletException</exception-type> 
        <location>/servletex.jsp</location> 
    </error-page> 


    <exception-type>中必须设定异常类别的完整套件名称,而<location>所指的对象可以是静态网页,或是动态网页,如果要利用exception接收异常讯息,则必须设定page指令元素的isErrorPage属性为true,例如: 
代码: 
<%@page contentType="text/html;charset=Big5" isErrorPage="true"%> 
<html> 
<head><title>ServletException异常处理页面</title></head> 
<body> 
    <H1>网页发生错误:</H1><%=exception%> 
    <H2>显示异常堆栈追踪:</H2> 
    <% 
        exception.printStackTrace(response.getWriter()); 
    %> 
</body> 
</html> 

    通常处理异常的网页是动态网页,您可以设计一个通用的动态网页,让相关错误讯息、异常处理都由它来处理,以产生一致的外观,例如在web.xml中这么写: 
代码: 
    <error-page> 
        <error-code>404</error-code> 
        <location>/errorhandler.jsp</location> 
    </error-page> 

    <error-page> 
        <exception-type>javax.servlet.ServletException</exception-type> 
        <location>/errorhandler.jsp</location> 
    </error-page> 

您可以使用下面的网页来取得相关讯息,并进一步修改为通用的错误处理网页: 
代码: 
<%@page contentType="text/html;charset=Big5" isErrorPage="true"%> 
<html> 
<head><title>错误与异常处理页面</title></head> 
<body> 
    错误码: <%=request.getAttribute("javax.servlet.error.status_code")%> <br> 
    讯息: <%=request.getAttribute("javax.servlet.error.message")%> <br> 
    异常: <%=request.getAttribute("javax.servlet.error.exception_type")%> <br> 
</body> 
</html> 

    request的getAttribute()可以取得储存在其中的相关属性,依status_code、message、与exception_type,您可以进一步进行不同的错误、异常处理。
JSP虚拟主机 | JSP空间 | JSP主机 | JSP双线虚拟主机 | JAVA空间 | JAVA虚拟主机 | 虚拟服务器 | JSP 虚拟服务器 | VPS
Virtual Private Server | JAVA虚拟服务器 | VM服务器 | VHOST | 虚拟操作系统 | JSP论坛 | JAVA论坛 | JSP站点论坛
Copyright © 2002-2005 JSPCN.net. All rights reserved.
JSP中文网    备案序号:蜀ICP备05001583号
成都恒海科技发展有限公司    成都市一环路南二段6号新瑞楼三楼8号