* 和 ** 之间的区别应该是:* 匹配到“/”,而 ** 匹配包括“/”在内的所有路径。我注意到对于 web xml 中的过滤器映射,“/*”甚至对具有多个“/”的路径也有效,例如:
<filter>
<filter-name>loginFilter</filter-name>
<filter-class>..LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/test/*</url-pattern>
</filter-mapping>
这将匹配/test/......./....
那么这是否特定于过滤器映射? servlet 映射是相同的还是与 ** 一起工作?
此映射是在项目的 (Spring Data) web.xml 而不是 tomcat 中完成的,我不确定它是否不同。
我也尝试过 tomcat web.xml,似乎“/*”适用于所有带“/”的路径,问题是“/**”何时适用?
最佳答案
带有“**”的 Ant 样式模式在 web.xml
文件中不起作用。查看Servlet specification “12.2 映射规范”一章中有关允许哪些映射的详细信息。选项相当有限。 '*' 字符仅用于前缀映射和扩展映射。在所有其他情况下,它按字面解释(用于精确匹配)。
关于java - 使用 url 模式过滤映射 servlet **,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52582082/