Наше приложение представляет собой приложение Java/Spring3/Spring MVC/Hibernate.Как перехватить запрос для определенного типа файла?
У нас есть ресурсы, которые хранятся в разных местах на серверной машине. Места хранятся в базе данных. В основном, когда веб-приложение запрашивает файл с uri, например /<our-app>/page/file.kml
, когда необходимо перехватить этот вызов, проигнорируйте запрошенный uri, найдите фактическое местоположение файла и верните его в качестве ответа.
В нашем servlet-context.xml
у нас есть некоторые перехватчики;
<interceptors>
<interceptor>
<mapping path="/page/**" />
<beans:bean class="com.ourapp.AuthenticationInterceptor" />
</interceptor>
<interceptor>
<mapping path="/page/*.kml" />
<beans:bean class="com.ourapp.KmlInterceptor" />
</interceptor>
</interceptors>
Первый перехват предназначен для нашей аутентификации и отлично работает. В основном убедитесь, что пользователь зарегистрирован для ЛЮБОГО запроса.
Второй перехватчик - это то, что мы установили, чтобы попробовать и перехватить запросы к файлам KML с помощью geoXML3. Кажется, что перехватчик не стреляет? (т. е. KmlInterceptor.preHandle не называется?).
Делаем ли мы правильное отображение там?
Это способ перехватить запросы для определенных типов файлов и вернуть фактический файл, извлеченный из другого места?
Является ли путь к файлам '/ pages/something.kml' или есть дополнительные подкаталоги? Если да, возможно, попытка с '/ page/**/*. Kml' будет делать. –
Ну что ж, в файле /page/something.kml нет файла. Мы хотим поймать запрос на этот uri, найти файл в другом месте и вернуть его в ответ. т.е. никогда не позволяйте веб-приложению искать файл на /page/something.kml –
Да, я это понял. Я спрашивал, потому что выражение может быть неправильным, если поддельный документ был на '/ pages/adirectory/file.kml' –