tomcat - 如何在重定向到错误页面后更改URL

时间:2018-02-13 15:35:36

标签: java tomcat redirect web.xml

我在web.xml中使用以下配置重定向到错误页面

<error-page>
        <error-code>401</error-code>
        <location>/</location>
</error-page>

当401错误发生时,它会重定向到&#39; /&#39;但URI仍然保留。

如果我试图访问本地主机:8080 / account&#39;需要验证的资源,然后重定向正在发生,但URL仍然是#localhost:8080 / account&#39;。

我想知道如何重定向到&#39; /&#39;并将网址设为本地主机:8080 /&#39;

2 个答案:

答案 0 :(得分:0)

您想告诉客户端localhost:8080 / account不存在,因此该资源应报告404状态。为什么要重定向到根目录?根目录存在,因此重定向到根并返回404将是错误的。

error-page指令只是告诉tomcat从哪里为404页面提取自定义HTML样式。客户端不应该被重定向到其他资源,因为 - 如前所述 - 这将完全改变语义。

答案 1 :(得分:0)

<error-page>指令设置进程中转发,而不是客户端重定向(这将是3xx响应)。

如果要将401转换为302,请将<error-page>设置为指向使用Location响应标头将响应代码更改为302的JSP。

请注意,将401响应更改为302响应(在重定向时可能会以200结尾)可能会导致首先获得401响应的目的。