您的位置:首页 > 运维架构 > Tomcat

Tomcat设置404错误页无法正确定向

2012-06-18 14:47 253 查看
在开始动手之前,我一般习惯整体盘算一遍,这样感觉下起手来,比较顺. 只是有时盘算的过于细致,往往会被某个小细节拖住步子. 所以这个时候,老大总会叫我move on,先把架子搭起来,如果什么都考虑,那么永远也无法前进.

做了一些东西之后,真的发现这个理想中成立实际中困难的理论. 设想,最好把目光放在方向上.

       先感叹一下.
       404错误页出现这个问题,我在web.xml定义了如下的定义,

    <error-page>

    <error-code>404</error-code>

    <location>/error_404.htm</location>

  </error-page>

    路径的是对的,奇怪的是我测试时输入一个不存在的页,出现404错误提示出现的却不是我所定义的页面,这就怪了.我记得在weblogic中我也是这样定义的,所以我首先想到的时服务器的问题. 只是这种问题,不要分析,我试着在javaworld发了一贴,问了一下. 二楼给了一个链接, 我进去才发现这个问题已经有很多人在讨论了.这是实际出问题,要是一直照着课本,应该不会想到这些问题,只是自己实际操作的才发现这些.

通看了所有的帖子,出现这种问题,主要有以下几个因素:

1.使用 tomcat 服务器

2.tomcat服务器版本

3.浏览器问题

4.IE的设置

5.错误页本身的大小

第一点,我想我的经历应该可以算个证明.

第二点.很多人用tomcat5.5可以顺利的找到错误页

第三点.换了一下FF,可以顺利找到指定的错误页

第四点.我设置了 工具-->Internet选项-->高级--->显示http友好错误信息(取消选择) ,可以顺利定向到指定错误页,

           说明可以

第五点,我试着发狠输了一大堆东西进去, 指定错误页顺利出现了.

下面是提供的解决方法:

1.升级tomcat (换成其它服务器,代价沉重)

2.ie 设定   工具-->Internet选项-->高级--->显示http友好错误信息(取消选择) ,

3. 把错误页做大一点,具体几个字节,没测试,估计三四百足够了, (加一个div块,display设为none就可以了)

4.设置指定错误页页状态为正确,骗过IE的自定义错误页 方法

<%

    response.setStatus(200); // 200 = HttpServletResponse.SC_OK

%>

经测试,当在jsp文件设置了errorPage的时候,如<%@ page errorPage="errorPage.jsp" %>,出错后不能正确跳转到指定的页面errorPage.jsp,原因可能是一样的,可以用上面的方法解决。本人使用的Tomcat的版本是Tomcat 5.0.28,正验证了文中的说法,估计可能是Tomcat 低版本中的一个Bug。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息