2011-10-25 20 views
9

Encontré un proyecto J2EE escrito por otros. Cuando llego al web.xml, hay dos servlets diferentes mapeados en el mismo patrón de URL. Me pregunto el propósito de este enfoque. ¿Cómo funciona exactamente eso y cuál es el puspose?Tener dos servlets diferentes mapeados en el mismo patrón de URL

Aquí está la parte correspondiente de la 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

Para pegar las partes del xml sería bueno. – hellectronic

+0

ya he publicado el contenido web.xml todavía. –

+3

Esos no son lo mismo: la especificación del servlet indica que la coincidencia de patrón distingue entre mayúsculas y minúsculas. –

Respuesta

11

sólo obtendrá una llamada de servlet; no conozco ningún mecanismo para manejar una sola solicitud con dos servlets (ni estoy seguro de lo que eso significaría).

Servlet Los patrones de URL pueden solaparse, pero tener dos con exactamente la misma URL no tiene sentido. No recuerdo si la especificación del servlet explícitamente no permite, pero la coincidencia se detiene en la primera coincidencia. El método de coincidencia se define en la especificación.

Servlet 2.4 spec PDF Véase p. 85+

+0

La especificación es bastante clara que los patrones de url se deben probar en orden de su aparición, por lo que se cumple la primera coincidencia más larga. SRV 2.5. – EJP

+0

@EJP ¿Pensé que eso era lo que hacía la parte de las especificaciones de mapeo? –

+0

Modifiqué mi comentario, pero las partes que analizan las asignaciones de filtro y las restricciones de seguridad son explícitas sobre el orden de web.xml; # 11.1 que discute no lo es. – EJP

Cuestiones relacionadas