当前位置: 首页 > 面试题库 >

Spring:路径/**和/*的差异

司马自明
2023-03-14
问题内容

引用路径时,两个星号而不是一个星号有什么区别?

之前我在调试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 antSpring团队使用的路径模式,并在整个框架中使用它。

作为参考,请参阅AntPathMatcher的 javadoc (最新的 javadoc似乎有问题,因此我链接了一个旧的javadoc)。

回到您的问题,根据文档,它只有3条规则:

  • ? 匹配一个字符
  • * 匹配零个或多个字符
  • ** 匹配路径中的零个或多个“目录”


 类似资料:
  • 我的web.xml的ResourceServlet看起来像 但不幸的是我得到了这个错误: 我觉得很奇怪,因为文件夹中的所有映像都被访问了,但我的.swf怎么会被“保护”呢? 之后,我决定将更改为,它最终起作用了。我的问题是...为什么?

  • 问题内容: 这个特殊的前缀指定必须获取与给定名称匹配的所有类路径资源(内部,这实际上是通过ClassLoader.getResources(…)调用发生的),然后合并以形成最终的应用程序上下文定义。 有人可以解释吗? 使用和不使用星号有什么区别? 问题答案: 这只是意味着,将拾取类路径上所有jar中文件夹下的所有appContext.xml文件,并将其加入一个大的应用程序上下文中。 相反,将仅加载

  • 我是Stack Overflow的新手,也是编程的新手,所以希望这有意义。我正在编写一个java程序,在特定目录中创建一个文件。我的程序在Windows上运行并在正确的位置创建一个文件,但在Mac上不起作用。我尝试过将反斜杠更改为单个正斜杠,但不起作用。我应该如何更改代码以使其适用于Mac或理想情况下适用于两者?我在下面放了一些代码。 提前感谢! 为文件创建新路径的类: 获取用户输入文件放置位置的

  • 本文向大家介绍数据路径之间的差异,包括了数据路径之间的差异的使用技巧和注意事项,需要的朋友参考一下 数据路径 CPU有两个部分,数据部分和控制部分。数据部分也称为数据路径。寄存器,ALU和互连总线共同构成一条数据路径。数据路径分为三种类型: 单周期 多周期 管道 以下是单周期,多周期和管道数据路径之间的一些重要区别。 序号 键 单周期 多周期 管道 1 单周期具有一个CPI(每个指令的时钟周期)。

  • 我使用的是Spring4.1.9.版本 配置下一个Rest控制器。 并创建了/get/{id}以某种方式隐藏/get/matrix/{vars}的映射 当我尝试通过下一个url调用它时http://localhost:8080/testmatrixvariables/get/matrix/;v1=1;v2=2;v3=3我从调试日志中获得 org.springframework.beans.Type

  • 我正在尝试使用PathVariable创建一个包含Hello和name user的简单页面。如果你来的话http://localhost:8080/#/John你会在网站上看到“你好,约翰”。 我知道好Java,但在AngularJS我是初学者。 Hello控制器 HelloController在角 app.js 简单的页面hello/布局。html 谢谢你的帮助!