gpt4 book ai didi

jsp - web.xml 中的错误页面

转载 作者:行者123 更新时间:2023-11-28 21:52:26 24 4
gpt4 key购买 nike

我有这样的问题:我在 web.xml 中设置了 java.lang.Exception 类型的默认错误页面,因此它必须显示在 servlet 和 jsp 中的所有异常上。但是当我想测试这个页面(我关闭连接)时,它在浏览器中不适用。在测试的servlet中我使用数据库,所以如果没有连接它会抛出异常。在 servlet 中,我捕获了这个异常并 throw new ServletException()。同样在 catch block 中,我首先记录消息,然后抛出异常。那么为什么我的tomcat不显示这个错误页面呢?而不是它显示空白页面,在服务器输出中我可以看到这些错误消息

编辑

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

我将错误页面保存在/errorPages以及必须显示的页面称为 InternalError.jsp

移动到使用 El 显示来自数据库的数据的 jsp 页面后必须显示此页面,该 jsp 中的数据落在 session 中抛出对象

最佳答案

在这种情况下,当响应已经由导致异常的 servlet 或 JSP 提交时,您将得到一个空白页面。换句话说,当 HTTP 响应 header 已经发送到 Web 浏览器时。这是一个不归路点。

为防止这种情况,您需要确保仅在所有 业务代码完成其工作时才开始写入响应(最好不要在 servlet 中这样做,而只是转发到 JSP),并且您的 JSP 包含任何单行业务代码(通常由 scriptlet <% %> 表示)。

因此,例如,如果您在 servlet 中执行此操作

response.getWriter().write("blah");
throw new ServletException("epic fail");

或者在 JSP“中途”抛出异常

<p>Some HTML</p>
<% throw new ServletException("epic fail"); %>
<p>Some more HTML</p>

那么得到空白页的风险就很大。

关于jsp - web.xml 中的错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com