在閱讀這篇文章之前,請先閱讀《
圖解利用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才能自動解壓模塊。