如果我有一個運行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