(转)web.xml 配置404和500异常的自定义页面
(转)web.xml 配置404和500错误的自定义页面
web.xml
JSP页面的关键在于
1 isErrorPage="true"
2 response.setStatus(HttpServletResponse.SC_OK);
building.jsp
error.jsp
转自:http://blog.****.net/java2000_net/archive/2007/12/29/2000965.aspx
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <error-page> <error-code>404</error-code> <location>/building.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> </web-app>
JSP页面的关键在于
1 isErrorPage="true"
2 response.setStatus(HttpServletResponse.SC_OK);
building.jsp
<%@ page language="java" contentType="text/html; charset=GBK" isErrorPage="true" pageEncoding="GBK"%> <%response.setStatus(HttpServletResponse.SC_OK); %> <% /** * 本页面是在客户查找的页面无法找到的情况下调用的 */ response.setStatus(HttpServletResponse.SC_OK); %> <body> 正在制作... <a href="javascript:history.go(-1)">返回</a> <br/> 也可能页面连接更改了,请按 F5 键刷新整个页面看看,特别是菜单! </body>
error.jsp
<%@ page language="java" contentType="text/html; charset=GBK" isErrorPage="true" pageEncoding="GBK"%> <%@ page import="java.io.*,java.util.*"%> <%response.setStatus(HttpServletResponse.SC_OK); %> <body> 程序发生了错误,有可能该页面正在调试或者是设计上的缺陷.<br/> 你可以选择<br/> <a href=<%=request.getContextPath()+"/forum/new.jsp" %>>反馈</a> 提醒我... 或者<br/><a href="javascript:history.go(-1)">返回上一页</a> <hr width=80%> <h2><font color=#DB1260>JSP Error Page</font></h2> <p>An exception was thrown: <b> <%=exception.getClass()%>:<%=exception.getMessage()%></b></p> <% System.out.println("Header...."); Enumeration<String> e = request.getHeaderNames(); String key; while(e.hasMoreElements()){ key = e.nextElement(); System.out.println(key+"="+request.getHeader(key)); } System.out.println("Attribute...."); e = request.getAttributeNames(); while(e.hasMoreElements()){ key = e.nextElement(); System.out.println(key+"="+request.getAttribute(key)); } System.out.println("Parameter...."); e = request.getParameterNames(); while(e.hasMoreElements()){ key = e.nextElement(); System.out.println(key+"="+request.getParameter(key)); } %> 111<%=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> <hr width=80%> </body>
转自:http://blog.****.net/java2000_net/archive/2007/12/29/2000965.aspx