¿Cuál es la diferencia entre dos asteriscos en lugar de un asterisco cuando nos referimos a rutas?
Anteriormente, estaba depurando mi proyecto Spring 3. Estaba intentando agregar un .swf usando
<spring:url var="flashy" value="/resources/images/flash.swf"/>
Con ResourceServlet de mi web.xml luciendo como
<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>
Pero desafortunadamente recibí este error:
WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.
Lo encontré realmente extraño ya que imagesse accedió a todas mis imágenes en la carpeta, pero ¿cómo es que mi .swf estaba "protegido"?
Después, decidí cambiar /resources/*a /resources/**y finalmente funcionó. Mi pregunta es ... ¿por qué?
                    
                        spring
                                web
                                resources
                                url-pattern
                                
                    
                    
                        mpmp
fuente
                
                fuente

/resources/**funciona<url-pattern>?Respuestas:
Este es un patrón de ruta que se utilizó en
Apache antSpring Team, implementarlo y utilizarlo en todo el marco.Como referencia, vea javadoc de AntPathMatcher (el javadoc más nuevo parece tener un problema, así que vinculo uno antiguo).
Volviendo a tu problema, según el documento, solo tiene 3 reglas:
?coincide con un personaje*coincide con cero o más caracteres**coincide con cero o más 'directorios' en una rutafuente
*igualar lo**que no?**/*.cssno funcionará para rutas que comiencen con a/, aunque debería de acuerdo con las convenciones de Ant Style.