在myeclipse 中直接新建project(ctrl + n )
选择dynamic web project,选择Dynamic web module version 版本是3.0,名字dddd我随便起的,方便看项目的动态变化。
finish,项目建好,可以看到web-inf下边并没有web.xml配置文件的,当在src下新建个servlet时候,才会生成web.xml.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<description>This is the description of my J2EE component, 3.0</description>
<display-name>This is the display name of my J2EE component, 3.0</display-name>
<servlet-name>ddd</servlet-name>
<servlet-class>dddd.ddd</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ddd</servlet-name>
<url-pattern>/servlet/ddd</url-pattern>
</servlet-mapping>
</web-app>
此时运行在myeclipse中内置的Tomcat 7(配置在哪? 待查找),run as 即可
此处可以看到tomcat已经运行起来了,默认还是加载index 界面 url是 http://desktop-052gi91:8080/ ,机器名是什么鬼?为何长成这样? 其实localhost:8080 也是可以的,吓我一跳。。。我以为出了什么问题。。localhost 都不见了还了得。。
然后再按照web.xml 中的路径访问我们的servlet : http://desktop-052gi91:8080/dddd/servlet/ddd,此时是可以看到返回信息的,调用成功。
内容学自 servlet3.0新特性入门到精通 上 :https://www.bilibili.com/video/av52476891?from=search&seid=6556363972202164867
视频里说3.0是有注解的,可此处为何我用myeclipse 2014 创建出来的servlet 为何没有@WebServlet 这种注解,而是还在xml中配置?疑问。。待解决。
解决了: 将 metadata-complete=“false” 就可以,表示此配置文件不是全部的配置,设置为false才会继续找注解的信息。 url: http://desktop-052gi91:8080/dddd/servlet/ddd 可以调用通。请参考 https://www.cnblogs.com/shuiliuhualuo/p/5996180.html 此文回答的详细。我又有疑问了,见问题1.
Q&A:
1 基于注解的servlet 配置,其实与版本没关系的,即2.5 和3.0 都可以 实现注解(人家文章里拷贝的代码可以看出是2.5),只要设置 metadata-complete=“false” 就可以开启注解模式。
2 服务器 容器可以这样理解;