今天重新回顾下 Servlet,发现一个问题,稍不注意就会出错,表单提交数据到 Servlet 中,浏览器访问不到 Servlet ,如下图所示:
反复排查,把各个容易出错的地方都检查了一遍,如 web.xml 中的配置,请求转发的资源路径,还尝试重新搭一次环境。最后,发现问题在于访问 Servlet 的路径不对。
这是 Tomcat 配置的访问路径:
而 web.xml 中配置的 url 路径如下:
表单提交的路径如下:
看上去好像没什么大问题,但其实已经出问题了,从表单提交后的路径便知道:
Tomcat 的访问路径说明如下路径映射到我们的工程目录
http://localhost:8080/spring_mvc_01_servlet/
按照我们 web.xml 中配置的 url 【/helloServlet】以及表单提交的路径【/helloServlet】
最终表单提交后浏览器得到的路径是:
http://localhost:8080/helloServlet
显然这个路径根本就访问不到我们的 WEB 项目所在的目录,即访问不到我们的 Servlet 程序
解决方法:
从表单最终的提交 url 入手,我们可以将项目的更目录部署改为如下:
同时修改 Tomcat 的默认访问路径:
这样,浏览器就可正常访问到 Servlet。