【jsp exception】如何处理jsp页面的错误

根据jsp对错误的处理方式不同可以将其分为局部异常处理和全局异常处理。局部异常处理适用于个别jsp页面,当这些页面发生错误后,采取特殊的处理方式;全局异常处理适用于所有jsp页面,当所有页面发生某些指定错误后,采取同一方式处理。

(1)局部异常处理

局部异常处理主要涉及jsp页面page指令的 errorPage 和 isErrorPage 属性

errorPage 属性用于设置错误处理的jsp页面,如果当前jsp页面内产生了未被捕获的异常,则跳转到errorPage指定的jsp页面进行处理。

isErrorPage 属性用于错误处理页面,只有将jsp页面中的 isErrorPage 属性设置为true,此jsp页面才能被用作错误处理页面,在该jsp的代码中才可以使用exception饮食对象(!不设isErrorPage 会报错!)

错误处理页面dealError.jsp

<%@ page contentType="text/html;charset=gb2312" import="java.util.*" %>
<%@ page import="java.io.PrintWriter"%>
<%@ page isErrorPage="true" %>

<html>
  <body>
    <%
        out.println("out of deal error!\r\n");
          exception.printStackTrace(new PrintWriter(out));
    %>
  </body>
</html>

业务处理页面divide.jsp

<%@ page contentType="text/html;charset=gb2312" import="java.util.*" %>
<%@ page errorPage="dealError.jsp" %>

<html>
  <body>
    <%
        out.println("before exception!");
        int x= 1/0;
        out.println("after execption!");
    %>
  </body>
</html>

运行结果:

out of deal error! 
java.lang.ArithmeticException: / by zero at org.apache.jsp.divide_jsp._jspService(divide_jsp.java:71) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at

...

...

(2) 全局异常处理

通过在web.xml 文件中添加<error-page>配置,可以为整个web应用程序设置异常处理页面。每个<error-page>元素用于设置一种异常或者一个HTTP错误状态码的处理页面。

web.xml 中的示例代码如下:

<!--   依据HTTP错误状态码设置错误处理页面 -->
  <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>

在上述代码中,<error-page>元素中的子元素<exception-type> 和<error-code>,两者是二选一的关系

错误处理页面errorhandler.jsp

<%@ page contentType="text/html;charset=gb2312" import="java.util.*" %>
<%@ page isErrorPage="true" %>

<html>
  <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>

运行结果(如servlet 中某一句前加一个~ 使其编译失败):

错误码: 500
讯息: null 
例外: class java.lang.Error

时间: 2024-08-25 23:21:27

【jsp exception】如何处理jsp页面的错误的相关文章

JSP隐式对象是JSP容器为每个页面提供的Java对象

JSP 隐式对象 JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐式对象也被称为预定义变量. JSP所支持的九大隐式对象: 对象 描述 request HttpServletRequest类的实例 response HttpServletResponse类的实例 out PrintWriter类的实例,用于把结果输出至网页上 session HttpSession类的实例 application ServletContext类的实例,与应用上

JSP的几个页面指令

页面指令:向服务器说明页面自身的特征,以便服务器. 1,<%@page contentType="text/xml;charset=utf-8" %> 客户端--->>服务端的编码. 2,<%@page import="" %> 引入名字空间. 3,<%@page pageEncoding="GBK/GB2312/utf-8"%>(网页的静态内容乱码想到pageEncoding, jsp文件文本编辑

JSP+Servlet+javabean实现页面多条件模糊查询

需求: 一般列表页上面会有一个查询框,有各种的查询条件组合,一般都采用模糊查询方式 ,以下以自己做的实例来说明一下实现方法: 需要实现的界面原型:要满足条件: 1.单选分类,点GO按扭 2.单独输入标题关键字,点GO按扭 3.选择分类,再输入关键字,点GO按扭 我这里用了MVC分层模式来进行的,所以一步步讲解吧,上源码: 因为我一个class里写了很多不同的业务,所以帖代码只帖当前步 dao层: 1 //当前页显示的新闻信息pageNo 当前页码,pagePerCount是每页多少条数据 2 p

JSP 实用程序之简易页面编辑器

完整源码下载:http://pan.baidu.com/s/1bpkHNnp(百度云提供) 需求:提供一页面,放置"帮助"."版权"文字内容,特点:静态页面,无须读数据库,只是应付字眼上频繁的修改:没有复杂的交互,无须 JavaScript:没有图片,不需要文件上传. 给出的方案:提供一页面和简易的后台管理,功能单一,只是编辑页面(只是修改字体.大小.粗体.斜体等的功能). 实现思路:纯 JSP 展示,管理界面用 HTTP Basic 登入,通过一个 JS 写成 H

JSP添加打印部分页面

打印a.jsp的部分页面 将影响要打印的内容放到<div id="printcontent">中 为想要打印的内容创建样式pirnt.css 在a.jsp中添加以下内容: function printpage() { OpenWindow=window.open("", "_blank"); //重写网页 OpenWindow.document.write("<head>"); OpenWindow.d

过滤器为JSP文件生成静态页面

用过滤器为JSP文件生成静态页面,这只是一个简单的实例,客户端浏览器第一次请求JSP页面时,服务器将生成对应的HTML文件,以后访问同一JSP文件,将转为访问生成的HTML文件.一.过滤器 package com.kenfor.lyb.toHtmlfilter; import java.io.*; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.s

tomcat+jsp+mysql 实现jsp页面连接mysql

什么是Tomcat官方网站:http://tomcat.apache.org/         Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache.Sun 和其他一些公司及个人共同开发而成.由于有了 Sun 的参与和支持,最新的 Servlet 和JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 规范.因为Tomcat 

jsp同一应用中页面间传值方式

JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp?action=transparams&detail=directe">直接传递参数< /a> 特别的在使用response.sendRedirect做页面转向的时候,也可以用如下代码: response.sendRedirect("thexuan.jsp?acti

Jsp与servlet之间页面跳转及参数传递实例(转)

原网址:http://blog.csdn.net/ssy_shandong/article/details/9328985 11. jsp与servlet之间页面跳转及参数传递实例 分类: Java Web2013-07-17 16:24 16461人阅读 评论(12) 收藏 举报 jsp servlet传递参数 目录(?)[-] 1从一个jsp页面跳转到另一个jsp页面时的参数传递 2jsp页面传递参数给servlet 3从servlet到jsp页面中传递参数 4从一个servlet到另一个s