日期:2014-05-16  浏览次数:20335 次

jsp页面显示后台的错误

想要在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>
?