java web 自定义错误页面 完整jsp错误页面代码(同时写错误日志) error.jsp

web.xml的配置很简单啦,网上搜一下就一大堆了。

  
  
< error-page >
< error-code > 500 </ error-code >
< location > /error.jsp </ location >
</ error-page >

这里分享一下自己刚完成的自定义错误页面error.jsp,高度可用~~~欢迎提出问题指正~~

  
  
<% @ page language = " java " import = " java.util.* " pageEncoding = " UTF-8 " %>
<% @page isErrorPage = " true " %>
<% @page import = " java.text.SimpleDateFormat " %>
<% @ page import = " java.io.* " %>
<%
response.setStatus(HttpServletResponse.SC_OK);
%>
<! DOCTYPE html PUBLIC " -//W3C//DTD XHTML 1.0 Transitional//EN " " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd " >
< html xmlns = " http://www.w3.org/1999/xhtml " >
< head >
< title > 错误页面 </ title >
< script type = " text/javascript " src = " ./javascript/jquery-1.5.1.min.js " ></ script >
< script >
function showErrorMessage(){
$(
" #errorMessageDiv " ).toggle();
}
$(document).ready(showErrorMessage);
</ script >
</ head >
< body >
< table width = " 100% " >
< tr >
< td style = " border-bottom:dotted 1px Gray; " colspan = " 2 " >
< img src = " images/error_title_icon.gif " id = " img1 " />& nbsp; & nbsp;错误提示
</ td >< td ></ td >
</ tr >
< tr >
< td style = " width: 130px " >
< img src = " images/sorry.gif " id = " error_img " />
</ td >
< td > 尊敬的用户: < br /> 系统出现了异常,请重试。
< br /> 如果问题重复出现,请向系统管理员反馈。 < br />< br />
< a id = " showErrorMessageButton " href = " javascript:showErrorMessage(); " > 详细错误信息 </ a >
</ td >
</ tr >
</ table >
< div id = " errorMessageDiv " >
< pre >
<%
try {
// 全部内容先写到内存,然后分别从两个输出流再输出到页面和文件
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
PrintStream printStream
= new PrintStream(byteArrayOutputStream);

printStream.println();
printStream.println(
" 用户信息 " );
printStream.println(
" 账号: " + request.getSession().getAttribute( " userName " ));
printStream.println(
" 访问的路径: " + request.getAttribute( " javax.servlet.forward.request_uri " ));
printStream.println();

printStream.println(
" 异常信息 " );
printStream.println(exception.getClass()
+ " : " + exception.getMessage());
printStream.println();

Enumeration
< String > e = request.getParameterNames();
if (e.hasMoreElements()) {
printStream.println(
" 请求中的Parameter包括: " );
while (e.hasMoreElements()) {
String key
= e.nextElement();
printStream.println(key
+ " = " + request.getParameter(key));
}
printStream.println();
}

printStream.println(
" 堆栈信息 " );
exception.printStackTrace(printStream);
printStream.println();

out.print(byteArrayOutputStream);
// 输出到网页

File dir
= new File(request.getRealPath( " /errorLog " ));
if ( ! dir.exists()) {
dir.mkdir();
}
String timeStamp
= new SimpleDateFormat( " yyyyMMddhhmmssS " ).format( new Date());
FileOutputStream fileOutputStream
= new FileOutputStream( new File(dir.getAbsolutePath() + File.separatorChar + " error- " + timeStamp + " .txt " ));
new PrintStream(fileOutputStream).print(byteArrayOutputStream); // 写到文件

}
catch (Exception ex) {
ex.printStackTrace();
}
%>
</ pre >
</ div >
</ body >
</ html >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值