response.sendError出现IllegalStateException

struts2 Dispatcher.sendError

会把异常放到两个属性里

                // WW-1977: Only put errors in the request when code is a 500 error
                if (code == HttpServletResponse.SC_INTERNAL_SERVER_ERROR) {
                    // send a http error response to use the servlet defined error handler
                    // make the exception availible to the web.xml defined error page
                    request.setAttribute("javax.servlet.error.exception", e);

                    // for compatibility
                    request.setAttribute("javax.servlet.jsp.jspException", e);
                }

在设置完属性之后调用

                // send the error response
                response.sendError(code, e.getMessage());

这时,sendError出现IllegalStateException错误

             request.setAttribute("javax.servlet.error.exception", e);

    将会被覆盖变成了IllegalStateException,丢失了原有的异常信息

导致在500页面始终输出的是错误的异常信息

    可以通过获得javax.servlet.jsp.jspException的异常,这个为了兼容老的servlet规范放入的

通常web容器不会覆盖,可以找回丢失的异常

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值