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?