利用web.xml进行部署
首先按照https://how2j.cn/k/servlet/servlet-dynamic-web-project/1306.html教程学习并练习了一遍。
一、创建servlet
在这过程中,最开始出现了教程中所说的找不到HttpServlet问题
按照教程所提供的解决方法,下载servlet-api.jar并复制到了我电脑中的D:\project\j2ee\WebContent\WEB-INF\lib;进入eclipse→右击j2ee项目→点击"Properities",选择"Java Build Path"→点击Libraries→点击右边选项中的Add External JARs→将servlet-api.jar添加进来即可,点击“OK”后之前的问题解决。
二、创建web.xml
右击j2ee下面的WEB-INF目录→new→other→xml 文件,再输入文件名即创建成功。
创建成功后显示的是Design视图,点击旁边的Source视图即可。
包括两部分:1.声明Servlet对象 2.映射Servlet
1.<servlet>
<servlet-name>firstservlet</servlet-name> //指定Servlet名称
<servlet-class>firstservlet</servlet-class> //指定Servlet对象的完整位置
</servlet>
2.<servlet-mapping>
<servlet-name>firstservlet</servlet-name> //必须以1部分的名称一致,不能随意命名
<url-pattern>/hello</url-pattern> //用于映射访问URL,"/"后面可以随意写
</servlet-mapping>
在采用web.xml进行servlet部署过程中,出现了很多问题,也花了不少时间。最开始是404错误,按照老师所讲的方法在后面加上web.xml中的访问路径,但还是有问题。最后发现是由于前面映射Servlet部分打错了
改正过来后,再运行又出现了如下的错误点:
弄了很久之后,还是没有找到错误原因,于是我又重新建了一个Servlet,不做任何任何更改,能成功运行出来。看是否是因为之前我删除了一些内容导致而成。在这个过程中,我都是通过注解方式运行的,最后结果证明并不是该原因,因为我跟之前的Servlet一模一样,都能成功运行;于是只能是web.xml的原因,果然将之前的web.xml复制过来,用<url-pattern>的地址就出现了上图的错误;但是用注解@WebServlet("/Hello")的地址就是对的。不过,最后找出错误点,发现是因为我知识点不清楚,web.xml中<servlet-class>是随便写的,但当我把<servlet-class>hello</servlet-class>中名字改为servlet里的class名Hello,再通过web.xml就可以成功得到。书上面关于<servlet-class>说的就是要包含Servlet对象的包名和类名,此次我未指定包名,所以就必须与类名一致才行。
错误的web.xml:
运行成功的web.xml:
运用注解方式进行部署
直接在http://localhost:8080/6.2.1后面加上servlet的@WebServlet("/Hello")的地址,即http://localhost:8080/6.2.1/Hello,便可成功运行。这个会比web.xml方便很多,也有更少的错误。
用注解方式得到: