我在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;
答案 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响应的目的。