首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Tomcat对异常页面处理方法的有关问题

2012-06-28 
Tomcat对错误页面处理方法的问题各位都知道,我们可以在web.xml中定义对错误发生时的提示页面,例如error-p

Tomcat对错误页面处理方法的问题

各位都知道,我们可以在web.xml中定义对错误发生时的提示页面,例如

<error-page>?
??<error-code>500</error-code>?
??<location>/500.vm</location>
</error-page>

在这里我是用一个Velocity的模板页面来负责提示错误信息, 这个配置指明了当程序出现500错误的时候就执行500.vm这个页面.

在编写500.vm这个页面的时候有两个地方需要注意的

第一是编码问题(又是编码问题):Tomcat对这个页面总是用ISO8859_1编码进行处理,所以你对页面再怎么设置编码方式,出来的中文信息都会全变成问号. 因此我们需要顺应Tomcat的做法,将所有的中文字转成ASCII的表达方式,如果是velocity,那你可以用$escape.html("")这个方法来将中文转成ASCII码,例如 $escape.html("回到上页") 得到的结果是: &#22238;&#21040;&#19978;&#39029;

其他的例如JSP可以参考相应的处理办法.

第二个问题是如何获取所发生的异常信息

因为500错误是服务器内部错误,一般是我们的应用发生了异常,我们需要在错误处理页面中获取到这个异常然后显示相应的信息. 正规Servlet容器通过下面的代码即可取出异常

Throwable t = (Throwable)request.getAttribute(PageContext.EXCEPTION);

偏偏这行代码在Tomcat下取到的都是null, Tomcat容器你必须用下面这个语句来取异常信息

Throwable t = (Throwable)request.getAttribute("javax.servlet.error.exception");

?

==========================================

在Tomcat安装目录下的conf/web.xml最后的</web-app>之前增加如下代码:


Tomcat对异常页面处理方法的有关问题<error-page>
Tomcat对异常页面处理方法的有关问题??????????????????????????<error-code>404</error-code>
Tomcat对异常页面处理方法的有关问题??????????????????????????<location>/ErrorPage404.jsp</location>
Tomcat对异常页面处理方法的有关问题</error-page>
常见问题及解决:
404错误页出现这个问题,我在web.xml定义了如下的定义,


Tomcat对异常页面处理方法的有关问题????<error-page>
Tomcat对异常页面处理方法的有关问题????<error-code>404</error-code>
Tomcat对异常页面处理方法的有关问题????<location>/error_404.htm</location>
Tomcat对异常页面处理方法的有关问题??</error-page>
??? 路径的是对的,奇怪的是我测试时输入一个不存在的页,出现404错误提示出现的却不是我所定义的页面,这就怪了.我记得在weblogic中我也是这样定 义的,所以我首先想到的时服务器的问题. 只是这种问题,不要分析,我试着在javaworld发了一贴,问了一下. 在google上搜了一下,才发现很多人都出现过这个问题.这是实际出问题,要是一直照着课本,应该不会想到这些问题,只是自己实际操作的才发现这些.

通看了所有的帖子,出现这种问题,主要有以下几个因素:
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的自定义错误页方法



Tomcat对异常页面处理方法的有关问题<%
Tomcat对异常页面处理方法的有关问题???? response.setStatus(200); // 200 = HttpServletResponse.SC_OK
Tomcat对异常页面处理方法的有关问题%>

热点排行