您的位置:首页 > 编程语言 > Java开发

Java web 项目关于错误页面的处理

2015-01-12 10:44 489 查看


2012-06-07 11:39:19| 分类: 默认分类|举报|字号 订阅

第一步:你需要建立一个显示错误信息的jsp页面,内容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>系统执行发生错误</title>

</head>

<body>

<div>系统执行发生错误,信息描述如下:</div>

<div>错误状态代码是:$ {pageContext.errorData.statusCode}</div>

<div>错误发生页面是:$ {pageContext.errorData.requestURI}</div>

<div>错误信息:$ {pageContext.exception}</div>

<div>

错误堆栈信息:<br/>

<c:forEach var="trace" items="$ {pageContext.exception.stackTrace}">

<p>$ {trace}</p>

</c:forEach>

</div>

</body>

</html>

当然这个只是用来显示获取错误相关的信息,里面包含了绝大多数的错误相关信息,你可以使用这些信息来定制你的错误显示。

第二步:配置web.xml文件,添加错误页。

<error-page>

<exception-type>java.lang.Exception</exception-type>

<location>/error.jsp</location>

</error-page>

这样的配置表示如果jsp页面或者servlet发生java.lang.Exception类型(当然包含子类)的异常就会转到error.jsp页面处理。

<error-page>

<error-code>500</error-code>

<location>/error.jsp</location>

</error-page>

这样配置也是可以的,表示发生500错误的时候,转到error.jsp页面处理。

是不是很简单,你可以配置多个<error-page>小节,将不同类型的错误转发到不同的错误处理页面,方法已经有了,赶快配置你的个性化错误信息显示吧。

此外:还可以配置404之类的如:

<error-page>
<error-code>404</error-code>
<location>/404Error.jsp</location>
</error-page>

=========================方法二=============================

<%@ page language="java" import="java.util.*" pageEncoding="utf-8" isErrorPage="true"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.io.PrintStream"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="x-ua-compatible" content="ie=7" />
<title></title>
<link href="images/index.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<%=basePath%>script/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="<%=basePath %>script/jquery-common.js"></script>
<script type="text/javascript">
$(function(){
$("#detail").click(function(){
$("#detail_info").toggle()
});
});
</script>
</head>
<body>

<div class="uer_main">

<div class="uerbox_rig">
<div class="uerbox_contat">
<h1><span class="navigate"> </span></h1>
<div class="uer_rigmain">

<div class="uer_center"><h1>出错页面</h1></div>
<div class="uer_centerallcont">

<div class="uer_tabout">
<table class="table7" align="center" width="100%">
<tbody>
<tr>
<td width="20%" align="right">提示信息:</td>
<td width="80%">出错啦 </td>
</tr>
<tr char="error_code">
<td width="20%" align="right">错误码:</td>
<td width="80%"><%=request.getAttribute("javax.servlet.error.status_code")%> </td>
</tr>
<tr char="error_code">
<td width="20%" align="right">信息:</td>
<td width="80%"><%=request.getAttribute("javax.servlet.error.message")%> </td>
</tr>
<tr char="error_code">
<td width="20%" align="right">异常:</td>
<td width="80%"><%=request.getAttribute("javax.servlet.error.exception_type")%> </td>
</tr>
<tr style="display: none;">
<td width="20%" align="right">错误报告:</td>
<td width="80%"> </td></tr>
<tr>
<td width="20%" align="right"></td>
<td width="80%"><input name="" type="button" onclick="javascript:history.go(-1);" style="cursor: pointer;" value="返回" class="user_btt"/><input name="" type="button" id="detail" style="cursor: pointer;"
value="查看详细" class="user_btt"/></td>
</tr>

</tbody>
</table>
</div>
<div style="color: red;display: none;" id="detail_info"> <%=exception.getClass()%>:<%=exception.getMessage()%>
</br> <%
Enumeration<String> e = request.getHeaderNames();
String key;
while(e.hasMoreElements()){
key = e.nextElement();
}
e = request.getAttributeNames();
while(e.hasMoreElements()){
key = e.nextElement();
}
e = request.getParameterNames();
while(e.hasMoreElements()){
key = e.nextElement();
}
%> <%=request.getAttribute("javax.servlet.forward.request_uri") %><br>
<%=request.getAttribute("javax.servlet.forward.servlet_path") %>
<p>With the following stack trace:</p>
<pre>
<%
exception.printStackTrace();
ByteArrayOutputStream ostr = new ByteArrayOutputStream();
exception.printStackTrace(new PrintStream(ostr));
out.print(ostr);
%> </div>
</div>

</div>
</div>
</div>

</div>

<%--底部页面 --%>
<%@ include file="/foot.jsp" %>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: