黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

JSP教程
JSP高級教程

JSP調(diào)試

要測試/調(diào)試一個JSP或servlet程序總是那么的難。JSP和Servlets程序趨向于牽涉到大量客戶端/服務(wù)器之間的交互,這很有可能會產(chǎn)生錯誤,并且很難重現(xiàn)出錯的環(huán)境。

接下來將會給出一些小技巧和小建議,來幫助您調(diào)試程序。

使用System.out.println()

System.out.println()可以很方便地標記一段代碼是否被執(zhí)行。當然,我們也可以打印出各種各樣的值。此外:

● 自從System對象成為Java核心對象后,它便可以使用在任何地方而不用引入額外的類。使用范圍包括Servlets,JSP,RMI,EJB's,Beans,類和獨立應(yīng)用。

● 與在斷點處停止運行相比,用System.out進行輸出不會對應(yīng)用程序的運行流程造成重大的影響,這個特點在定時機制非常重要的應(yīng)用程序中就顯得非常有用了。

接下來給出了使用System.out.println()的語法:

System.out.println("Debugging message");

這是一個使用System.out.print()的簡單例子:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>System.out.println</title></head>
<body>
<c:forEach var="counter" begin="1" end="10" step="1" >
   <c:out value="${counter-5}"/></br>
   <% System.out.println( "counter= " +                       pageContext.findAttribute("counter") ); %>
</c:forEach>
</body>
</html>

現(xiàn)在,如果運行上面的例子的話,它將會產(chǎn)生如下的結(jié)果:

-4
-3
-2
-1
0
1
2
3
4
5

如果使用的是Tomcat服務(wù)器,您就能夠在logs目錄下的stdout.log文件中發(fā)現(xiàn)多出了如下內(nèi)容:

counter=1
counter=2
counter=3
counter=4
counter=5
counter=6
counter=7
counter=8
counter=9
counter=10

使用這種方法可以將變量和其它的信息輸出至系統(tǒng)日志中,用來分析并找出造成問題的深層次原因。

使用JDB Logger

J2SE日志框架可為任何運行在JVM中的類提供日志記錄服務(wù)。因此我們可以利用這個框架來記錄任何信息。

讓我們來重寫以上代碼,使用JDK中的 logger API:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="java.util.logging.Logger" %>

<html>
<head><title>Logger.info</title></head>
<body>
<% Logger logger=Logger.getLogger(this.getClass().getName());%>

<c:forEach var="counter" begin="1" end="10" step="1" >
   <c:set var="myCount" value="${counter-5}" />
   <c:out value="${myCount}"/></br>
   <% String message = "counter="                   + pageContext.findAttribute("counter")                   + " myCount="                   + pageContext.findAttribute("myCount");                   logger.info( message );    %>
</c:forEach>
</body>
</html>

它的運行結(jié)果與先前的類似,但是,它可以獲得額外的信息輸出至stdout.log文件中。在這我們使用了logger中的info方法。下面我們給出stdout.log文件中的一個快照:

24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=1 myCount=-4
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=2 myCount=-3
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=3 myCount=-2
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=4 myCount=-1
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=5 myCount=0
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=6 myCount=1
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=7 myCount=2
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=8 myCount=3
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=9 myCount=4
24-Sep-2013 23:31:31 org.apache.jsp.main_jsp _jspService
INFO: counter=10 myCount=5

消息可以使用各種優(yōu)先級發(fā)送,通過使用sever(),warning(),info(),config(),fine(),finer(),finest()方法。finest()方法用來記錄最好的信息,而sever()方法用來記錄最嚴重的信息。

使用Log4J 框架來將消息記錄在不同的文件中,這些消息基于嚴重程度和重要性來進行分類。

調(diào)試工具

NetBeans是樹形結(jié)構(gòu),是開源的Java綜合開發(fā)環(huán)境,支持開發(fā)獨立的Java應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,同時也支持JSP調(diào)試。

