Perché usare un filtro URL Rewrite in primavera?
-
01-10-2019 - |
Domanda
A Spring applicazione sto usando dichiara un Tuckey URLRewrite filtro, quindi imposta una riscrittura regola come la seguente:
<rule>
<from>^/(.*)$</from>
<to last="true">/app/$1</to>
</rule>
Perché fare questo?
Will Primavera non essere in grado di riconoscere le richieste che non vanno per l'url /app/
?
In caso contrario, qual è il vantaggio di questo redirect?
Soluzione
Si immagini di voler DispatcherServlet
di Spring MVC per gestire tutti gli URL nella vostra applicazione esclusi gli URL dei contenuti statici. Se si tenta di farlo direttamente con <url-pattern>/</url-pattern>
, questa mappatura avrà la precedenza sul contenuto statico.
Con filtro riscrittura è possibile specificare le esclusioni per il contenuto statico, in questo modo:
<urlrewrite default-match-type="wildcard">
<rule>
<from>/staticContentHere/**</from>
<to>/staticContentHere/$1</to>
</rule>
<rule>
<from>/**</from>
<to>/app/$1</to>
</rule>
</urlrewrite>
Modifica
Si noti che dalla primavera 3.0.4 v'è una dichiarazione <mvc:resources />
. Con questa dichiarazione, DispatcherServlet
servirà contenuti statici dalla sottocartella /resources
del vostro webapp, quindi la riscrittura non sarà necessario (vedi http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/ ).