1.需要配置web.xml文件中的信息,注意一点需要把所有会出错的错误码都声明出来,如果不声明出来会没有效果,我这里只声明了网页找不到的错误码404和500错误,其他的错误码可以自己百度搜索。
404
/errorInfo.jsp
500
/errorInfo.jsp
2.定义一自己的错误jsp界面或者html界面,我这里是javaWeb的jsp界面,可以直接使用。
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
//定义一个方法
public static OutputStream getErrorInfo(HttpServletRequest request, Throwable exe) {
try{
// 创建一个空的字节流,保存错误信息
OutputStream os = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(os);
// 收集错误信息
ps.println("错误码: " + request.getAttribute("javax.servlet.error.status_code"));
ps.println("异常类: " + request.getAttribute("javax.servlet.error.servlet_name"));
ps.println("出错页面地址: " + request.getAttribute("javax.servlet.error.request_uri"));
ps.println("访问的地址路径: " + request.getAttribute("javax.servlet.forward.request_uri"));
ps.println();
Map map = request.getParameterMap();
/* for (String key : map.keySet()) {
ps.println("请求中的参数包括:");
ps.println(key + "=" + request.getParameter(key));
ps.println();
} */
/* for (Cookie cookie : request.getCookies()) {
ps.println("请求中的 Cookie 包括:");
ps.println(cookie.getName() + "=" + cookie.getValue());
ps.println();
} */
if (exe != null) {
ps.println("堆栈信息");
exe.printStackTrace(ps);
ps.println();
}
return os;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}%>
错误页面code:${requestScope['javax.servlet.error.status_code']}
body {
max-width: 600px;
min-width: 320px;
margin: 0 auto;
padding-top: 2%;
}
textarea {
width: 100%;
min-height: 300px;
outline: none;
border: 1px solid gray;
padding: 1%;
}
h1 {
text-align: right;
color: lightgray;
}
div {
margin-top: 1%;
}
抱 歉……
out.print(getErrorInfo(request, exception));
%>
回首页 | 上一页
3.最后总结一点,实现此功能 1.需要配置web.xml信息,2.需要将此界面设置为出错界面添加此项即可。