Sai*_*Sai 7 java web.xml servlets url-pattern
我试图映射一个匹配两者的servlet模式
/server/abcDef/1432124/adfadfasdfa
Run Code Online (Sandbox Code Playgroud)
和
/server/abcDef/abcd/12345
Run Code Online (Sandbox Code Playgroud)
值'1432124'和'abcd'不是固定的,可以是多个值.所以基本上我需要匹配/abcDef/*/*- 只有abcDef是固定的.
有没有办法让我映射这个?我真的在寻找以下内容:
<servlet-mapping>
<servlet-name>abcDefServlet</servlet-name>
<url-pattern>/server/abcDef/*/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
Cas*_*sio 11
根据Servlet规范,以"/*"结尾的URL模式将匹配前一路径的所有请求.所以,按照你的方式,你必须输入以下url才能访问abcDefServlet:
http://myapp.com/server/abcDef/*/<wildcard>
Run Code Online (Sandbox Code Playgroud)
您可以做的是在一个servlet映射中添加多个URL模式.例如:
<servlet-mapping>
<servlet-name>abcDefServlet</servlet-name>
<url-pattern>/server/abcDef/1432124/*</url-pattern>
<url-pattern>/server/abcDef/abcd/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
更新:
由于1432124和abcd不是固定值,您可以安全地添加以下映射:
<servlet-mapping>
<servlet-name>abcDefServlet</servlet-name>
<url-pattern>/server/abcDef/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
然后abcDef使用以下函数处理servlet内部之后的任何值:
req.getPathInfo()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10049 次 |
| 最近记录: |