静态资源的处理

1、默认资源处理

DispatcherServlet前端控制器默认情况下不会处理静态资源,静态资源都是由tomcat服务器进行处理。tomcat的配置文件中有针对所有静态资源的处理配置。

tomcat的web.xml配置文件中存在一个DefaultServlet类

<!--  处理图片、css、js等等 -->
<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>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>


<!--  处理JSP页面的请求 -->
<servlet>
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>fork</param-name>
        <param-value>false</param-value>
    </init-param>
    <init-param>
        <param-name>xpoweredBy</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>3</load-on-startup>
</servlet>

<!-- The mappings for the JSP servlet -->
<servlet-mapping>
    <servlet-name>jsp</servlet-name>
    <url-pattern>*.jsp</url-pattern>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>
  1. JspServlet的类是用来处理JSP页面的,并且每个JSP的最后都会转为Servlet。

  2. DefaultServlet类是用来处理图片、html、css、js等静态资源的。

默认情况下DispatcherServlet前端控制器当收到请求这些时都会交给Tomcat服务器处理,然后再由Tomcat进行分发处理。



2、MVC处理方式一

<mvc:default-servlet-handler/>

只需要在配置文件中加入这句话即可,

  1. 此时springmvc框架会在容器中自动创建DefaultServletHttpHandler用来处理静态资源。

  2. 前端控制器DispatcherServlet会对URI进行筛选,如果是静态资源就交给DefaultServletHttpHandler

  3. 然后DefaultServletHttpHandler再交给Tomcat中的DefaultServlet。

  4. 本质上说还是需要依赖Tomcat服务器,因此现在这种方式使用的并不多!

  5. 并且这种方式开发时静态资源只能放在webapp下,无法访问外部磁盘的文件!

在这里插入图片描述
但是加入这行代码的同时也带来了新的问题,与RequestMapping注解有冲突,导致无法访问Controller类。还需要开启mvc注解驱动搭配使用
在这里插入图片描述



3、MVC处理方式二

使用mvc:resourcesbiao标签进行配置

<mvc:resources mapping="/static/**" location="/static/"/>

这句话的含义是访问Webapp目录下static文件夹下的所有静态资源,loaction的位置也可以是具体的磁盘位置!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值