日期:2014-05-16 浏览次数:20360 次
想要在JSP页面查看后台的错误堆栈信息,那么需要做如下的设置
?
1新建一张JSP页面,并且设置
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" isErrorPage="true"%>
?
设置isErrorPage="true"
?
2做一个DIV,设置默认的display为none,点击查看详情的时候在显示错误信息。
?
<script> function showErrorMsg(){ var isDisplay=document.getElementById("showErrorMsg").style.display; if(isDisplay=="none"){ document.getElementById("showErrorMsg").style.display="block"; }else{ document.getElementById("showErrorMsg").style.display="none"; } } </script>
?
3写一个DIV
<div id="showErrorMsg" style="display: none">错误原因</div>
?
4在DIV里面加入如下代码
<%=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); %> </pre>
?
如此,当后台报错的时候,点击查看详情就可以看到错误堆栈了
?
需要注意的是,对于HTTP的错误,servlet可以通过配置的办法来处理特定的错误。例如
<error-page> <error-code>403</error-code> <location>/WEB-INF/jsp/error/403.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/WEB-INF/jsp/error/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/WEB-INF/jsp/error/500.jsp</location> </error-page>?