打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java web 项目关于错误页面的处理
第一步:你需要建立一个显示错误信息的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>
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JSP的9个内置对象
JSP页面中的错误处理(转载)
servlet的三大作用域对象和jsp的九大内置对象及其四大作用域对象
javax.servlet.jsp.PageContext cannot be resolved to a type
thymeleaf中跳转地址的使用
JSP内置对象
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服