java web-applications servlets java-ee-5

java - Mapeo de servlets usando web.xml



web-applications java-ee-5 (1)

Permite que los servlets tengan múltiples asignaciones de servlets:

<servlet> <servlet-name>Servlet1</servlet-name> <servlet-path>foo.Servlet</servlet-path> </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/enroll</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/pay</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/bill</url-pattern> </servlet-mapping>

Permite mapear filtros en el servlet particular:

<filter-mapping> <filter-name>Filter1</filter-name> <servlet-name>Servlet1</servlet-name> </filter-mapping>

Su propuesta no apoyaría a ninguno de ellos. Tenga en cuenta que el web.xml se lee y analiza solo una vez durante el inicio de la aplicación, no en cada solicitud HTTP, como parece pensar.

Desde Servlet 3.0, existe la anotación @WebServlet que minimiza esta repetición:

@WebServlet("/enroll") public class Servlet1 extends HttpServlet {

Ver también:

Tengo una confusión con respecto a la estructura del web.xml para el mapeo de servlets, no tengo ningún problema al ejecutarlo, pero estoy tratando de entender por qué tenemos ese patrón en el descriptor de implementación.

<web-app> <servlet> <servlet-name>Servlet1</servlet-name> <servlet-path>foo.Servlet</servlet-path> </servlet> <servlet-mapping> <servlet-name>Servlet1</servlet-name> <url-pattern>/enroll</url-pattern> </servlet-mapping> </web-app>

Ahora, según tengo entendido, siempre que se solicite el url-pattern "/ enroll", el contenedor servlet va a coincidir con el nombre del servlet con el url-pattern y tratará de encontrar el servlet-path correspondiente y reenviará el control para foo.Servlet. así que básicamente habría dos pases uno para encontrar servlet-name y otro para servlet-path, mi pregunta es si el contenedor está diseñado para funcionar de la siguiente manera

<web-app> <servlet> <servlet-name>foo.Servlet</servlet-path> <url-pattern>/enroll</url-pattern> </servlet> </web-app>

cuál sería el inconveniente si usamos el siguiente enfoque. ¿No sería más eficiente y el tiempo de respuesta sería rápido?