2011-10-25 12 views
9

Ho riscontrato un progetto J2EE scritto da altri. Quando arrivo allo web.xml, ci sono due servlet diversi mappati sullo stesso pattern URL. Mi chiedo lo scopo di questo approccio. Come funziona esattamente e qual è lo scopo?Avere due servlet diversi mappati sullo stesso pattern URL

Ecco la parte rilevante del web.xml:

<servlet> 
    <servlet-name>fileDownload</servlet-name> 
    <servlet-class>com.htsoft.core.web.servlet.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownload</servlet-name> 
    <url-pattern>/file-download</url-pattern> 
</servlet-mapping> 

<servlet> 
    <servlet-name>fileDownLoad</servlet-name> 
    <servlet-class>com.kaiwii.oa.action.system.FileDownloadServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>fileDownLoad</servlet-name> 
    <url-pattern>/file-downLoad</url-pattern> 
</servlet-mapping> 
+0

Per incollare le parti del xml sarebbe buono. – hellectronic

+0

ho già pubblicato ancora il contenuto web.xml. –

+3

Questi non sono gli stessi: le specifiche della servlet indicano che la corrispondenza del modello è sensibile al maiuscolo/minuscolo. –

risposta

11

Solo verrà chiamato un servlet; non c'è alcun meccanismo di cui sono a conoscenza per gestire una singola richiesta con due servlet (né sono sicuro di cosa significherebbe).

Gli schemi URL servlet possono sovrapporsi, ma avere due con lo stesso URL non ha senso. Non ricordo se la specifica della servlet esplicitamente non consente l'invio di, tuttavia la corrispondenza si interrompe alla prima corrispondenza. Il metodo di corrispondenza è definito nelle specifiche.

Servlet 2.4 spec PDF Vedere a pag. 85+

+0

La specifica è abbastanza chiara che i modelli di URL devono essere testati in ordine di occorrenza, quindi vale la prima partita più lunga. SRV 2.5. – EJP

+0

@EJP Ho pensato che fosse quello che faceva la parte delle specifiche di mappatura? –

+0

Ho modificato il mio commento, ma le parti che discutono le mappature dei filtri e i vincoli di sicurezza sono esplicite sull'ordine web.xml; # 11.1 che discute non lo è. – EJP

Problemi correlati