访问静态资源有问题(配置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中图片路径修改

 

posted @ 2022-01-11 14:19  doremi429  阅读(206)  评论(0编辑  收藏  举报