zoukankan      html  css  js  c++  java
  • Spring MVC 过滤静态资源访问

    Markdown

    过滤的必要性

    一般来说,HTTP 请求都会被映射到 DispatcherServlet,进而由具体的类来承接处理,但对于类似 js 或者 css 这样的静态资源则没必要这样,因为对资源的获取只需返回资源本身即可,无需做其他处理,那么这时就需要对一系列的资源文件做过滤处理。

    首先来看 web.xml 中针对 Spring MVC 的一个必要配置,即让 HTTP 请求映射到 DispatcherServlet:

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

    配置策略

    过滤配置要在 springmvc-config.xml 中进行,为了让资源文件不经过 DispatcherServlet,参见如下配置:

    <mvc:annotation-driven />
    <mvc:resources mapping="/resources/css/**" location="/resources/css/project1/" />
    <mvc:resources mapping="/resources/js/**"  location="/resources/js/project1/" />
    <mvc:resources mapping="/*.html" location="/" />
    

    以上代码针对 css 和 js 分别做了配置,且看如下四点说明:

    1. 静态资源文件实际所在物理路径为:“/resources/css/project1/”。
    2. 在 jsp 页面中的超链接路径(href、src)对应着配置节里的 mapping。实际的路径定义在配置节的 location 中,它可能很长,也许由于历史原因其命名也不优雅,这时通过 mapping 就可以很优雅的重新表达,让 jsp 页面的代码更简洁明快。
    <link href="<c:url value="/resources/css/input.css" />" rel="stylesheet" />
    <script src="<c:url value="/resources/js/input.js" />" ></script>
    
    1. location 属性的末尾必须带上“/”,否则报错。
    2. 只要有任何一项针对资源的映射配置(<mvc:resources />),就必须要带上 annotation-driven,反之,则不需要它。
    <mvc:annotation-driven />
    
  • 相关阅读:
    甲醛(Formaldehyde)
    Node Embedding
    受限玻尔兹曼机(RBM, Restricted Boltzmann machines)和深度信念网络(DBN, Deep Belief Networks)
    长尾分布,重尾分布(Heavy-tailed Distribution)
    SVD分解与数据压缩
    Batch Normailzation
    Attention Mechanism
    新装的Ubuntu在Nvidia显卡上分辨率不对
    人工神经网络(Artificial Neural Network)
    Xdebug+phpstorm配置
  • 原文地址:https://www.cnblogs.com/ramantic/p/7582397.html
Copyright © 2011-2022 走看看