用Eclipse開發web應用的人大概有兩撥,一邊是直接用Eclipse JEE版本做開發的,另外一邊是用MyEclipse這個龐然大物的。二者各有優缺點,我覺得使用MyEclipse的大集成試的開發對于初學者來說可能可以省去很多基礎的事情,便于入門。而對于更多的伙子們來說,我想基本的Eclipse才是更好的選擇。一方面MyEclipse的Add XXX Capabilities不管3721加入全部庫文件的做法對項目是一種污染,另外一方面隱藏的東西多了不利于個人對具體實現的學習。

言歸正傳,說這兩種環境下的web應用調試。這本來是個簡單的事情,但在幾條大路通羅馬的情況下IDE做了不太好的引導,導致很多人用的都是相對低效的方式,下面來看看我的比較:

1.Eclipse JEE版本,不裝插件也能搞定
不用MyEclipse,很多開發人員看了網上的文章于是喜歡裝一個叫做lomboz的插件,來管理tomcat,進行開發部署測試。But,實際上如果你只是調試個Web應用的話,根本不用安裝這些烏七八糟的東東,直接就可以搞定。
菜單上選擇Window->Show View,把Servers面板調出來。這個是Eclipse本來就有的應用服務器管理模塊。在面板上點擊右鍵,選擇New->Server。此時可以選擇你所使用的AppServer類型。如果列表中沒有你所使用的AppServer,那么可以點擊那個Download Additional Server Adapters去查找下載。假設你用的是Tomcat,于是選擇Apache目錄下面的Tomcat的相應版本,在后續步驟中選擇你已經安裝好的Tomcat目錄等等,就可以在你的Eclipse環境中配置好一個TomcatServer了。
配置好服務器后,會發現在左邊的項目瀏覽面板中多了一個叫做Servers的項目,這個里面放的其實就是你的Server的配置。用Tomcat開發很多人會修改Server.xml里面的Connector節點,去添加URIEncoding等配置。這里有一個需要注意的地方是你需要選擇Servers面板中的相應服務器,右鍵點擊,選擇Publish,這樣你所做的修改才能生效。實際上也就是把你所修改的配置文件拷貝到了$workspace/.metadata/..../tmp0之類的實際工作目錄下。
Tomcat配好了怎么開始運行我的項目呢。雙擊servers面板中你創建的Server,出來兩個Tab頁。選擇Modules Tab頁。然后用右邊的第二個按鈕去添加你的Web應用。Document Base寫你的項目的web目錄的絕對路徑,然后保存,以調試方式啟動Server。你的項目就跑起來了,并且可以調試。修改了文件也不需要像lomboz之類的垃圾引導你所作的哪些個deploy之類的事情,直接就生效了。某些情況下你修改了類,重新編譯項目后Server會彈出無法繼續調試的對話框,此時你需要重新啟動這個server。
不推薦用上面那個add web modules。這個東西經常你修改了項目文件卻不生效。同樣也不推薦在Server上面點右鍵出來的那個Add or Remove Projects。同樣的毛病。
最后再說一下Lomboz之類的插件給出的Deploy功能。這個東西我覺得不是在開發過程中使用的功能。他的實際過程是把你的項目中的文件拷貝到你所配置的tomcat的webapps目錄下去。而且往往不識別哪些文件作了修改。于是你沒修改一些東西,要生效,就要deploy,而這個deploy是把整個web目錄拷過去的,于是你就等吧。慢死你。

2.MyEclipse
首先,我不太喜歡這個東西。但看在能給初學者省不少事情的面子上也就不再苛責——我之前也是用這個的。
這個玩意提供了自己的Server管理模塊,并且覆蓋了Eclipse自己本身的該模塊。Add應用到服務器等等的方式和lomboz同樣。最后你開發過程中修改了東西也是搞了個deploy功能讓你點擊,他拷貝所有的文件到tomcat的webapps目錄下去。可怕的是丫把Eclipse原本提供的在Server上添加External Web Module的功能給裁了,讓你無路可走。
不過好在還有其他方法可以不理會這個Deploy功能。在MyEclips的配置中配置好一個Tomcat后,實際上這個Tomcat啟動的時候使用的依然是你所安裝的Tomcat目錄下的那些個配置(這一點和Eclipse不一樣,Eclipse是自己走了一套配置,放在workspace/.metadata里面了)。于是我們可以在Tomcat的Conf/Catalina/localhost目錄下新建一個xml文件,其中寫類似于如下的內容:
 <Context docBase="E:\WorkSpace\java\projectA/web" path="/" reloadable="false"/></Host>
實際上就是告訴這個Tomcat啟動的時候要加載某個項目。如此,你在Eclipse中以Debug模式啟動該Server,就可以調試了。也免去了Deploy等無聊的事情,修改文件一般來說都是直接生效。