kay*_*ahr 6 java jsp tomcat java-ee
我有一个JSP页面(在Tomcat中),它使用JSP标签来检索一些数据.但是这些JSP标记可以抛出异常(例如,当参数值无效时).现在我想为这些情况实现更好的错误处理.我没有找到GLOBALLY指定异常处理程序的方法(web.xml中的错误页面定义不适用于JSP中抛出的异常).到目前为止我找到的唯一方法是在所有JSP文件的页眉中指定errorPage属性.
<% page errorPage="/WEB-INF/jsp/errors/500.jsp" %>
Run Code Online (Sandbox Code Playgroud)
对所有JSP执行此操作非常烦人,但可以接受.但不能接受的是,错误页面始终以HTTP状态代码200提供.我想要500而不是.我尝试使用servlet作为errorPage而不是JSP,并尝试设置response.setStatus(500)和response.sendError(500),但两个调用似乎都被忽略了.所以这段代码打印"200"两次,我不明白为什么:
System.out.println(response.getStatus());
response.setStatus(500);
System.out.println(response.getStatus());
Run Code Online (Sandbox Code Playgroud)
所以问题是:如何在JSP错误处理程序中设置HTTP状态代码?
您可以在 中配置错误页面web.xml。
<error-page>
<error-code>
500
</error-code>
<location>
/500.jsp
</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
在你的 中500.jsp,将指令设置为<%@ page isErrorPage="true" %>
| 归档时间: |
|
| 查看次数: |
21760 次 |
| 最近记录: |