web.xml的error-page设置在IE浏览器中的显示问题
servlet规范中web.xml中有error-page的定义:
The optional error-page element specifies a mapping between an error code or exception type to the path of a resource in the Web application.
error-page下有3个元素:
- error-code,可选,HTTP错误码,比如404,500等
- exception-type,可选,Java异常的完全限定类名,比如java.io.IOException,java.lang.IndexOutOfBoundsException
- location,必须,要访问的资源地址,比如/404.html,/500.jsp,/1024.do
注意:error-code和exception只能有一个,不能同时存在。
但是在IE下,出错后不会跳转到对应的错误页面,只会显示IE的404,500错误。
stackoverflow上有解释,说这个是IE的特性。当从服务器返回的错误页面小于512bytes时,IE会默认显示友好的错误页面。但是你可以修改,路径是工具>Internet选项>高级>显示友好的HTTP错误信息,将该项取消勾选即可。另外,你可以可以将你的HTTP错误页面大小控制在512bytes上来避免IE的这个特性。你可以通过加入额外的HTTP头部信息,添加空格来缩进代码,或者在你的标准布局文件中添加一些语义标签,或者添加大量的HTML注释等。反正使得你的错误返回页面大小大雨512bytes即可。
具体可以查看下面这几个链接:
http://stackoverflow.com/questions/9022932/custom-http-error-page-is-not-displayed-in-internet-explorer