HttpServletRequest获取参数
1HttpServletRequest获取参数方法
可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:
StringgetParameter(Stringname):通过指定名称获取参数值;
String[]getParameterValues(Stringname):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;
EnumerationgetParameterNames():获取所有参数的名字;
MapgetParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。
2传递参数的方式
传递参数的方式:GET和POST。
GET:
地址栏中直接给出参数:http://localhost/param/ParamServlet?p1=v1p2=v2;
超链接中给出参数:ahref=”http://localhost/param/ParamServlet?p1=v1p2=v2”???/a
表单中给出参数:formmethod=”GET”action=”ParamServlet”…/form
POST:
表单中给出参数:formmethod=”POST”action=”ParamServlet”…/form
无论是GET还是POST,获取参数的方法是相同的。
Strings1=request.getParameter(“p1”);//返回v1
Strings2=request.getParameter(“p2”);//返回v2
formaction=ParamServletmethod=post
inputtype=textname=p1/br/
inputtype=textname=p2/br/
inputtype=submitvalue=提交/br/
/form
ahref=ParamServlet?p1=v1p2=v2Param/a
Strings1=request.getParameter(p1);
Strings2=request.getParameter(p2);
response.getWriter().print(p1=+s1+br/);
response.getWriter().print(p2=+s2+br/);
Enumerationnames=request.getParameterNames();
while(names.hasMoreElements()){
Stringname=(String)names.nextElement();
Stringvalue=request.getParameter(name);
System.out.println(name+=+value);
}
3多值参数
例如在注册表单中,如果让用户填写爱好,那么爱好可能就是多个。那么hobby参数就会对应多个值:
formaction=ParamServletmethod=post
上网:inputtype=checkboxname=hobbyvalue=netplay/br/
踢球:inputtype=checkboxname=hobbyvalue=football/br/
看书:inputtype=checkboxname=hobbyvalue=read/br/
编程:inputtype=checkboxname=hobbyvalue=programme/br/
inputtype=submitvalue=提交/br/
/form
//获取所有名为hoby的参数值
String[]hobbies=request.getParameterValues(hobby);
System.out.println(Arrays.toString(hobbies));
4获取所有参数,并封装到Map中
request.getParameterMap()方法返回Map类型,对应所有参数。其中Map的key对应参数的名字;Map的value对应参数的值。
formaction=ParamServletmethod=post
姓名:inputtype=textname=name/br/
年龄:inputtype=textn