Зачем использовать фильтр Rewrite URL весной?
-
01-10-2019 - |
Вопрос
Пружинное приложение, которое я использую, объявляет Тукки Фильтр URLREWRITE, а затем устанавливает правило перезаписи как следующее:
<rule>
<from>^/(.*)$</from>
<to last="true">/app/$1</to>
</rule>
Почему это делать?
Будет не удастся распознавать запросы, которые не переходят на /app/
URL?
В противном случае то, что преимущество этого перенаправления?
Решение
Представьте, что вы хотите весной MVC DispatcherServlet
Чтобы обработать все URL в вашей приложении, исключая URL-адреса статического контента. Если вы попытаетесь сделать это напрямую с <url-pattern>/</url-pattern>
, Это отображение будет иметь приоритет над статическим содержанием.
С помощью фильтра Rewrite вы можете указать исключения для статического контента, как это:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/staticContentHere/**</from>
<to>/staticContentHere/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
</urlrewrite>
РЕДАКТИРОВАТЬ:Обратите внимание, что с весны 3.0.4 есть <mvc:resources />
Декларация. С этой декларацией, DispatcherServlet
будет подавать статический контент от /resources
подпапка вашего WebApp, поэтому перезапись не понадобится (см. http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/).