码迷,mamicode.com
首页 > Web开发 > 详细

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

时间:2014-11-09 23:40:53      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   http   io   color   os   使用   java   sp   文件   

在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会弹出一个对话框,“Dynamic web module version”这个选项默认成了3.0,按照老规范,应该是在eclipse的WebContent \ WEB-INF \ 目录下创建web.xml的。而新规范是可以不用web.xml的,如tomcat 7.0就支持新规范,这样相关的servlet配置会以注解的形式直接写到代码里面了,比如@WebServlet。 当然如果你用老的项目导入,可以选择Dynamic web module version这个选项设成2.5,这样web.xml就会自动更新了。 

 

@WebServlet(“/HW”)的含义:

 

@WebServlet(“/HW”)//默认设置的是urlPatterns属性

public class HelloServlet extends HttpServlet {

只要在Servlet上设置@WebServlet标注,容器就会自动读取当中的信息。上面的@WebServlet告诉容器,如果请求的URL是“/HW”,则由HelloServlet的实例提供服务。可以使用@WebServlet提供更多信息。
@WebServlet(
    name="Hello",
    urlPatterns={"/HW"}
)

上面的@WebServlet告知容器,HelloServlet这个Servlet的名称是Hello,这是由name属性指定的,而如果客户端请求的URL是/HW,则由具Hello名称的Servlet来处理,这是由urlPatterns属性来指定的。在Java EE相关应用程序中使用标注时,可以记得的是,没有设置的属性通常会有默认值。例如,若没有设置@WebServlet的name属性,默认值会是Servlet的类完整名称。

 

注意:Tomcat中, 如果web.xml和@WebServlet属性都设置了,那么对不起,@WebServlet

中的urlPatterns属性就不起作用了!(可以将web.xml从WEB-INF目录中移走,或者删除

这样@WebServlet中的urlPatterns属性值就可以使用了!)

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

标签:style   http   io   color   os   使用   java   sp   文件   

原文地址:http://www.cnblogs.com/hujunzheng/p/4086107.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!