servlets - servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射?

标签 servlets get web.xml path-parameter

servlet 是否支持 urls 如下:

/xyz/{value}/test

其中 value 可以替换为文本或数字。

如何在 web.xml 中映射它?

最佳答案

Servlet API 不支持使用 URL 模式通配符 *在映射的中间。它只允许通配符 *像这样映射到底/prefix/*或者像这样在映射的开始 *.suffix .
使用标准允许的 URL 模式语法,最好的办法是将其映射到 /xyz/*并使用 HttpServletRequest#getPathInfo() 提取路径信息.
所以,给定一个 <url-pattern>/xyz/*</url-pattern> ,这是一个基本的启动示例,如何提取路径信息,省略了空检查和数组索引越界检查:

String pathInfo = request.getPathInfo(); // /{value}/test
String[] pathParts = pathInfo.split("/");
String part1 = pathParts[1]; // {value}
String part2 = pathParts[2]; // test
// ...
如果你想要更细粒度的控制,比如使用 Apache HTTPD 的 mod_rewrite ,那么你可以看看Tuckey's URL rewrite filterhomegrow your own URL rewrite filter .

关于servlets - servlet和路径参数如/xyz/{value}/test,如何在web.xml中映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8715474/

相关文章:

servlets - ServletContextListener v/s init() 方法

Eclipse:如何将 javax.servlet 包添加到项目中?

java - 为什么使用 ServletRequestAware 而不是 ServletActionContext?

javascript - 如何使用 javascript 获取 HTTP GET 请求值

java - 如何将 web.xml 中的 <security-constraint> 迁移到基于 spring 类的配置(WebApplicationInitializer)

java - 在 WebLogic 12.1.3 上部署应用程序时出现 "The Struts dispatcher cannot be found"错误

java - 另一个关于servlet的问题

php - 使用 AngularJS 将数组作为参数传递给 PHP Restful Api

jquery - 如何从点击的img中获取src值

Java 条件配置 (web.xml) - 开发/生产