以前一直是在eclipse下启动tomcat,然后访问web项目。今天脑门一热,就想用tomcat的bin目录下的startup.bat来启动tomcat,虽然tomcat的启动很顺利,但是访问网页的时候,提示404。
网上百度了一圈,没有找到问题的原因,项目也正确的发布到了webapps目录下。百思不得其解之时,我注意到项目的名字和浏览器url中站点的名字不一样,尝试着改了一下名字,神奇地能正常访问了。
于是又回到eclipse下,看了一下该项目设置的Context root,发现该值和项目名是两个不同的值,所以在eclipse下启动tomcat的时候,就需要以Context root的值作为站点名(在这过程中对tomcat做了什么更改,还不知道)。
现在tomcat下一次完整的资源请求过程总结如下:
1.tomcat在8080端口下监听着客户端的请求。
2.当客户端有请求过来的时候,tomcat对请求的资源进行解析。
3.如果请求指定了站点名和资源名,返回请求的资源。
4.如果请求只指定了站点名,返回该站点下默认的页面。
5.如果请求没有指定站点名和资源名,则把tomcat的默认站点(ROOT)下的默认页面返回给客户端。
注:这里的站点名是指webapps下的文件夹名。