关于JSP异常的处理

简介:

jsp中错误处理页面-isErrorPage="true"

举例说明:mustBeError.jsp

复制代码
1 <%@ page contentType="text/html; charset=gb2312" 
2 language="java" import="java.sql.*,javax.servlet.*,javax.servlet.http.*" errorPage="error.jsp" %>
3 <%
4   //这个页面一定会出错。
5   int i=0;
6   int j=1;
7   out.println(j/i);
8 %>
复制代码

在此中通过errorPage="error.jsp"来指定出错时错误处理页面

error.jsp

复制代码
 1  <%@ page contentType="text/html; charset=gb2312" language="java" isErrorPage="true" import="java.io.*"%>
 2  <html>
 3  <head>
 4    <title>出错了!</title>
 5    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
 6  </head>
 7  <body>
 8    出错了!<br>
 9    发生了以下的错误:
10    <br><hr>
11  <font color=red><hr>
12    getMessage():<br>
13    <%=exception.getMessage()%><br><hr>
14    getLocalizedMessage():<br>
15    <%=exception.getLocalizedMessage()%><br><hr>
16    PrintStatckTrace():<br>
17    <%
18    StringWriter sw=new StringWriter();
19    PrintWriter pw=new PrintWriter(sw);
20    exception.printStackTrace(pw);
21    out.println(sw);
22    %><br>
23   </font>
24  </body> 
复制代码

在web.xml中声明异常和错误页面

复制代码
 1 例如:
 2 <?xml version="1.0" encoding="ISO-8859-1"?>
 3 
 4 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
 5 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 6 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
 7 version="2.4">
 8 <error-page>
 9 <error-code>404</error-code>
10 <location>/pageNotFound.html</location>
11 </error-page>
12 
13 <error-page>
14 <exception-type>java.lang.NumberFormatException</exception-type>
15 <location>/NumberFormatException.html</location>
16 </error-page> 
17 
18 </web-app> 
复制代码

说明:指定错误代码为404是,调用/pageNotFound.html
也可以指定错误类型如:java.lang.NumberFormatException,出现此错误类型是调用/NumberFormatException.html

 

在error.jsp中,首先在page指令中指定:

isErrorPage="true"

这是非常关键的地方,只有这样指定,这个页面才能进行错误处理,才能使用exception对象。

exception对象有几个非常重要的方法,用于获得出错的信息,这些方法如下:

 

 <%=exception.getMessage()%>
 <%=exception.getLocalizedMessage()%>
 <% exception.printStackTrace(PrintWriter);%>

最后一个方法用于打印错误堆栈。如果需要在错误页面以外使用这个exception对象,那么可以这样把exception对象保存起来:

session.setAttribute("myError",exception);

在另一个页面使用:

Exception exception=( Exception )session.getAttribute("myError");

把这个异常对象引入进来。


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/4090974.html,如需转载请自行联系原作者

相关文章
|
缓存 Java
严重: Servlet[jsp]的Servlet.service()抛出异常 java.lang.IllegalStateException: 当前响应已经调用了方法getOutputStream()
严重: Servlet[jsp]的Servlet.service()抛出异常 java.lang.IllegalStateException: 当前响应已经调用了方法getOutputStream()
605 0
|
存储 数据可视化 IDE
JSP常见异常之PropertyNotFoundException
JSP常见异常之PropertyNotFoundException
124 0
jsp页面出现异常
这样的错误,就应该把把包含页面与被包含页面的@page指令里面的contentType写成一致,一定要一致
|
Java 应用服务中间件
JSP 加上 <%@ taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> 运行产生异常
笔者使用 Tomcat 10 版本,在使用 JSTL 的过程中,JSP 页面中一旦加上 <%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> 标准库标签,运行就会产生异常,应该是 jar 包的问题,可能冲突或者版本不匹配什么的,尝试了无数种方法,各种导入 jar 包终无果。
JSP 加上 <%@ taglib prefix=“c“ uri=“http://java.sun.com/jsp/jstl/core“ %> 运行产生异常
|
Java Maven Spring
spring boot jsp之Intellij异常
spring boot jsp之Intellij异常
107 0
|
Java 前端开发
JSP-使用JSTL-out、set、remove、catch捕捉异常、条件判断、流程控制、字符截取
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/75804793 使用JSTL 在MyEclipse2014中,使用JSTL只要在文件开始加上一句 prefix表示前缀,用于区分其他标签,可以自定义前缀。
925 0
|
Java Maven 应用服务中间件
【错误解决】[Maven]使用Maven配置Jstl出现异常:The absolute uri: http://java.sun.com/jsp/jstl/core cannot...
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自【大学之旅_谙忆的博客】 也就是出现如下错误: 严重: Servlet.service() for servlet jsp threw exception org.
1833 0
|
Java
jsp出现getOutputStream() has already been called for this response异常的原因和解决方法
jsp出现getOutputStream() has already been called for this response异常的原因和解决方法 在tomcat5下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有妥善处理好的原因。具体的原因就是在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletReque
1458 0
|
1月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
62 0