v 错误处理和调试
Jsp容器要求必须完全按照JSP规范中的定义写出每一个JSP元素,这样才能正确的处
理JSP页面。当它发现有什么东西不正确时,就会通知你。但通知的形式根据不同的容
器各有不同,如服务器发现错误,JSP容器知要求返回一个带有针对服务器错误的(500)
的HTTP状态码的应答。
Ø 异常:当某个Java方法中有什么东西发生了错误,它通常会抛出一个异常。异常是一个
特殊的Java对象。抛出一个异常就是一个方法表明自己不知道如何处理某个问题,有
时程序的另一部分可以妥善的处理这个问题,但在许多情况下最好还是告诉用户这个错
误,然后继续前进。
Ø 元素的语法错误
例:1+2+3=<c:out value=”${1+2+3}”>
错误:没有被正确的结束“/>”
错误信息:End of content reached while more parsing required:tag nesting error?
说明:因为这是带有行为体的JSP行为的正确的语法,因此JSP容器不能正确的辨别这
是一个语法错误,相反,它会视其为带有行为元素的开始标记,直到文件结束时,它才
报告没有找到结束标记,因此错误信息没有提供错误发生位置的具体信息。
例:1+2+3=<c:out value=”${1+2+3} default=”Doh!”/>
错误:漏掉了值属性结束处的引号
错误信息:/calc.jsp(10,56) Attribute Doh! Has no value
说明:Tomcat将第2个引号之前的所有内容作为了value的属性值,然后假定下一个单
词(这里是)Doh!)是一个属性,但Doh!后没有跟着等号,所以Tomcat报告该属性没
有值。
例:忘记在页面中添加taglib指令,而使用标记。这样讲不会导致Tomcat报告任何错误。
但所有的自定义行为元素都会被看作模板文本直接输出到页面。
Ø 对于请求时才会捕获的错误,Tomcat只能报告出错信息,但不能报告错误行号。
Ø <c:catch>
属性:var在行为体中的元素抛出java.lang.Throwable的情况下,保存它的变量名称