一、doGet()和doPost的区别
1、form运行方式
当form框里面的method为get时,执行doGet方法
当form框里面的method为post时,执行doPost方法
2、生成方式
get方式:
(1)直接在URL地址栏中输入URL,
(2)网页中的超链接
(3)form中的method为get时
(4)form中method为空时,默认是get方式
post方法:
(1)form中method属性为post
3、数据传输方式:
doGet()方式:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。
<简单来说,在使用doGet()方法时,我们所传递的参数都会显示在请求行中>
doPost()方式:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。
<使用doPost()方法时,我们所传递的参数将会保存在请求体中>
4、服务器获取数据方式
get方式:服务器采用request.QueryString来获取变量的值
post方式:服务器采用request.Form来获取数据
5、传送的数据量
get方式:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制
post方式:适合大规模的数据传送,因为是以实体的方式传送的
传输速度上的差别:doget传输速度高于dopost传输速度。
6、安全性
get方式:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息,所以安全性低。
post方式:安全性高。因为post方式提交数据时采用的HTTP post机制,是将表单中的字段与值放置在HTTP Header内一起传送到action所指的URL中,用户是看不见的。
7、在用户刷新时
get方式:不会有任何提示
post方式:会弹出提示框,问用户是否重提交