Pourquoi utiliser un filtre URL Rewrite au printemps?
-
01-10-2019 - |
Question
Une application Spring J'utilise déclare Tuckey UrlRewrite filtre et définit ensuite une ré-écriture règle comme suit:
<rule>
<from>^/(.*)$</from>
<to last="true">/app/$1</to>
</rule>
Pourquoi faire?
jaillira ne pas être en mesure de reconnaître les demandes qui ne vont pas à l'url /app/
?
Sinon, quel est l'avantage de cette redirection?
La solution
Imaginez que vous voulez que DispatcherServlet
Spring MVC pour gérer toutes les URL dans votre application à l'exclusion des URL de contenu statique. Si vous essayez de le faire directement avec <url-pattern>/</url-pattern>
, cette cartographie a priorité sur le contenu statique.
Avec filtre rewrite vous pouvez spécifier des exclusions pour le contenu statique, comme ceci:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/staticContentHere/**</from>
<to>/staticContentHere/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
</urlrewrite>
EDIT:
Notez que depuis le printemps 3.0.4 il y a une déclaration de <mvc:resources />
. Avec cette déclaration, DispatcherServlet
sera contenu statique du sous-dossier /resources
de votre webapp, la réécriture ne sera donc pas nécessaire (voir http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/ ).