明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

使用lomboz調(diào)試JSP

[摘要]前言 凡是有JSP編寫經(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編寫經(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)試帶來極大的不便。

    傳說中所見即所得的JSP調(diào)試工具,就筆者目前掌握的情況來看,并不存在。如果讀者有這方面信息的希望告知,呵呵。但是JSP的調(diào)試工具卻的確存在,而且它是免費(fèi)的!It’s lomboz。下載地址:http://www.objectlearn.com/products/download.jsp

    本文從一個(gè)簡(jiǎn)單的例子出發(fā)來描述如何使用lomboz來調(diào)試JSP。本例的開發(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)格的說lomboz是Eclipse的一個(gè)J2EE的插件,它將很多Java應(yīng)用服務(wù)器、J2EE組件和Web應(yīng)用開發(fā)集成到Eclipse中,可以幫助Java開發(fā)者使用Eclipse建立、測(cè)試、部署J2EE應(yīng)用。對(duì)于本文的重點(diǎn),JSP的調(diào)試,它也有相關(guān)的支持:

-支持JSP編寫,包括:語(yǔ)法著色和語(yǔ)法檢查;

-支持JSP的調(diào)試。

對(duì)于JSP的調(diào)試,lomboz的原理是對(duì)要調(diào)試的JSP頁(yè)面所產(chǎn)生的java代碼來進(jìn)行調(diào)試。整個(gè)調(diào)試過程與java應(yīng)用程序的調(diào)試過程一樣,這樣不論是JSP本身的調(diào)試還是被JSP調(diào)用的對(duì)象的調(diào)試本無縫地聯(lián)結(jié)到了一塊。

在開始本文的例子之前,我們先來看看lomboz的安裝,以及為能正常的使用其JSP調(diào)試功能而進(jìn)行的配置。

安裝和配置
lomboz的安裝過程非常簡(jiǎn)單,Eclipse的插件安裝過程大多都非常的簡(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,打開“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,打開Window -> Customize Perspective,如圖設(shè)置:

接下來就是如何配置lomboz使之能正常的工作。與安裝過程相反,配置過程可不是那么簡(jiǎn)單的,J。Lomboz的配置步驟如下:

1.配置JDK,選擇“Windows -> Preferences”,選擇Lomboz,進(jìn)行JDK的配置。如圖例:

2. 定義服務(wù)器,如果你的服務(wù)器已經(jīng)包含在Lomboz默認(rèn)的服務(wù)器列表中,這一步可以跳過。Lomboz默認(rèn)服務(wù)器列表可以通過在上一步的界面中展開Lomboz,然后選擇其中的“Server Definitions”獲得。以下以添加Tomcat4.1.18為例說明如何增加一個(gè)服務(wù)器。相關(guān)步驟如下:

a)進(jìn)入Lomboz安裝目錄的servers子目錄,復(fù)制一個(gè).server文件(如tomcat410.server),并將其改名為tomcat418.server。

b)打開這個(gè)文件分別改動(dòng)這個(gè)文件的以下位置:

- <serverDefinition ……/>,將其中的name的值改為你想要的一個(gè)名字(如Apache Tomcat v4.1.8),這個(gè)名字用來顯示在“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)試過程中起到了非常重要的作用,因此請(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)全部完畢,那么讓我們來創(chuàng)建一個(gè)“Hello World!”的例子來體會(huì)一下Lomboz調(diào)試JSP的過程吧。

調(diào)試JSP
創(chuàng)建工程
要想使用Lomboz調(diào)試JSP,首先必須創(chuàng)建一個(gè)Lomboz工程。步驟如下:

1.打開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)如下圖:

接下來,我們就可以創(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)參見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)和名稱。

2.根據(jù)org\apache\jsp在對(duì)應(yīng)的j2src目錄下創(chuàng)建相對(duì)應(yīng)的子目錄結(jié)構(gòu),同時(shí)把j2src設(shè)置為工程的source目錄。

語(yǔ)法檢查
現(xiàn)在,讓我們開始享受調(diào)試JSP的過程吧。在調(diào)試之前,JSP應(yīng)該是沒有語(yǔ)法錯(cuò)誤的。Lomboz提供了JSP語(yǔ)法檢查的功能,具體操作是:

1.選擇要進(jìn)行語(yǔ)法檢查的JSP文件,單擊鼠標(biāo)右鍵;

2. 選擇Lomboz j2ee… -> Check Jsp Syntax

調(diào)試
解決完語(yǔ)法錯(cuò)誤之后,接下來就是解決邏輯錯(cuò)誤的時(shí)候了。對(duì)于這種錯(cuò)誤就只能通過調(diào)試來解決了。使用Lomboz調(diào)試JSP的過程與普通JAVA應(yīng)用程序的調(diào)試非常類似,因?yàn)樗脑砭褪窍壤梅⻊?wù)器生成JSP對(duì)應(yīng)的JAVA文件,然后對(duì)他們進(jìn)行調(diào)試。

調(diào)試JSP的步驟如下:

1.打開Lomboz J2EE View,選擇服務(wù)器,單擊鼠標(biāo)右鍵選擇“debug server”。如圖:

如果.server文件定義正確,Tomcat將會(huì)啟動(dòng)。如果沒有象預(yù)想的那樣啟動(dòng)Tomcat,那么請(qǐng)從這兩個(gè)方面排錯(cuò):Tomcat環(huán)境變量和Lomboz的server文件。

2.打開瀏覽器,如IE,在地址欄中輸入:http://127.0.0.1:8080/debugJsp/index.jsp。如果JSP文件語(yǔ)法沒有錯(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ò)誤都可通過調(diào)試排除。

3.打開這個(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這類工具的出現(xiàn)至少結(jié)束了手動(dòng)調(diào)試JSP的階段。從此java的web應(yīng)用開發(fā)者不必因?yàn)橐恍╁e(cuò)誤而時(shí)不時(shí)地停下程序來手工添加打印語(yǔ)句來觀察變量的值,相反他們完全可以如調(diào)試普通JAVA應(yīng)用一樣在程序運(yùn)行的同時(shí)來觀察這些值的變化。這大大地方便了基于WEB應(yīng)用的開發(fā),減少了以前為調(diào)試所浪費(fèi)的時(shí)間。