Servlet:未触发自定义401页面

时间:2012-02-18 23:31:08

标签: tomcat servlets

我注册了一个错误页面:

<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页面,但邮件为空。

1 个答案:

答案 0 :(得分:0)

AFAIK jsp应位于WEB-INF外部文件夹中,否则您必须使用<jsp-file>标记在web.xml中配置jsp。尝试将401.jsp放在WEB-INF之外。