• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

servlet/jsp 搞代码 7年前 (2018-06-18) 216次浏览 已收录 0个评论

_始撰jsPr,是jsp的除e息所困_,如果]有稍微t解JSPcServlet之g/作PS的初W者,所看到的只是一堆除e息,甚至例外l生的息,@些息m然包括的e`息,但冻W者而言s是不友善、不易x理解的。基本上,只要t解JSPcServlet之g的/作PS,Kt解javag息c例外恚t解在撰JSPWr,因e`而a生的e`蟾骓面就不是件y事。

我知道JSPK究DQServlet,而/行r真正幼鞯氖Servlet,所以e`可能l生在r候:一是JSPDQServlet原始ar,因JSPZ法e`而еo法生成Servlet原始a,或是已DQServlet程式a,但grg器z查出e`,@Q之Translation Time Processing Errors;第二e`l生的r期在於客粽求绦Servletr,因槌淌竭或/行r未考]到的e`而a生例外,@Q之Client Request Time Processing Errors。

如何在JSP/行r判ee`l生的N?如果e`蟾骓面出F"….encountered an internal error….",就有可能是DQr期e`,或是"Generated servlet error: [javac] Compiling 1 source file….",就有可能是g器在gServlet程式arlFe`,@r候您必z查一下JSPZ法是否有e`,或是程式有明@可g器z查出的e`。

http://www.gaodaima.com/42165.html

什N是程式有明@g器z查出的e`?一初W者^常犯但不容易z查出的e`可能是「多N的嘈小梗纾

<%@page contentType="charset=Big5" errorPage="errorhandler.jsp"%><% throw new Exception("@是一假b的e`,/G出例外^_^");%>

@JSP程式乍看之下]有e`,我只是G出一例外而已,但注意到它最底下空了一行,在DQServlet之後,@一行HDQout.write(‘/r’);,而在@行之前,我直接G出了一例外,Q句f,out.write(‘/r’);@行永h不绦械剑@e`,g器是可以z查的出的,因而e`面"unreachable statement",改正@e`的方式,是JSP面中多N的嘈h掉。

如果g^後的Servlet在使用者求之後,在/行^程中a生了e`而G出例外,@例外如果]有被恚t最後Container恚Container再⒂息交由Server骰亟o客舳耍旧弦彩霈F"….encountered an internal error….",不^在回箜面中霈F例外的堆B追息,依此您可以判是Client Request Time Processing Errors。

您也可以自例外l生r的矸绞剑灰褂page指令元素r,O定傩errorPage指定e`淼JSP面,而e`淼JSP面tO定isErrorPage傩true即可,例如我的示面errordemo.jsp是:

<%@page contentType="charset=Big5" errorPage="errorhandler.jsp"%><% throw new Exception("@是一假b的e`,/G出例外^_^");%>

@面只是/G出一我自的例外,注意我O定例外的眄面是errorhandler.jsp,它的热菔牵

<%@page contentType="text/html;charset=Big5" isErrorPage="true"%><%@page import="java.io.PrintWriter"%><html><head><title>e`眄面</title></head><body> <H1>Wl生e`:</H1><%=exception%> <H2>@示例外堆B追:</H2> <% exception.printStackTrace(new PrintWriter(out)); %></body></html>

exception物件是JSP的[含物件,由errordemo.jspG出的例外物件息就包括在exception之中,我先蔚娘@示toString()之後的息,也就是<%=exception%>@示的热荩涣硗馕也可以⒗舛询B追@示出恚printStackTrace()接受一PrintWriter物件作担晕out[含物件(它是JspWriter)bPrintWriter物件,如此使用exception的printStackTrace()方法盹@示例外堆B追。

@例子的绦薪Y果如下:

<html><head><title>e`眄面</title></head><body> <h1>Wl生e`:</h1>java.lang.Exception: @是一假b的e`,/G出例外^_^ <h2>@示例外堆B追:</h2> java.lang.Exception: @是一假b的e`,/G出例外^_^ at org.apache.jsp.errordemo_jsp._jspService(errordemo_jsp.java:45) at ……… 略 at java.lang.Thread.run(Thread.java:534)</body></html>

欢迎大家阅读《》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址