自定义错误页,并捕获异常到数据库

web.xml中添加这一段,处理404等状态信息,注意是error-code

<error-page>
<error-code>400</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>401</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>503</error-code>
<location>/_error.htm</location>
</error-page>
<error-page>
<error-code>505</error-code>
<location>/_error.htm</location>
</error-page>


web.xml中添加这一段,处理异常信息,注意是exception-type

<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/_error.jsp</location>
</error-page>


这样以来,出现404等错误的时候,就转到_error.htm页面了,出现异常则转到_error.jsp页面。

[color=red]没搞明白的是,404里面,如果往jsp页面转的话,转不了,只能写成htm后缀的,这应该不是问题,有时间再处理。[/color]

在_error.jsp页面中,截取exception并保存到数据库:


System.out.println("----------------------------------------------------------");
System.out.println("记录异常:");
System.out.println("----------------------------------------------------------");
StringBuffer str = new StringBuffer();
str.append("<div>系统执行发生错误,信息描述如下:</div>");
str.append("<div>status:" + pageContext.getErrorData().getStatusCode() + "</div>");
str.append("<div>from page:" + pageContext.getErrorData().getRequestURI() + "</div>");
str.append("<div>exception:" + pageContext.getErrorData().getThrowable() + "</div>");
str.append("<div>");
str.append(" Trace:");
str.append("<hr />");

StackTraceElement[] stackTraceElement = pageContext.getException().getStackTrace();
for(StackTraceElement stack : stackTraceElement){
str.append("    " + stack + "<br />");
}
str.append("</div>");
Dao.getCommonFacade().update("insert into gg_exception (id,content,fbsj) values ('"+ StringUtil.getUUID() +"','"+ str.toString() +"',"+ DateUtil.getCurrentDate14() +")");



至于_error.jsp里面显示的信息,就随自己写了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值