jsp写html时<form>的method=post和method=get有什么区别???

请问下,我在使用netbeans的时候,jsp写一个html的时候,从表单输入信息,然后点击提交,显示的用户的信息中所有的汉字都是乱码,当把表单中的method=post改为method=get后,就可以现实正常了,请问下,这是怎么回事啊??

Get 和Post都是HTTP的标准协议动词,用于编码和传送变量名和变量值,无论Get 和Post都是通过编码后传送数据。是这个问题解释起来有点难,但有两点是可以肯定的:一是:get方式传送数据时附加参数被认为是一个查询字符串,变量名/变量值作为URL的一部分被传送,假如读取数据后,不立即跳转到别的页面上,地址栏上会看得到有关的参数和值,并与表单一一对应,如地址栏上会看到xx=??&xx=??。而post方式传送,虽然也是被URL编码的。然而,变量名/变量值不作为URL的一部分被传送,而是放在实际的HTTP请求消息内部被传送。从地址栏上看不到。二是:get 默认(只是默认)是以使用MIME类型application/x-www-form-urlencoded的urlencoded文本的格式传递参数。Urlencoding是一种字符编码,保证被传送的参数由遵循规范的文本组成。post则可以通过页面指定的编码方式进行编码。目前大体有两类:一是ANSI的ASCII字符集,不同的国家和地区制定了不同的标准,由此产生了GB2312、BIG5, JIS等等,且互不兼容,并且与之后出现的国际性的UNICODE标准编码的UTF-8等也不兼容,因此稍有不慎便出现乱码。要保证不出现乱码,要注意几个问题:Dreamweaver等软件编辑网页时要注意设置好编码标准。在页面上明确指出使用何种编码标准,如bg2312或UTF-8,并且与Dreamweaver等软件设置的编码统一,这不单单是改几个字符的问题,从一种编码转成另一种编码最好也通过软件重新编码。全站统一,不忽这忽那。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-26
主要的区别可以在URL地址中看得到的,如果用get方式,在URL中可以看到具体的信息。比如用户名和密码用get方式,那么在URL中会直接看到用户名和密码,属于明码传送数据,不安全,而且传送的数据还有大小限制,到多少KB后就不能发送了。而post发送正好相反,在URL地址中看不到具体信息,属于暗码传送,比较安全。一般建议用post发送,如果那个信息不重要,比如ID值等不重要的可以用get发送传送。而且中文问题在返回结果的时候需要转换编码方式,否则出现乱码情况。