访问静态资源有问题(配置url-pattern 用"/")(两种静态资源处理)
发起的请求是由哪些服务器程序处理的
http://localhost:8080/ch05_url_pattern/index.jsp: tomcat(jsp会转为servlet)
http://localhost:8080/ch05_url_pattern/js/jquery-3.4.1.min.js:tomcat
http://localhost:8080/ch05_url_pattern/images/qplay_1.jpg:tomcat
http://localhost:8080/ch05_url_pattern/html/test.html:tomcat
http://localhost:8080/ch05_url_pattern/some.do:DispatcherServlet (springmvc框架处理的)
tomcat本身能处理静态资源的访问,像html,图片,js文件都是静态资源
tomcat的web.xml文件有一个servlet 名称是default,在服务器启动时创建的。
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
default这个servlet作用
<!-- The default servlet for all web applications, that serves static -->
<!-- resources. It processes all requests that are not mapped to other -->
<!-- servlets with servlet mappings (defined either here or in your own -->
<!-- web.xml file).
1,处理静态资源
2,处理未映射到其它servlet的请求。
比如:a,b两个请求都映射了servlet,c没有
http://localhost:8080/myweb/c 就是未映射到任何一个servlet的请求 ,tomcat可以处理
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/</url-pattern> 设置成了/ 表示静态资源和未映射的请求都给这个default处理
</servlet-mapping>
这种情况下有两种方式可以访问静态资源:
第一种:
缺点:tomcat必须有default才能使用 优点使用方便
第二种静态资源处理
index.jsp中图片路径修改