我是Java EE环境的新手。我想知道如何从servlet中的请求URL中提取命名参数。
例如,我有一个网址格式products/show/:id
。如何从请求的网址中提取id
的值?
在对Google进行一些研究后,我了解了@PathParam
注释。但是它似乎只适用于RESTful webapps。我需要一些通用的东西或者为简单的servlet剪掉。
答案 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)的值(它将根据点击的按钮,字段是否有效等而改变)。