Как я могу получить доступ к определенному одному файлу из сопоставления ресурсов весной

#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. почему мы должны использовать /** в сопоставлении?