使用lomboz調(diào)試JSP
發(fā)表時(shí)間:2024-01-18 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]前言 凡是有JSP編寫(xiě)經(jīng)驗(yàn)的人都有JSP調(diào)試?yán)щy的體會(huì)。由于自動(dòng)化調(diào)試工具的缺乏使得在調(diào)試JSP時(shí)不得不在文件中大量的使用打印語(yǔ)句。這種做法對(duì)于定位JSP范圍內(nèi)的錯(cuò)誤是一個(gè)簡(jiǎn)單有效的手段,但如何快速有效的定位在JSP中調(diào)用的對(duì)象的內(nèi)部錯(cuò)誤就顯得有點(diǎn)力不從心了。因?yàn)檫@樣將不得不頻繁地編譯、發(fā)布...
前言
凡是有JSP編寫(xiě)經(jīng)驗(yàn)的人都有JSP調(diào)試?yán)щy的體會(huì)。由于自動(dòng)化調(diào)試工具的缺乏使得在調(diào)試JSP時(shí)不得不在文件中大量的使用打印語(yǔ)句。這種做法對(duì)于定位JSP范圍內(nèi)的錯(cuò)誤是一個(gè)簡(jiǎn)單有效的手段,但如何快速有效的定位在JSP中調(diào)用的對(duì)象的內(nèi)部錯(cuò)誤就顯得有點(diǎn)力不從心了。因?yàn)檫@樣將不得不頻繁地編譯、發(fā)布、啟停服務(wù)器,給調(diào)試帶來(lái)極大的不便。
傳說(shuō)中所見(jiàn)即所得的JSP調(diào)試工具,就筆者目前掌握的情況來(lái)看,并不存在。如果讀者有這方面信息的希望告知,呵呵。但是JSP的調(diào)試工具卻的確存在,而且它是免費(fèi)的!It’s lomboz。下載地址:http://www.objectlearn.com/products/download.jsp
本文從一個(gè)簡(jiǎn)單的例子出發(fā)來(lái)描述如何使用lomboz來(lái)調(diào)試JSP。本例的開(kāi)發(fā)環(huán)境如下:
-JDK版本:1.4.1;
-JAVA IDE:Eclipse 2.1;
-lomboz:適用于Eclipse2.1的插件;
-JSP/Servlet容器:Tomcat 4.1.18。
lomboz簡(jiǎn)介
嚴(yán)格的說(shuō)lomboz是Eclipse的一個(gè)J2EE的插件,它將很多Java應(yīng)用服務(wù)器、J2EE組件和Web應(yīng)用開(kāi)發(fā)集成到Eclipse中,可以幫助Java開(kāi)發(fā)者使用Eclipse建立、測(cè)試、部署J2EE應(yīng)用。對(duì)于本文的重點(diǎn),JSP的調(diào)試,它也有相關(guān)的支持:
-支持JSP編寫(xiě),包括:語(yǔ)法著色和語(yǔ)法檢查;
-支持JSP的調(diào)試。
對(duì)于JSP的調(diào)試,lomboz的原理是對(duì)要調(diào)試的JSP頁(yè)面所產(chǎn)生的java代碼來(lái)進(jìn)行調(diào)試。整個(gè)調(diào)試過(guò)程與java應(yīng)用程序的調(diào)試過(guò)程一樣,這樣不論是JSP本身的調(diào)試還是被JSP調(diào)用的對(duì)象的調(diào)試本無(wú)縫地聯(lián)結(jié)到了一塊。
在開(kāi)始本文的例子之前,我們先來(lái)看看lomboz的安裝,以及為能正常的使用其JSP調(diào)試功能而進(jìn)行的配置。
安裝和配置
lomboz的安裝過(guò)程非常簡(jiǎn)單,Eclipse的插件安裝過(guò)程大多都非常的簡(jiǎn)單,主要步驟如下:
1.從lomboz的下載地址(http://www.objectlearn.com/products/download.jsp)下載支持Eclipse2.1(或Eclipse的其他版本)的插件。
2.如果Eclipse已運(yùn)行,那么請(qǐng)先關(guān)閉它。
3.把下載的文件解壓到Eclipse安裝目錄下的plugins目錄下。
4.重新啟動(dòng)Eclipse,打開(kāi)“About Eclipse Platform Plug-ins”(Help -> About Eclipse Platform ->Plug-in Details),如果lomboz安裝成功將會(huì)出現(xiàn)有關(guān)它的信息。如下圖:
注:如果想卸掉lomboz,你只需要把plugins目錄下對(duì)應(yīng)lomboz的目錄刪除即可。
5.設(shè)置Lomboz J2EE View,打開(kāi)Window -> Customize Perspective,如圖設(shè)置:
接下來(lái)就是如何配置lomboz使之能正常的工作。與安裝過(guò)程相反,配置過(guò)程可不是那么簡(jiǎn)單的,J。Lomboz的配置步驟如下:
1.配置JDK,選擇“Windows -> Preferences”,選擇Lomboz,進(jìn)行JDK的配置。如圖例:
2. 定義服務(wù)器,如果你的服務(wù)器已經(jīng)包含在Lomboz默認(rèn)的服務(wù)器列表中,這一步可以跳過(guò)。Lomboz默認(rèn)服務(wù)器列表可以通過(guò)在上一步的界面中展開(kāi)Lomboz,然后選擇其中的“Server Definitions”獲得。以下以添加Tomcat4.1.18為例說(shuō)明如何增加一個(gè)服務(wù)器。相關(guān)步驟如下:
a)進(jìn)入Lomboz安裝目錄的servers子目錄,復(fù)制一個(gè).server文件(如tomcat410.server),并將其改名為tomcat418.server。
b)打開(kāi)這個(gè)文件分別改動(dòng)這個(gè)文件的以下位置:
- <serverDefinition ……/>,將其中的name的值改為你想要的一個(gè)名字(如Apache Tomcat v4.1.8),這個(gè)名字用來(lái)顯示在“Server Definitions”界面的服務(wù)器列表部分;
- <property id="serverRootDirectory" ….../>,其中default的值改為你機(jī)器上Tomcat所在的目錄,如D:/Program Files/Java/tomcat-4.1.18;
- <property id="classPathVariableName" ……/>,其中default的值改為任意名字(如TOMCAT418),這個(gè)名字用于代表Lomboz工程的缺省的ClassPath的變量名;
- <property id="classPath" ……/>,其中default的值改為你機(jī)器上Tomcat所在的目錄,如D:/Program Files/Java/tomcat-4.1.18;
c) 添加jasper-runtime.jar。在默認(rèn)情況下TomcatX.server文件中只包含2個(gè)jar文件:servlet.jar和bootstrap.jar,但缺少jasper-runtime.jar。而這個(gè)jar文件在JSP的調(diào)試過(guò)程中起到了非常重要的作用,因此請(qǐng)加上它。給一個(gè)server添加jar有兩種做法:
方法1:
在剛才編輯的.server文件中的<serverClassPath>部分添加一行:<jar type="variable">${classPathVariableName}/common/lib/jasper-runtime.jar</jar>;
方法2:使用“Server Definitions”界面,在此不再贅述。
配置好的服務(wù)器會(huì)在“Server Definitions”窗體中顯示,如下圖:
注:對(duì)于Tomcat4.x的服務(wù)器需要打上補(bǔ)丁才能使Lomboz正常工作,補(bǔ)丁的下載地址:
http://www.sysdeo.com/
至此,Lomboz的安裝和配置已經(jīng)全部完畢,那么讓我們來(lái)創(chuàng)建一個(gè)“Hello World!”的例子來(lái)體會(huì)一下Lomboz調(diào)試JSP的過(guò)程吧。
調(diào)試JSP
創(chuàng)建工程
要想使用Lomboz調(diào)試JSP,首先必須創(chuàng)建一個(gè)Lomboz工程。步驟如下:
1.打開(kāi)File->New->Lomboz J2EE Project,創(chuàng)建一個(gè)名為debugJsp的項(xiàng)目;
2.選擇“Next”進(jìn)入Lomboz工程屬性選擇頁(yè)面,添加Web模塊和所使用的服務(wù)器。由于我們的主要任務(wù)是調(diào)試JSP,因此EJB模塊可以為空。如下圖:
3.選擇Finish,Lomboz工程即創(chuàng)建完畢。此時(shí),Lomboz生成的文件結(jié)構(gòu)如下圖:
接下來(lái),我們就可以創(chuàng)建自己所需要的JSP文件了。在本例中我直接使用默認(rèn)的index.jsp,將它的內(nèi)容改為:
<!-- Copyright (c) 2002 by ObjectLearn. All Rights Reserved. -->
<html>
<head>
<title>Welcome</title>
</head>
<body>
<center><%= "Hello World!"%></center>
</body>
</html>
當(dāng)目前為止,我們調(diào)試JSP的準(zhǔn)備工作大致都完成了,但是對(duì)使用Tomcat4.x的人員還需要多余的步驟(這些步驟主要也是由tomcat4.x本身引起的):
1.在Tomcat的config目錄下的server.xml文件中添加以下行(具體位置請(qǐng)參見(jiàn)server.xml相關(guān)的文獻(xiàn)):
<Context path="/TestJsp" docBase="D:\DebugJsp\debugJsp" workDir="D:\DebugJsp\j2src\org\apache\jsp">
其中,path表示W(wǎng)eb應(yīng)用的URL名字;docBase表示web應(yīng)用的物理位置;workDir表示jsp所對(duì)應(yīng)的java文件產(chǎn)生的位置,必須創(chuàng)建org\apache\jsp這樣的目錄結(jié)構(gòu)和名稱(chēng)。
2.根據(jù)org\apache\jsp在對(duì)應(yīng)的j2src目錄下創(chuàng)建相對(duì)應(yīng)的子目錄結(jié)構(gòu),同時(shí)把j2src設(shè)置為工程的source目錄。
語(yǔ)法檢查
現(xiàn)在,讓我們開(kāi)始享受調(diào)試JSP的過(guò)程吧。在調(diào)試之前,JSP應(yīng)該是沒(méi)有語(yǔ)法錯(cuò)誤的。Lomboz提供了JSP語(yǔ)法檢查的功能,具體操作是:
1.選擇要進(jìn)行語(yǔ)法檢查的JSP文件,單擊鼠標(biāo)右鍵;
2. 選擇Lomboz j2ee… -> Check Jsp Syntax
調(diào)試
解決完語(yǔ)法錯(cuò)誤之后,接下來(lái)就是解決邏輯錯(cuò)誤的時(shí)候了。對(duì)于這種錯(cuò)誤就只能通過(guò)調(diào)試來(lái)解決了。使用Lomboz調(diào)試JSP的過(guò)程與普通JAVA應(yīng)用程序的調(diào)試非常類(lèi)似,因?yàn)樗脑砭褪窍壤梅⻊?wù)器生成JSP對(duì)應(yīng)的JAVA文件,然后對(duì)他們進(jìn)行調(diào)試。
調(diào)試JSP的步驟如下:
1.打開(kāi)Lomboz J2EE View,選擇服務(wù)器,單擊鼠標(biāo)右鍵選擇“debug server”。如圖:
如果.server文件定義正確,Tomcat將會(huì)啟動(dòng)。如果沒(méi)有象預(yù)想的那樣啟動(dòng)Tomcat,那么請(qǐng)從這兩個(gè)方面排錯(cuò):Tomcat環(huán)境變量和Lomboz的server文件。
2.打開(kāi)瀏覽器,如IE,在地址欄中輸入:http://127.0.0.1:8080/debugJsp/index.jsp。如果JSP文件語(yǔ)法沒(méi)有錯(cuò)誤,將會(huì)在工程的j2src\org\apache\jsp目錄下生成這個(gè)JSP文件對(duì)應(yīng)的JAVA文件。重新刷新工程,即可看到這些文件。如圖:
這一步主要是觸發(fā)服務(wù)器根據(jù)jsp產(chǎn)生可供調(diào)試的java文件,不必太在意結(jié)果是否正確。因?yàn)橐坏﹋ava文件生成,那么這些錯(cuò)誤都可通過(guò)調(diào)試排除。
3.打開(kāi)這個(gè)java文件,在其中設(shè)置斷點(diǎn),然后在IE的地址欄再次輸入這個(gè)URL,此時(shí)Eclipse的調(diào)試功能即被激活。至此就可有針對(duì)性地對(duì)JSP進(jìn)行調(diào)試了,這時(shí)的情形如圖:
至于JSP所調(diào)用對(duì)象的調(diào)試,在完成上述步驟后,然后在對(duì)象對(duì)應(yīng)的java
文件中設(shè)置斷點(diǎn)即可。
結(jié)束語(yǔ)
雖然目前JSP的調(diào)試尚未方便到如同普通的java文件調(diào)試般方便,但是Lomboz這類(lèi)工具的出現(xiàn)至少結(jié)束了手動(dòng)調(diào)試JSP的階段。從此java的web應(yīng)用開(kāi)發(fā)者不必因?yàn)橐恍╁e(cuò)誤而時(shí)不時(shí)地停下程序來(lái)手工添加打印語(yǔ)句來(lái)觀(guān)察變量的值,相反他們完全可以如調(diào)試普通JAVA應(yīng)用一樣在程序運(yùn)行的同時(shí)來(lái)觀(guān)察這些值的變化。這大大地方便了基于WEB應(yīng)用的開(kāi)發(fā),減少了以前為調(diào)試所浪費(fèi)的時(shí)間。