在閱讀這篇文章之前,請先閱讀《圖解利用Eclipse3+Sysdeo Tomcat plugin編輯和調試JSP》,可以加深對此文的理解。如果有其它問題,可以參考我的Blog--分享Java快樂。
Sysdeo Eclipse Tomcat Launcher plugin 與 Lomboz外掛程式的比較:
這兩個外掛程式都可以利用Eclipse來開發JSP,不過Lomboz還可以開發Html、EJB等。 Sysdeo plugin是通過設定Context來載入Web應用;而Lomboz是通過在Tomcat目錄/webapps目錄下產生的WAR檔案來載入Web應用的。 在Sysdeo plugin調試JSP檔案比較簡單,是因為eclipse通過Context直接控制Web應用。而在Lomboz中,eclipse是通過產生的WAR檔案間接控制Web應用的,甚至可以說沒有控制。 在Sysdeo plugin中,例如 TomcatSample目錄中含有work目錄,這個目錄是JSP的工作目錄,先把jsp檔案編譯成Servlet檔案,存放在work/org/apache/jsp目錄下。如 index.jsp在work/org/apache/jsp目錄下產生了index_jsp.java檔案。 在Lomboz中,work目錄存放在Tomcat目錄/work/Catalina/localhost中。
Context解釋 |
Context元素代表一個web應用,運行在某個特定的虛擬機器主機上。每個web應用基於一個Web Application Archive(WAR)檔案,或者是一個目錄,包含WAR檔案解壓後的內容。 通過將請求URI的最長可能首碼與每個Context的context路徑進行匹配,Catalina選擇相應的web 應用處理HTTP請求。一旦選定,根據web application deployment descriptor 檔案中定義的servlet映射,Context會選擇一個正確的servlet來處理進來的請求。servlet映射必須定義在該web應用目錄階層中的/WEB-INF/web.xml中。 你可以在一個Host元素中嵌套任意多的Context元素。每個Context的路徑必須是惟一的,由path屬性定義。另外,你必須定義一個context路徑長度為0的Context,這個Context稱為該虛擬機器主機的預設web應用,用來處理那些不能匹配任何Context的Context路徑的請求。 除了在Host元素中嵌套Context元素以外,你也可以將它們儲存在單個檔案中(以.xml為尾碼),放在$CATALINA_HOME/conf/[enginename]/[hostname]/目錄下面。 (註:Catalina是Tomcat的別稱) |
下面用一個執行個體詳細談談如何用Lomboz調試JSP。
目錄結構 F:/j2sdk JDK目錄
D:/eclipse Eclipse 目錄 F:/java/jakarta-tomcat Tomcat 5.0.28 目錄 D:/plug-in/lomboz.301 Lomboz目錄(我這裡是採用links方式安裝的) 根據安裝的軟體,自己作個合適的配置。 1.在eclipse視窗中,視窗->喜好設定->Lomboz->Server Definitions,添加jsper-runtime.jar, 最後點擊“應用”,“確定”。 2.建立一個Lomboz項目 項目名: Lomboz Debug Web模組名: debugWeb Server名: Tomcat 5.0.28 3.修改debugWeb目錄下的index.jsp檔案如下:
debugWeb/index.jsp |
<% String s = "Welcome javamxj Blog!"; out.println(s); %> |
4. 開啟$Tomcat_Home/conf目錄下面的server.xml檔案,在檔案尾部如下添加一條語句。
........上面的語句省略了只要添加下面的一行即可<Context path="/debugWeb" reloadable="true" docBase="D:/eclipse/workspace/Lomboz Debug/debugWeb" workDir="D:/eclipse/workspace/Lomboz Debug/j2src" />
</Host> </Engine> </Service>
</Server>
或者,$Tomcat_Home/conf/Catalina/localhost目錄下建立一個debugWeb.xml檔案,內容如下:
<?xml version='1.0' encoding='utf-8'?>
<Context path="/debugWeb" reloadable="true" docBase="D:/eclipse/workspace/Lomboz Debug/debugWeb" workDir="D:/eclipse/workspace/Lomboz Debug/j2src" />
</Context>
5. 右擊“Lomboz Debug” 項目,點擊“屬性”,切換到“Java構建路徑”,如下修改: 6.右擊“debugWeb”模組->Lomboz J2EE ->Debug Server,
注意:不要選擇“Run Server” 7.在瀏覽器視窗中輸入“http://localhost:8080/debugWeb”,OK!編輯成功。 8.重新整理“Lomboz Debug”目錄下的j2src目錄,可以看到重新整理後此檔案夾下有一個index_jsp.java檔案, 雙擊開啟此檔案,然後增加一個斷點。 9. 重新整理瀏覽器視窗,此時eclipse會自動切換到“調試”視圖, 10.此時瀏覽器視窗
小結 利用Lomboz調試JSP要比Sysdeo plugin麻煩一些,而且如果要部署模組時,部署後的模組將不會自動解壓,因為Tomcat會首先載入Context,所以只有卸載定義的Context才能自動解壓模組。