如何在 web.xml 中创建多个通配符 url 模式?

Mat*_*aes 6 java web.xml servlets jetty

如何在 Jetty 中路由以下路径?

/users/user_id/transactions/transaction_id
Run Code Online (Sandbox Code Playgroud)

我这样尝试过:

/users/*/transactions/*
Run Code Online (Sandbox Code Playgroud)

但我收到一条错误,如下所示:

java.lang.IllegalArgumentException:Servlet Spec 12.2 违规:glob '*' 只能存在于基于前缀的匹配的末尾:错误的规范"/users/*/transactions"

解决这个问题的办法是什么?

Ani*_* B. 6

在 中web.xml,如果您给出如下所示的 URL 模式:

\n\n
    <servlet-mapping>\n       <servlet-name>servletName</servlet-name>\n       <url-pattern>/users/*</url-pattern>\n    </servlet-mapping>\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此,URL 模式/users/*表示所有以/users/任何内容开头和结尾的请求都将被接受。例如 :/users/get/all

\n\n

但是您不能给出/users/*/anything/*/..不允许的 URL 模式。

\n\n

Oracle的 12.2 映射规范- Java\xe2\x84\xa2 Servlet 规范手册 - 版本 \n 4.0的屏幕截图:

\n\n

在此输入图像描述

\n