从控制器内部的URL获取多个部分

时间:2015-11-10 09:24:12

标签: java servlets web.xml url-pattern

我的servlet与<url-pattern> /controller/*/* </url-pattern>映射我的网址就像这样controller/12341/ABC123总是这样,但值可以更改。

我正在努力获得第一个*和第二个*的价值serial & mac

我写下面的代码,但它只返回最后一部分ACB123

String mac= request.getPathInfo().replace("/", "");

我怎样才能同时获得两个vaules?

1 个答案:

答案 0 :(得分:0)

如果我正确读取了servlet规范,则不能有多个通配符。试试

<url-pattern>/controller/*</url-pattern>

然后:

String[] parts = request.getPathInfo().split("/");
String serial = parts[1]; // before last index
String mac = parts[2]; // last index

当然,您需要对此进行一些错误处理。

相关说明:纯servlet API很难处理。如果您只有这个servlet或以某种方式受到约束,这可能没问题。但是,如果你有更多的servlet,甚至需要HTTP请求参数处理,解析等,使用像Spring WebMVC这样的框架可能更合适。

相关问题