Duplicar posibles:
Servlet mapping/vs /*differenct entre/y/* en el servlet patrón coincide con la URL
¿Cuál es la diferencia de '/' y '/ *' en la correlación de servlet url?
Desde que estoy leyendo el libro de primavera en la acción, y me encontré con estas palabras:
A continuación debemos indicar qué URL serán manejados por el DispatcherServlet. Es común encontrar DispatcherServlet asignado a los patrones de URL , como .htm,/ o/app. Pero estos patrones de URL tienen unos problemas :
- El patrón * .htm implica que la respuesta será siempre en el formulario HTML (que, como vamos a aprender en el capítulo 11, no es necesariamente el caso )
- Asignarlo a/* no implica ningún tipo específico de respuesta, pero indica que DispatcherServlet atenderá todas las solicitudes. Eso hace que sirva contenido estático como imágenes y hojas de estilo más difícil de lo necesario.
- El patrón/app (o algo similar) nos ayuda a distinguir el contenido servido por Servlet Dispatcher de otros tipos de contenido. Pero luego tenemos un detalle de implementación (específicamente, la ruta/app) expuesto en nuestras URL. Esto lleva a complicadas tácticas de reescritura de URL para ocultar la ruta/app.
En lugar de utilizar cualquiera de estos esquemas servlet-mapping defectuosos, prefiero mapeo DispatcherServlet así:
<servlet-mapping> <servlet-name>spitter</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
Por DispatcherServlet del mapa a /, estoy diciendo que es el valor por defecto servlet y que será responsable de manejar todas las solicitudes, incluyendo solicitudes de contenido estático.
De acuerdo con las palabras anteriores, parece que tanto '/' como '/ *' atenderán toda la solicitud.
¿Cuál es la diferencia?
¿Cuál es exactamente la diferencia entre el servlet predeterminado ('/') y el todo '/ *'? – hguser