java - 使用 url 模式过滤映射 servlet **

标签 java spring tomcat servlets

* 和 ** 之间的区别应该是:* 匹配到“/”,而 ** 匹配包括“/”在内的所有路径。我注意到对于 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/

相关文章:

spring - 现有的 Spring 应用程序到 Cloud Foundry

java - 在android中下载、存储和混合.ts文件的正确方法是什么?

java - 组合框依赖于另一个组合框 - JavaFX

java - 为什么joptionpane弹出两次

java - OkHttp客户端如何设置线程名称

spring - 使用 Spring 3.1 MVC 的上下文路径配置

java - SPRING MVC 无法从 json 获取参数

mysql - 如何从表中检索特定列 --- JPA 或 CrudRepository?我只想从用户表中检索电子邮件列

java - 将通用 jar 保留在服务器库中,然后将其作为 war 分发的一部分是否更有效?

java - "Shutdown tomcat server"等。给所有当前登录用户的消息