各位都知道,我们可以在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("回到上页") 得到的结果是: 回到上页
其他的例如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>之前增加如下代码:
<error-page>
<error-code>404</error-code>
<location>/ErrorPage404.jsp</location>
</error-page>
常见问题及解决:
404错误页出现这个问题,我在web.xml定义了如下的定义,
<error-page>
<error-code>404</error-code>
<location>/error_404.htm</location>
</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的自定义错误页方法
<%
response.setStatus(200); // 200 = HttpServletResponse.SC_OK
%>
分享到:
相关推荐
Tomcat内存溢出是指Tomcat服务器在处理大数据量时出现的内存溢出错误,导致系统崩溃或返回HTTP状态码500的错误页面。本文将详细介绍Tomcat内存溢出之解决方法,包括问题分析、解决方法和结论。 问题分析: Tomcat...
然而,在这一过程中可能会遇到各种问题,比如跳转页面时出现404错误,即服务器无法找到指定资源。本文将围绕这一问题进行深入探讨,并提供相应的解决方案。 #### 问题背景与分析 当我们在Spring Boot项目中使用WAR...
正确配置JAVA_HOME环境变量是启动Tomcat的基础,而处理8080端口被占用的问题对于确保Tomcat能够顺利启动至关重要。此外,熟悉Tomcat的目录结构也有助于更好地管理和维护服务器。希望这些信息能帮助读者顺利完成...
Tomcat中文乱码处理方法是指在使用Tomcat服务器时,遇到中文乱码问题的解决方法。中文乱码是指在网页中显示的中文字符被错误地显示为乱码,影响用户体验和网站的可读性。 第一种解决方法是通过contentType、...
针对64位操作系统上运行Tomcat7时可能会遇到的问题,本文将详细讲解如何处理和配置,确保其正常运行。 首先,让我们关注“tomcat-users.xml”配置问题。这个文件位于Tomcat安装目录的conf目录下,它是Tomcat的安全...
错误处理和日志 Tomcat的日志文件主要分布在`logs`目录下,包括`catalina.out`、`localhost_access_log.*.txt`等。通过分析这些日志,可以解决运行时的问题。 ### 9. 调优与安全 根据应用的需求,可能需要对...
### Tomcat常见错误代码...以上是对Tomcat中常见错误代码的详细解析,希望能帮助开发者快速识别并解决问题。在实际开发过程中,了解这些状态码的意义非常重要,它们不仅有助于调试,还能提高系统的稳定性和用户体验。
此外,它还加强了对HTTPS的支持,提供了更灵活的错误页面处理,并且支持部署目录结构的变化,使得应用部署更加方便。 **Tomcat8**: Tomcat8于2013年发布,主要支持Java Servlet 3.1和JSP 2.3规范。这一版本带来了...
9. **错误处理**:Tomcat 7.0改进了错误页面处理,可以自定义错误页面并提供更友好的错误报告,便于开发者调试。 10. **国际化支持**:Tomcat 7.0增强了对多语言环境的支持,使得全球化的Web应用部署更为方便。 ...
- `tomcatMemory.jsp`可能是一个用于监控Tomcat内存使用情况的页面,它可以帮助开发者分析Tomcat的内存泄漏问题。 - 调整JVM的内存参数(如`Xms`, `Xmx`, `MaxPermSize`, `XX:MaxMetaspaceSize`等)对于优化Tomcat...
除了Servlet的配置外,还包括过滤器(Filter)、监听器(Listener)、会话超时、错误页面等设置。例如,配置一个登录过滤器: ```xml <filter-name>LoginFilter <filter-class>...
2. **路径问题**:确保`location`属性指定的错误页面路径是相对Web应用的根目录,而不是服务器的绝对路径。如果路径不正确,Tomcat将找不到错误页面。 3. **权限问题**:错误页面的访问权限可能不足。确保错误页面...
在网页设计中,404和500错误页面是两个非常重要的元素,它们直接影响到用户的体验和对网站的专业印象。这些错误页面是用户在访问过程中遇到问题时看到的反馈,因此,设计出美观且人性化的404和500错误页面至关重要。...
10. **错误处理**:当发生错误时,Tomcat会生成定制的错误页面。源码中,`ErrorReportValve`类处理错误报告的生成。 通过分析这个源码包,开发者不仅可以了解Tomcat的工作原理,还能学习到Java服务器编程的最佳实践...
若该目录缺失,Tomcat在处理JSP页面时会因找不到存储位置而报错。解决方法是在相应位置创建该目录,并确保其具有适当的读写权限。 #### 3. 应用程序依赖问题 Tomcat 5.5在启动时,会尝试加载所有部署的应用程序。...
6. **配置JSP和Servlet**:在`conf/web.xml`文件中,您可以配置全局的JSP和Servlet设置,比如错误处理、过滤器和监听器等。此外,每个Web应用程序都有自己的`WEB-INF/web.xml`,用于应用级别的配置。 7. **日志和...
Tomcat7服务器web开发 Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。
7. **异常处理**:Tomcat的错误页面和异常处理机制,以及如何自定义错误页面。 8. **性能优化**:通过调整Tomcat的配置参数,如最大连接数、线程池大小、缓冲区大小等,可以显著提升应用性能。 9. **JMX监控**:...
4. **更好的错误处理**:提供了自定义错误页面和更详细的错误信息,便于调试。 5. **安全增强**:支持JAAS集成,增强了安全管理,如角色认证和授权。 **Tomcat8** Tomcat8于2013年发布,主要支持Java EE 7规范,...