我注册了一个错误页面:
<error-page>
<error-code>401</error-code>
<location>/WEB-INF/exceptions/401.jsp</location>
</error-page>
我在Servlet中触发错误:
response.sendError(401, "message here");
401.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
...
<body>
<h1>Unauthorized (401)</h1>
<p><%= exception.getMessage() %></p>
</body>
</html>
不幸的是,只有'通用'401页面被显示出来。
我重启了应用程序和Tomcat,但没有改变。
我错过了什么?
**编辑0 **
我包含了JSP文件的代码。
问题似乎是<%= exception.getMessage() %>
代码。如果删除,则会按预期显示自定义页面。如果存在,则显示“通用”消息。
我替换了这个JSTL ${pageContext.errorData.throwable.message}
。将显示自定义401页面,但邮件为空。
答案 0 :(得分:0)
AFAIK jsp应位于WEB-INF
外部文件夹中,否则您必须使用<jsp-file>
标记在web.xml中配置jsp。尝试将401.jsp放在WEB-INF
之外。