用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等无聊的事情,修改文件一般来说都是直接生效。