URL语法读解:以“/”开头和以“/*”结尾的是用来做路径映射的;以前缀“*”开头的是用来做扩展映射的 “1”是用来定义default servlet映射的.剩下的都是用来定义详细映射的。
URL读解:当客户端访问一个Servlet时,如果请求的URL地址,能够匹配多个虚拟路径,Tomcat将采取最具体匹配原则,来查看与请求URL最接近的虚拟路径
URL示例:
映射关系:/abc/*--映射到Servlet1 /* --映射到Servlet2
/abc - . -映射到Servlet3 *.do 一映射到Servlet4
请求URL:
当URL为: /abc/a.html,/abc/,或者为/,都可以匹配这个URLTomcat会调用Servlet1
当URL为: /abc,/abc/*,或者/abc, 都可以匹配这个URLTomcat会调用Servlet3
当URL为: /a.do,/,或者do,都可以匹配这个URLTomcat会调用Servlet2
当URL为: /xyy/x.do,.do,或者人,都可以匹配这个URLTomcat会调用Servlet2
关于缺省Servlet:是在tomcat服务器内置的一个路径
在tomcat安装目录中: conf下的web.xml中有这样一个代码:
<servlet-mapping>
< servlet name> default </servlet narme>
< url-patterm>/</url-pattem>
< /servlet mapping>
. servlet的映射路径为一个(/),称之为缺省的servlet。
这个servlet就成为了当前web应用程序的缺省servlet。
缺省servlet的作用:凡是在web.xml文件总找不到匹配的<servlet-mapping>元素的URL方位请求都将交给缺省的servlet处理。缺省的servlet用于处理所有其他servlet不处理的访间请求。
缺省的Servlet的作用是用于解析web应用的静态资源文件:
1.到当前thirdSample应用下的web.xml文件查找是否有匹配的url-pattern.
2.如果没有匹配的url-pattern,则交给tomcat的内置的DefaultServlet处理
3. DefaultServlet程序到thirdSample应用的根司录下查找是存在一个名称为index.html的静态文件
4. 如果找到该文件,则读取该文件内容,返回给浏览器
5.如果找不到该文件,则返回404错误页面