下面的例子是获取request中的参数,一个简单的servlet
package com.yydone.web;
import java.io.IOException;
import java.util.Map;
import java.util.Map.Entry;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/TestServlet")
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public TestServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Map<String,String[]> parameterMap = request.getParameterMap();
if(parameterMap!=null) {
for(Entry<String, String[]> entry:parameterMap.entrySet()) {
String [] values = entry.getValue();
String value = "";
if(values!=null){
for(String s:values){
value += s+ ",";
}
if(!"".equals(value)){
value = value.substring(0, value.length()-1);
}
}
System.out.println(entry.getKey().toString()+":"+value);
}
}
}
}
request.getParameterMap()返回的是Map<String,String[]>,而不是Map<String,String>。
为什么要String[]呢,经过测试,当参数名同名时,String[]就会用到了。
如name=n1&name=n2&name=n3时,String[0]=n1,String[1]=n2,String[2]=n3。