如果我有一个运行JVM1.4.2的servlet,并且它正在接收带有表单数据字段的POST请求。我使用req.getParameterNames()来获得我期望的所有查询字符串和表单数据。但是,我所得到的都是查询字符串参数。如何访问servlet中的发布表单数据?
文学我reading各种sources说getParameterNames()和getParameterValues(字符串)应该是让所有的查询字符串,并通过浏览器进行JDK 1.4发送提交的表单数据的方式。下面是我用它来提取所有的参数,我希望将包括提交的表单数据的方法:
public Map getParameterMap(HttpServletRequest req) {
Map params= new HashMap();
String name = null;
System.out.println("<< Getting Parameter Map.>>");
Enumeration enumParams = req.getParameterNames();
for (; enumParams.hasMoreElements();) {
// Get the name of the request parameter
name = (String)enumParams.nextElement();
// Get the value of the request parameters
// If the request parameter can appear more than once
// in the query string, get all values
String[] values = req.getParameterValues(name);
params.put(name, values);
String sValues = "";
for(int i=0;i<values.length;i++){
if(0<i) {
sValues+=",";
}
sValues +=values[i];
}
System.out.println("Param " + name + ": " + sValues);
}
System.out.println("<<END>>");
return params;
}
This问题也同意了我的预期,但servlet不是拿起表格数据。显然,我失去了一些东西....
更新:POST数据是非常简单的,而不是一个多形式或富媒体。只是plain'ol通过AJAX POST看起来像这样在机身后提交的文本
C1 =值%20A & C2 =值%20B & C3 =%价值20℃
是什么形式的样子?特别是'form'元素本身,以及'input' /'select' /'textarea'元素的一个例子。 –
给downvoter。如果你要去-1,请说为什么,我或许能改善问题....:■ – giulio
@TJ所以你说,不是所有的表单数据是“平等”?现代浏览器在表单数据中区分旧式JVM下的servlet未检测到? – giulio