今天进行form表单提交时,发现input域中已经存在了某个参数,而又在url后拼了一个同样名字的参数,两者只是值不同,后台用request.getParameter(“name”)获取值时,发现取得是url后拼的get方式的参数值
直接上代码
http://xxx.do?id=1&name=a;
<form action="xxx.do" method="post">
<input type=hidden name="id" value="2"/>
<input type=hidden name="name" value="b"/>
<input type=submit name=submit />
</form>
表单提交后,通过后台的方法
request.getParameter(id)
request.getParameter(name)
得到的结果分别为1,a; (url后面拼的参数值 get方式)
总结:
http协议默认先获取get请求方式的参数(即url中拼的参数),
无论以哪种方式提交,总是优先获取get方式的参数,
如果获取到了get方式的参数就不再获取post方式的参数(即body中的参数);
如果没有获取到get方式的参数,则再去获取post方式的参数。
像下面这种情况就是取get方式中的id,取表单中的name
http://xxx.do?id=1;
<form action="xxx.do" method="post">
<input type=hidden name="id" value="2"/>
<input type=hidden name="name" value="b"/>
<input type=submit name=submit />
</form>
表单提交后,通过后台的方法
request.getParameter(id)
request.getParameter(name)
得到的结果分别为1,b;
当然如果表单中存在相同的参数,则通过这种request.getParameter(id) 获取到了是一个数组对象,如这种的String数组对象Ljava.lang.String;@6dc1f12F
所以request.getParameter(id) 用于接收单个参数。