#spring #spring-mvc #spring-security
#весна #spring-mvc #spring-безопасность
Вопрос:
У меня присутствует следующее сопоставление сервлетов —
<mvc:resources mapping="/js/**" location="/resources/js/" />
Наблюдение:
Если какой-либо веб-запрос начинается с пути запроса /js, он будет сопоставлен с каталогом ресурсов, а символ /** указывает на рекурсивный поиск любых файлов ресурсов в каталоге базовых ресурсов. Здесь я могу получить доступ js/test.js , js/test2.js
Требование: я хочу получить доступ только к одному конкретному файлу (js/test.js ). Как я могу получить доступ к определенному одному файлу (js/test.js ) не все файлы, которые представлены в каталоге /resources/js.
Могу ли я использовать приведенное ниже сопоставление сервлетов :::
<mvc:resources mapping="/js/test.js" location="/resources/js/" />
Ответ №1:
Когда вы добавляете эту строку
<mvc:resources mapping="/js/**" location="/resources/js/" />
Spring добавит правило фильтрации, в котором говорится
Всякий раз, когда запускается какой-либо URL с /js/**
, spring рекурсивно ищет его в /resources/js/
папке.
При добавлении следующей конфигурации
<mvc:resources mapping="/js/test.js" location="/resources/js/" />
/js/test.js
В папке будет просматриваться только URL /resources/js/
-адрес с.
Пожалуйста, имейте в виду, что любой другой запрос, например /js/jquery
, or js/abc
, не будет отфильтрован.
Комментарии:
1. Если location /resources/js/ содержит другие файлы js, я могу получить к ним доступ по URL js/test1.js , js/test2.js как js/test.js . Есть ли какой-либо фильтр, к которому я могу получить доступ только js/test.js нет js/test1.js ?
2. Используете ли вы Spring Security?
3. почему мы должны использовать /** в сопоставлении?