【问题标题】:How can I access specific one file from resource mapping in springspring 如何从资源映射中访问特定的一个文件
【发布时间】:2019-04-10 14:40:53
【问题描述】:

我有以下 servlet 映射 -

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

观察: 如果任何 web 请求以 /js 请求路径开头,那么它将被映射到资源目录,并且 /** 符号表示递归查找基本资源目录下的任何资源文件。这里可以访问js/test.js、js/test2.js

要求: 我只想访问一个特定文件 (js/test.js)。如何访问特定的一个文件(js/test.js)而不是出现在 /resources/js 位置的所有文件。

我可以使用下面的 servlet 映射 :::

<mvc:resources mapping="/js/test.js" location="/resources/js/" />

【问题讨论】:

    标签: spring spring-mvc spring-security


    【解决方案1】:

    当你添加这一行时

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

    Spring 会添加一个过滤规则,上面写着

    每当任何带有/js/** 的URL 被触发时,spring 都会在/resources/js/ 文件夹中递归查找它。

    当你添加以下配置时

    <mvc:resources mapping="/js/test.js" location="/resources/js/" />
    

    只有带有/js/test.js 的URL 才会在/resources/js/ 文件夹中查找。

    请注意,不会过滤任何其他请求,例如 /js/jqueryjs/abc

    【讨论】:

    • 如果 location /resources/js/ 有其他 js 文件,我可以通过 url js/test1.js、js/test2.js 访问这些文件,例如 js/test.js。是否有任何过滤器我只能访问 js/test.js 而不是 js/test1.js?
    • 你在使用 Spring Security 吗?
    • 我们为什么要在映射中使用/**?
    猜你喜欢
    • 2015-02-26
    • 2013-12-07
    • 1970-01-01
    • 2022-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 2014-02-05
    相关资源
    最近更新 更多