Servlet 容器如何处理请求资源路径
1. 什么是请求资源路径
在浏览器地址栏输入:http://ip:port/appName/xxx.html
其中 /appName/xxx.html 就是请求资源路径
容器默认认为访问的是一个servlet,所以,会查看web.xml配置,看有没有匹配的servlet
2. Web服务器对请求路径的处理过程
在浏览器地址栏输入:http://ip:port/appName/xxx.html
- 浏览器依据ip,port建立与Servlet容器之间的连接,然后将请求资源路径/appName/xxx.html 发送过去给容器
- 容器依据应用名“/appName”找到应用所在的文件夹,容器会默认请求的是一个Servlet,查找web.xml文件中所有的Servlet配置“”,看是否有匹配的<url-pattern>
- 找到匹配的值之后再按照<servlet-name>完成对应关系的查找,进而找到要执行的Servlet
- 如果没有查找匹配的servlet,容器会查找对应位置的文件
- 如果没有找到对应位置的文件就会返回404错误
3. 匹配servlet的规则
-
精准匹配
具体资源名称与web.xml文件中的url-pattern严格匹配相等才执行
<servlet> <servlet-name>someServlet</servlet-name> <servlet-class>test.MyServlet</servlet-class>