Spring:路径/**和/*的差异
引用路径时,两个星号而不是一个星号有什么区别?
之前我在调试Spring 3项目。我正在尝试使用添加.swf
<spring:url var="flashy" value="/resources/images/flash.swf"/>
我的web.xml的ResourceServlet看起来像
<servlet-name>Resource Servlet </servlet-name><url-pattern>/resources/*</url-pattern>
但是不幸的是我遇到了这个错误:
WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.
我发现这真的很奇怪,因为images
访问了该文件夹中的所有图像,但是为什么.swf受到了“保护”?
之后,我决定将更/resources/*
改为/resources/**
,终于可以了。我的问题是…为什么?
回答:
这是Apache ant
Spring团队使用的路径模式,并在整个框架中使用它。
作为参考,请参阅AntPathMatcher的 javadoc (最新的 javadoc似乎有问题,因此我链接了一个旧的javadoc)。
回到您的问题,根据文档,它只有3条规则:
?
匹配一个字符*
匹配零个或多个字符**
匹配路径中的零个或多个“目录”
以上是 Spring:路径/**和/*的差异 的全部内容, 来源链接: utcz.com/qa/427675.html