JSP中内建exception对象时出现500错误的解决方法
本文实例讲述了JSP中内建exception对象时出现500错误的解决方法。分享给大家供大家参考,具体如下:
尝试使用JSP的内建exception对象,写了下面三个文件。思路很简单,文件index若提交字串为空,则get抛出异常,交由error.jsp处理。但实际却不能正常运行,会出现IE的500错误页面。环境为Tomcat 5.5,IE6.0。
在sun的论坛上有人贴出了原因,是IE的某个设置。Tomcat5.0以后的版本error page在处理时会返回error code 500。而IE得到code 500后会检查该页面的长度,当长度低于某个值时,它会用自己默认的500出错页面来代替制定的error page。它称之为“用户友好性”(这个问题耗了我不少时间,一点也不友好来着)。
那么解决方法可以是修改IE
设置:取消IE“工具--Internet选项--高级--显示友好HTTP错误信息”选项;或者增加你的error page的长度。
index.jsp
<html> <head> <title>index</title> <head> <body> <form action="get.jsp" method="get"> <input type="text" name="text"><br> <input type="submit" value="submit"> </form> </body> </html>
get.jsp
<%@page language="java" errorPage="error.jsp"%> <html> <head> <title>index</title> <head> <body> <% String getText = request.getParameter("text"); out.print(getText); if (getText.equals("")) { out.print("empty"); throw new Exception("empty value"); } %> </body> </html>
error.jsp
<%@page language="java" isErrorPage="true"%> <html> <head> <title>index</title> <head> <body> <% out.print(exception.getMessage()); %> </body> </html>
个人总结
所谓增加长度,就是在error.jsp文件中,多复制些文字内容,就能正常运行了。
希望本文所述对大家JSP程序设计有所帮助。
相关文章
JSP中response.setContentType和response.setCharacterEncoding区别分
这篇文章主要介绍了JSP中response.setContentType和response.setCharacterEncoding区别分析,较为详细的分析了response.setContentType和response.setCharacterEncoding的功能与具体使用技巧,需要的朋友可以参考下2015-10-10在JSTL EL中处理java.util.Map,及嵌套List的情况
在EL中,方括号运算符用来检索数组和集合的元素。对于实现 java.util.Map 接口的集合,方括号运算符使用关联的键查找存储在映射中的值。2009-03-03
最新评论