2011-09-16 15 views
6

Ho bisogno di servire la mia applicazione principale con il modello di URL "/*" quindi questo modello è abbinato a un servlet. Il problema che sto avendo ora sono tutti i file CSS e le immagini che si trovano in "/css/all.css", "/ images /" ecc stanno attraversando questo Servlet che è indesiderabile. Voglio che questi file siano direttamente accessibili. Qual è il modo migliore per gestire questa situazione?Come escludere/reindirizzare determinati pattern url nel modulo web.xml o Guice?

Nota: sto utilizzando il modulo servlet di Guice per configurare i modelli.

Grazie!

+0

[. Non credo che '/ *' è il modello che si desidera iniziare con] (http://stackoverflow.com/q/7447885/399649) –

risposta

5

Abbiamo bisogno di sapere in modo specifico quali richieste devono essere indirizzate al servlet, in modo da sapere come codificare le regole. Non riesco a capire se a) tutte le richieste eccetto CSS e immagini debbano essere inviate al servlet, oppure b) il servlet deve gestire solo le richieste a un insieme specifico di cartelle/directory. Probabilmente si vorrà fare una delle due cose:

escludere cartelle specifiche:

^/(?!css|images).* 

o includere cartelle specifiche:

^/myservlet/.* 

si dovrebbe cambiare quei * simboli per + se, come si indicato nella domanda precedente, si desidera richiedere almeno un carattere dopo lo / nel modello.

+0

Grazie ! Stavo cercando di usare il filtro per raggiungere questo obiettivo, ma questo è più elegante! – Mayumi

+2

Si noti che questo si applica solo a Guice e non al web.xml menzionato nel titolo della domanda. Il web.xml 'url-pattern' ha solo il supporto per i caratteri jolly semplici di percorso e di estensione:'/* 'e'. * ' – Kapep

0

Questo dovrebbe funzionare per voi:

fare tutte le vostre immagini/risorse CSS ecc passare attraverso il default servlet. E fare una mappatura del genere:

<servlet-mapping> 
    <servlet-name>default</servlet-name> 
    <url-pattern>*.xml</url-pattern> 
    <url-pattern>*.html</url-pattern> 
    <url-pattern>*.png</url-pattern> 
    <url-pattern>*.jpg</url-pattern> 
    <url-pattern>*.gif</url-pattern> 
    <url-pattern>*.js</url-pattern> 
    <url-pattern>*.css</url-pattern> 
</servlet-mapping> 
Problemi correlati