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错误码,比如404500
  • exception-type,可选,Java异常的完全限定类名,比如java.io.IOExceptionjava.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

标签: Java, servlet, error-page, ie

添加新评论