实现javaWeb网页自定义出错界面
1.需要配置web.xml文件中的信息,注意一点需要把所有会出错的错误码都声明出来,如果不声明出来会没有效果,我这里只声明了网页找不到的错误码404和500错误,其他的错误码可以自己百度搜索。
2.定义一自己的错误jsp界面或者html界面,我这里是javaWeb的jsp界面,可以直接使用。
<%@page import="java.io.PrintStream"%>
<%@page import="java.io.ByteArrayOutputStream"%>
<%@page import="java.io.IOException"%>
<%@page import="java.io.OutputStream"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "😕/"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<%@page isErrorPage="true"%>
//定义一个方法
<%!
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<String, String[]> 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;
}
}%>
抱 歉……
3.最后总结一点,实现此功能 1.需要配置web.xml信息,2.需要将此界面设置为出错界面<%@page isErrorPage="true"%>添加此项即可。
转载于原文页:https://blog.csdn.net/ma18845639852/article/details/69056816

浙公网安备 33010602011771号