Eclipse3.6中编写了简单的Servlet,然后使用Run as=> Run on server运行单个的Servlet没有问题。但是如果有多个Servlet的话,怎么一次性的让这些Servlet都会自动运行?
例如我写了多个Servlet,如下
A.java, B.java, C.java
当使用Run on Server运行A.java后,在浏览器里能访问A.java对应的Servlet,但是这时B.java,C.java对应的Servlet在浏览器里是不能访问的。现在我使用的是Eclipse3.5 + Tomcat的插件,在Eclipse中启动Tomcat,只要Servlet对应的java类更改编译后,在浏览器里就可以直接访问到更新的内容了,而不用像现在Eclipse3.6中那样每个Servlet得单独运行一下(现在已会的方法)。最关键的是我的Servlet里并不输出页面的内容,而是使用AJAX通信来进行逻辑入理,所以Run on Server并不能看到结果。希望能指点一下Eclipse3.6开发Servlet的经验。
谢谢!!!

解决方案 »

  1.   

    建个WebProject,在WebProject中建Servlet,将整个WebProject Run on server
      

  2.   

    我创建了一个Dynamic Web Project,怎么将整个WebProject Run on Server呢?
      

  3.   

    在左边的Package Explorer 里的Dynamic Web Project这个项目的根文件夹上右击,选择Run on server
      

  4.   

    发现问题了,每个Servlet的Java类都要先执行一次,然后下次Tomcat在Eclipse中启动的时候,执行过的Servlet在浏览器中都能被访问到了。但是这个时候,如果Tomcat是在命令行中启动,而不是在Eclipse中启动的,在浏览器里就不能访问这些Servlet(http://localhost:8080这时是能正常被访问的)。
      

  5.   

    正常都是将整个工程发布到Tomcat,第一次见发布单个Servlet的...
      

  6.   

    按你这个办法试了,这样只有先前运行过的Servlet能在浏览器中访问,新建的Servlet这个时候还是不能在浏览器访问到,甚至于这时对新建的Servl用使用Run on Server后,都不能在浏览器里访问,只有重启Tomcat才行。
      

  7.   

    开发的时候你得测试吧。
    使用以前Eclipse的Tomcat插件,只要在Eclipse中Tomcat是启动的,新建的Servlet在修改Web.xml后都能立即访问,还是比较方便的。而且无论Tomcat是在Eclipse还是从命令行中启动,浏览器里都可以访问Servlet,Eclipse3.6刚用,遇到了这些问题。
      

  8.   

    囧,我看了一下,Eclipse居然没有Deploy这个选项,悲剧
    强烈建议lz用MyEclipse...最新版是8.5
      

  9.   

    正常的话修改过Web.xml后工程应该是会自动重新部署的
      

  10.   

    MyEclipse一是收费的,二是太大了,会有些慢。
      

  11.   

    Run on Server运行A.java
    那是临时部署了A,Web服务器指向的config是个临时的,所以只能看到一个
      

  12.   

    Eclipse3.6+Tomcat7可以使用Servlet3.0注解,不需要自己写web.xml文件,直接在Servlet类前面加注解就可以了,如
    @WebServlet("/foo")
    public class Foo extends HttpServlet {这样直接在浏览器里访问http://localhost:8080/yourproject/foo
    就是这个注解功能吸引了我,所以想了解一下这个怎么处理。
      

  13.   

    那就不是很清楚了,我是MyEclipse用的多,Eclipse不常用
    lz再试试吧!
      

  14.   

    新建的Servlet是需要重启tomcat的,你如果在这个时候对新建的Servl用使用Run on Server后,其实是又创建了新的实例,与之前tomcat启动所创建的实例是不同的,所以是访问不到新建的。
      

  15.   

    楼主看下发布第二个Servlet后
    web.xml中的内容以及Server.xml中的
     <Context docBase="test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:test"/>
    有没有问题
      

  16.   

    因为很早以前Eclipse的TomcatPlugin可以不用重启Tomcat就能找到新的Servlet,感觉很方便,可惜这个插件已有几年不更新了。而最新版刚使用遇到这些问题,看看能不能让其方便一些。还有担心的是如果Servlet太多,当把工程复制到其他机器上时,如果每个Servlet都要再去手动的启动一次,这个工作量会不小。
    再者另一个问题是Tomcat从Eclipse启动时这种工作环境下的Servlet可以在浏览器里正常访问,但是Tomcat在命令行启动时这些Servlet却不能从浏览器里访问了(默认设置,具体的还不知道怎么解决,但一定有办法),头疼的问题。
      

  17.   

    1. 使用Servlet3.0中的注解,所以不需要再使用web.xml这个文件了。
    2. reloadable="true" 这个加不加都没关系,因为Eclipse的环境中,当类重新编译后,会自动生效的。
      

  18.   

    <Context docBase="test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:test"/>
    在server.xml加了这个也没有任何作用。
      

  19.   

    有可能在eclipse里他用另外一套config,我这里就是,在eclipse里设置的servers中的tomcat用的那套config和他本身的不一样,以我的例子是,需要将eclipse中tomcat使用的设置copy到tomcat安装的默认设置里,或者改变tomcat命令行启动时里面的脚本,好像有一行类似-Dcatalina.base="E:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0"修改到包含了你的config以及webapps的文件夹即可
    多个servlet的变动一般也只需要重新启动一次tomcat就行了
    不过确实你现在遇到这个问题在开发时有点讨厌