SpringMVC学习笔记05(静态资源的处理)

SpringMVC05
这里是学习SpringMVC的第5天,欢迎小伙伴们打卡一起学习。

SpringMVC01
SpringMVC02
SpringMVC03
SpringMVC04
SpringMVC05
SpringMVC06(SSM的整合)

什么是静态资源

静态资源:可以理解为前端的固定页面,这里面包含HTML、CSS、JS、图片等等,不需要查数据库也不需要程序处理,直接就能够显示的页面,如果想修改内容则必须修改页面,但是访问效率相当高。
动态资源:需要程序处理或者从数据库中读数据,能够根据不同的条件在页面显示不同的数据,内容更新不需要修改页面但是访问速度不及静态页面。

那,是谁在处理静态资源?

例子:http: //localhost:8080/SpingMVC04/index.jsp : tomcat ( jsp会转为servlet )
http: //localhost:8080/SpingMVC04/js/iquery-3.4.1.jis : tomcat
http: //localhost: 8080/SpingMVC04/images/ p1. jpg : tomcat
http: //localhost: 8080/SpingMVC04/html/test.html: tomcat
http://localhost:8080/SpingMVC04/some.do : Di spatcherServlet ( springmvc框架处理的)
tomcat本身能处理静态资源的访问,像html,图片, js文件都是静态资源
tomcat的web . xml文件有- -个servlet名称是default,在服务器启动时创建的。
访问tomcat的配置文件,我们不难发现,tomcat实际上也是通过servlet进行请求的处理的

原先tomcat中的配置

<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>

为了处理静态资源,我们应该做什么?

在springmvc文件中,我们进行如下配置,至于为何配置,在注解中均有解释

  <!--加入注解驱动,注意是包名后缀是mvc的-->
    <!--注解驱动的功能是完成java对象到二进制、json、xml、text等数据格式的转换,主要用于ajax-->
    <!--default-servlet-handler和@RequestMapping有冲突,需要加入annotation-driven解决问题(不加入会导致动态资源404)-->
    <mvc:annotation-driven/>
    <!--注解驱动的功能是完成java对象到二进制、json、xml、text等数据格式的转换-->
    <!--第一种处理静态资源的方式:
            需要在springmvc配置文件加入<mvc:default-servlet-handler>
            原理是:加入这个标签后,框架会创建控制器对象DefaultServletHttpRequestHandler(类似我们自己创建的myController)
            DefaultServletHttpRequestHandler这个对象可以把接收请求转发给tomcat的default这个servlet
    -->
<!--    <mvc:default-servlet-handler/>-->

    <!--第二种处理静态资源的方式(推荐)
    mvc:resources加入后框架会创建ResourcesHttpRequestHandler这个处理器对象。
    让该对象处理静态资源的访问,不依赖tomcat服务器
    mapping:访问静态资源的url访问静态资源的uri地址,使用通配符**
    location:静态资源自理的项目中的目录位置。
    eg:images/**,表示images文件夹下的所有文件
    -->
    <!--mvc:resources和@RequestMapping有冲突,需要加入annotation-driven解决问题(不加入会导致动态资源404)-->
<!--    <mvc:resources mapping="/image/**" location="/image/"/>-->
<!--    <mvc:resources mapping="/html/**" location="/html/"/>-->
<!--    <mvc:resources mapping="/js/**" location="/js/"/>-->
    <!--不过建议是建立一个目录用于存放静态资源 -->
   <mvc:resources mapping="/static/**" location="/static/"/>

我们可以看到,在都dosome方法中原先无法访问的图片数据变得可以访问了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值