15

我正在使用 Eclipse Juno 4.2、Java 1.7 和 Tomcat 7。但是在我的系统中,当我创建 servlet 时,该web.xml文件不会自动创建,而是在另一个系统中自动创建web.xml文件。我很困惑,有什么要配置的吗?

web.xml当我要创建一个动态项目时,我还会添加文件。

4

2 回答 2

47

Tomcat 7 是一个与 Servlet 3.0 兼容的容器。从 Servlet 3.0 开始,可以通过@WebServlet类上的注释来配置 servlet,而无需web.xml配置条目。仔细查看您刚刚创建的 servlet 类,上面有一个@WebServlet注释,其中包含您在New Servlet向导中指定的所有信息。

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

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

与配置 servlet 的传统方式完全相同

<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.example.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

web.xml如果您仍然希望 Eclipse出于某种原因创建条目,那么您应该在项目属性的Project Facets部分中将Dynamic Web Module版本从 3.0 更改回 2.5 。

于 2013-02-13T13:40:30.777 回答
2

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

于 2013-06-05T10:26:48.497 回答