NetBeans支持如下幾個基本的調(diào)試功能:

● 斷點

● 單步跟蹤

● 觀察點

詳細的信息可以查看NetBeans使用手冊。

使用JDB Debugger

可以在JSP和servlets中使用jdb命令來進行調(diào)試,就像調(diào)試普通的應(yīng)用程序一樣。

通常,我們直接調(diào)試sun.servlet.http.HttpServer 對象來查看HttpServer在響應(yīng)HTTP請求時執(zhí)行JSP/Servlets的情況。這與調(diào)試applets非常相似。不同之處在于,applets程序?qū)嶋H調(diào)試的是sun.applet.AppletViewer。

大部分調(diào)試器在調(diào)試applets時都能夠自動忽略掉一些細節(jié),因為它知道如何調(diào)試applets。如果想要將調(diào)試對象轉(zhuǎn)移到JSP身上,就需要做好以下兩點:

● 設(shè)置調(diào)試器的classpath,讓它能夠找到sun.servlet.http.Http-Server 和相關(guān)的類。

● 設(shè)置調(diào)試器的classpath,讓它能夠找到您的JSP文件和相關(guān)的類。

設(shè)置好classpath后,開始調(diào)試sun.servlet.http.Http-Server 。您可以在JSP文件的任意地方設(shè)置斷點,只要你喜歡,然后使用瀏覽器發(fā)送一個請求給服務(wù)器就應(yīng)該可以看見程序停在了斷點處。

使用注釋

程序中的注釋在很多方面都對程序的調(diào)試起到一定的幫助作用。注釋可以用在調(diào)試程序的很多方面中。

JSP使用Java注釋。如果一個BUG消失了,就請仔細查看您剛注釋過的代碼,通常都能找出原因。

客戶端和服務(wù)器的頭模塊

有時候,當JSP沒有按照預(yù)定的方式運行時,查看未加工的HTTP請求和響應(yīng)也是很有用的。如果對HTTP的結(jié)構(gòu)很熟悉的話,您可以直接觀察request和response然后看看這些頭模塊到底怎么了。

重要調(diào)試技巧

這里我們再透露兩個調(diào)試JSP的小技巧:

● 使用瀏覽器顯示原始的頁面內(nèi)容,用來區(qū)分是否是格式問題。這個選項通常在View菜單下。

● 確保瀏覽器在強制重新載入頁面時沒有捕獲先前的request輸出。若使用的是Netscape Navigator瀏覽器,則用Shift-Reload;若使用的是IE瀏覽器,則用Shift-Refresh。

全部教程
主站蜘蛛池模板: 成人国产在线视频 | 男女在线播放 | 放一个特别黄的录像 | 成年免费大片黄在线观看com | 黄茄子视频 | 免费观看欧美一级片 | 日韩资源在线观看 | 天堂五月天 | 老司机精品久久最新免费 | 九九精品视频一区二区三区 | 中文字幕日韩欧美一区二区三区 | 婷婷六月久久综合丁香乐透 | 亚洲乱人伦精品图片 | 日本韩国欧美在线观看 | 手机在线免费观看毛片 | 日韩国产欧美精品综合二区 | 久操精品| 久久免费毛片 | 日韩欧美在线视频 | 日韩久久久精品首页 | 免费一级特黄欧美大片勹久久网 | 亚洲人体在线 | 日韩久久久精品首页 | 欧美高清一区二区三区欧美 | 在线观看国产精品日本不卡网 | 手机在线视频一区 | 日韩中文字幕一区 | 青青成人福利国产在线视频 | 69国产成人综合久久精 | 国产成人精品日本亚洲语言 | 天天好比网 | 在线观看免费播放网址成人 | 免费久久久久 | 日韩理论在线观看 | 欧美一级日韩 | 在线亚洲不卡 | 色偷偷视频 | 玖玖玖精品视频免费播放 | 91精品国产乱码在线观看 | 久久一级毛片 | 真人一级毛片免费完整视 |