如何从url中提取命名参数?

时间:2014-07-13 06:57:44

标签: java java-ee servlets glassfish ejb

我是Java EE环境的新手。我想知道如何从servlet中的请求URL中提取命名参数。

例如,我有一个网址格式products/show/:id。如何从请求的网址中提取id的值?

在对Google进行一些研究后,我了解了@PathParam注释。但是它似乎只适用于RESTful webapps。我需要一些通用的东西或者为简单的servlet剪掉。

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方式:

String pathWithValue = request.getPathInfo(); String value = pathWithValue.subString(pathWithValue.indexOf(" products / show /" .length())

getPathInfo会自动进行URL解码,也不包含查询字符串! 考虑到getPathInfo值取决于web.xml中的servlet映射配置:f.e。 / *

答案 1 :(得分:0)

如果您要处理HTTPServletRequest对象,请尝试将其放入您的代码中:

Enumeration<String> e = request.getParameterNames();
while (e.hasMoreElements()) {
    String param = e.nextElement();
    System.out.println(param + ": " + request.getParameter(param));
}

这将通过所有可用的表单或对象来获取使用request.getParameter(id)的值(它将根据点击的按钮,字段是否有效等而改变)。