您的位置:首页 > 运维架构 > Tomcat

表单的提交方式get和post的区别

2013-10-11 23:17 459 查看
<!--

form:标签中常见的属性定义:

action:指定表单组件数据发送的位置,如果没有定义action属性,那么默认提交为当前页面

method:定义表单提交方式,只有两种常用get、post。如果没有指定method,默认使用get提交方式

get和post的区别:

1)

get:会将提交的信息显示在地址栏上

post:不会将提交的信息显示在地址栏

2)

get:对于敏感信息不安全,因为显示在地址栏上

post:对于敏感信息安全,因为不显示

3)

get:因为显示在地址栏,而地址栏的信息数据量是有限的,所以不可以提交大数据

post:可以提交大体积的数据

4)

get:会将信息封装到请求行,也就是http请求信息头之前

post:会将信息封装到请求体中,也就是http请求消息头之后,请求体和请求头之间是通过空行来进行分隔

注意特殊之处:

对于服务端是tomcat服务器。当提交中文时:

get:提交,服务端接收到中文数据,会用到默认的编码表ISO88598——1解码,此时会出现乱码现象,所以必须对该乱码进行一次编码再解码 的动作,当向服务器请求时,会将数据封装到了一个请求对象中,request对象,可以通过该对象的String name = request.getParamter("user");获取客户端提交的用户名,但是解码用的ISO8859-1,name会出现乱码,new String(name.getBytes("iso8859-1"),"GBK");

post提交:服务端收到中文,可以使用编一次再解一次的方式,也就是和get一样的方式可以完成乱码解决。通过它还有另一个方式,就是直接使用request对象,调用一个方法,setCharacterEncoding("GBK");

只要设置了请求对象中的数据的编码表,那么String name = request.getParamter("user");那么name的值直接解码以后的正确数据。

注意:为什么get方法用方法setCharacterEncoding("GBK")就不行呢?

因为该方法只对请求体中的数据进行解码,不对请求头中的数据进行解码。

综上所述:以后在进行表单提交时,建议使用Post提交方式

-->
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息