<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
(因为注释太多在此隐去,建议感兴趣的看客可以到$catalina/conf/web.xml目录下看看,很有用的)
默认情况下,DefaultServlet是映射到根目录的。可能有人会问“<url-pattern>/</url-pattern>”这个和我们应用配置的不会冲突吗?有相关疑问的可以查看以下博文:
http://k1121.iteye.com/blog/1564241
当我们浏览器输入“http://localhost:8080/test.html” 向tomcat容器发送一个静态文件请求时,就会调用tomcat的org.apache.catalina.servlets.DefaultServlet类的doGet()方法进而通过serveResource()等方法取出需要的资源,然后加载进来,并且判断相应的mime类型设置不同的HTTP head,然后输出到页面上。
<!-- ===================== Default MIME Type Mappings =================== -->
<!-- When serving static resources, Tomcat will automatically generate -->
<!-- a "Content-Type" header based on the resource's filename extension, -->
<!-- based on these mappings. Additional mappings can be added here (to -->
<!-- apply to all web applications), or in your own application's web.xml -->
<!-- deployment descriptor. -->
<mime-mapping>
<extension>html</extension>
<mime-type>text/html</mime-type>
</mime-mapping>
实验:
如果按照以下内容修改$catalina/conf/web.xml中的servlet-mapping:
<!-- The mapping for the default servlet -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.test</url-pattern>
</servlet-mapping>
则当我们浏览器输入“http://localhost:8080/test.html” 向tomcat容器发送一个静态文件请求时则会报“HTTP/1.1 404 Not Found”