MyEclipse动态Web工程创建Servlet文件不自动生成web.xml文件内容的原因
今天早上重温了一下servlet之后,想新创建一个Servlet文件之后发现web.xml没有自动配置<servlet>和<servlet-mapping>
,一直好奇着为啥为啥,到后面上网搜了好多原因,发现@xulianbocs解释的很好,就摘下来做参考学习了~
用MyEclipse新版本新建servlet时候,发现创建Servlet后,Eclipse不会自动在web.xml中生成该Servlet对应的mapping信息,而是在Servlet代码中加入注解@WebServlet,如下:
查找文档发现,这是Servlet3.0新特性(得Tomcat7.0版本及以上),@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 value 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)
也就是说,当我在Tomcat7.0下新建了Servlet文件之后,并不会自动配置web.xml文档,而是会在Servlet文件类开头插入一个@WebServlet注解,当需要访问Servlet时可通过与Spring注解一样的访问方式去访问,如下:
如有疑问,欢迎私信骚扰~