Java 在EclipseJuno 4.2中创建servlet时未自动获取web.xml文件

Java 在EclipseJuno 4.2中创建servlet时未自动获取web.xml文件,java,eclipse,servlets,Java,Eclipse,Servlets,我正在使用EclipseJuno4.2、Java1.7和Tomcat7。但是在我的系统中,当我创建servlet时,web.xml文件不会自动创建,而在另一个系统中,它会自动创建web.xml文件。我完全糊涂了,有什么需要配置的吗 在创建动态项目时,我还添加了web.xml文件。Tomcat 7是一个与Servlet 3.0兼容的容器。自Servlet 3.0以来,Servlet可以通过类上的@WebServlet注释进行配置,而不需要web.xml配置条目。仔细看看您刚刚创建的servlet类

我正在使用EclipseJuno4.2、Java1.7和Tomcat7。但是在我的系统中,当我创建servlet时,
web.xml
文件不会自动创建,而在另一个系统中,它会自动创建
web.xml
文件。我完全糊涂了,有什么需要配置的吗


在创建动态项目时,我还添加了
web.xml
文件。

Tomcat 7是一个与Servlet 3.0兼容的容器。自Servlet 3.0以来,Servlet可以通过类上的
@WebServlet
注释进行配置,而不需要
web.xml
配置条目。仔细看看您刚刚创建的servlet类,它上面有一个
@WebServlet
注释,包含您在NewServlet向导中指定的所有信息

实际上,这种配置servlet的新方法

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {}
与配置servlet的这种传统方式完全相同

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {}

helloServlet
com.example.HelloServlet
helloServlet
/你好

如果出于某种原因仍然希望Eclipse创建
web.xml
条目,然后,您应该在Project属性的Project Facets部分将动态Web模块版本从3.0更改回2.5。

如果您使用Servlet 2.5版本而不是3.0版本,则Web.xml将自动更新以包含您创建的Servlet。

但是如果不在tomcat 7上进行进一步调整,该注释将无法工作。请参阅@arun,不要将“嵌入式Tomcat”与“Tomcat”混淆。当前的问题是关于Tomcat的,您链接的问题是关于嵌入式Tomcat的,这是一件完全不同的事情。
@WebServlet
标记即使在使用多个servlet时也能工作吗?@BalusC,谢谢,解释很有帮助。但是,是否可以配置Eclipse—创建web.xml并添加Servlet条目作为对新的
@WebServlet
注释的响应—以实现向后兼容性?(如果我想用Servlet2.5部署应用程序)@NShomik:只需将DynamicWebProjectFacetVersion设置为2.5即可。