与 in 和 方法不同,我们无法使用 in 和 方法获取请求参数。我们需要从输入流中手动检索它们。doGet()
doPost()
getParameter()
doPut()
doDelete()
以下方法检索请求参数并在映射中返回这些参数:
public static Map<String, String> getParameterMap(HttpServletRequest request) {
BufferedReader br = null;
Map<String, String> dataMap = null;
try {
InputStreamReader reader = new InputStreamReader(
request.getInputStream());
br = new BufferedReader(reader);
String data = br.readLine();
dataMap = Splitter.on('&')
.trimResults()
.withKeyValueSeparator(
Splitter.on('=')
.limit(2)
.trimResults())
.split(data);
return dataMap;
} catch (IOException ex) {
Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
} finally {
if (br != null) {
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(Utils.class.getName()).log(Level.WARNING, null, ex);
}
}
}
return dataMap;
}
该示例使用 Google 的 Guava 库来解析参数。有关包含 、 和 方法的完整示例,您可以阅读我的使用 jsGrid 教程。doGet()
doPost()
doPut()
doDelete()