您好,登錄后才能下訂單哦!
這篇文章主要介紹“JSP調(diào)試技巧有哪些”,在日常操作中,相信很多人在JSP調(diào)試技巧有哪些問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JSP調(diào)試技巧有哪些”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
使用System.out.println()
System.out.println()可以很方便地標(biāo)記一段代碼是否被執(zhí)行。當(dāng)然,我們也可以打印出各種各樣的值。此外:
1.自從System對象成為Java核心對象后,它便可以使用在任何地方而不用引入額外的類。使用范圍包括Servlets,JSP,RMI,EJB’s,Beans,類和獨立應(yīng)用。
2.與在斷點處停止運行相比,用System.out進行輸出不會對應(yīng)用程序的運行流程造成重大的影響,這個特點在定時機制非常重要的應(yīng)用程序中就顯得非常有用了。
接下來給出了使用System.out.println()的語法:
System.out.println("Debugging message");
這是一個使用System.out.print()的簡單例子:
"c" uri="http://java.sun.com/jsp/jstl/core" %>System.out.println"counter" begin="1" end="10" step="1" > "${counter-5}"/> "counter= " + pageContext.findAttribute("counter") ); %>
現(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:
"c" uri="http://java.sun.com/jsp/jstl/core" %> "java.util.logging.Logger" %>Logger.info"counter" begin="1" end="10" step="1" > set var="myCount" value="${counter-5}" /> "${myCount}"/> "counter=" + pageContext.findAttribute("counter") + " myCount=" + pageContext.findAttribute("myCount"); logger.info( message ); %>
它的運行結(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()方法用來記錄最嚴(yán)重的信息。
使用Log4J 框架來將消息記錄在不同的文件中,這些消息基于嚴(yán)重程度和重要性來進行分類。
調(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)試功能:
1.斷點
2.單步跟蹤
3.觀察點
詳細(xì)的信息可以查看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時都能夠自動忽略掉一些細(xì)節(jié),因為它知道如何調(diào)試applets。如果想要將調(diào)試對象轉(zhuǎn)移到JSP身上,就需要做好以下兩點:
1.設(shè)置調(diào)試器的classpath,讓它能夠找到sun.servlet.http.Http-Server 和相關(guān)的類。
2.設(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消失了,就請仔細(xì)查看您剛注釋過的代碼,通常都能找出原因。
客戶端和服務(wù)器的頭模塊
有時候,當(dāng)JSP沒有按照預(yù)定的方式運行時,查看未加工的HTTP請求和響應(yīng)也是很有用的。如果對HTTP的結(jié)構(gòu)很熟悉的話,您可以直接觀察request和response然后看看這些頭模塊到底怎么了。
重要調(diào)試技巧
這里我們再透露兩個調(diào)試JSP的小技巧:
1.使用瀏覽器顯示原始的頁面內(nèi)容,用來區(qū)分是否是格式問題。這個選項通常在View菜單下。
2.確保瀏覽器在強制重新載入頁面時沒有捕獲先前的request輸出。若使用的是Netscape Navigator瀏覽器,則用Shift-Reload;若使用的是IE瀏覽器,則用Shift-Refresh。
到此,關(guān)于“JSP調(diào)試技巧有哪些”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。