在开发过程中使用了springmvc框架,其中刚开始时在web.xml中设定了errorpage的指定页面。配置如下:
<!-- 错误跳转页面 -->
<error-page>
<!-- 路径不正确 -->
<error-code>404</error-code>
<location>/WEB-INF/pages/404.jsp</location>
</error-page>
<error-page>
<!-- 请求方法不正确 -->
<error-code>405</error-code>
<location>/WEB-INF/pages/404.jsp</location>
</error-page>
<error-page>
<!-- 没有访问权限,访问被禁止 -->
<error-code>401</error-code>
<location>/WEB-INF/pages/401.jsp</location>
</error-page>
<error-page>
<!-- 内部错误 -->
<error-code>500</error-code>
<location>/WEB-INF/pages/500.jsp</location>
</error-page>
后来在开发过程中,发现我们的头部有一些公共信息,需要传参进来,由于这种错误页面是直接跳转的,不会经过controller,所以没有带过参数来。后来经过一翻讨论,排除了使用cookie的方式来解决。主要是因为使用cookie有两个不好的地方:1.信息暴露;2.扩展性差(以后增加更多的参数时,cookie会变大)。
最后采用了一种比较折中的方案,就是errorpage中的location跳转到一个隐藏页面(jsp),