<form action=”getpostservlet/getpost.do?param4=param4″ method=”get”> 
<input type=”hidden” name=”param1″ value=”param1″> 
<input type=”hidden” name=”param2″ value=”param2″> 
<input type=”text” name=”param3″ value=”param3″ readonly> 
<input type=”submit” name=”button1″ value=”submit”> 
</form>

注意到表单中action:getpostservlet/getpost.do?param4=param4,这个action带有一个参数param4。

1.如果用get方法提交,后台无法接收到这个参数;
2.如果用post方法提交,后台就可以接收到这个参数。

经查询发现:
1.用get方法提交的url显示如下:
http://localhost/mywebapp/getpostservlet/getpost.do?pram1=param1&pram2=param2&pram3=param3&button1=submit
1
也就是说method为get时action自己后边带的参数列表会被忽视,,后台无法接收到这个参数,只能得到表单中的参数;

2.用post方法提交的url显示如下:
http://localhost/mywebapp/getpostservlet/getpost.do?param4=param4
1
也就是说post方式提交表单,参数分为两部分:一部分是action中的参数放在地址栏;另一部分是表单中的参数放在请求的头中;所以所有的数据后台全部能获得。

总结:
get: get请求方式的表单的action属性中不能附带任何参数,如果仍然想使用get请求方式,可以在form表单中添加相应的隐藏文本域,例如:

<input name=”method” type=”hidden” value=”test”>
1
post: 采用post请求方式,在form中增加属性method=”post”即可。

来源: