Servlet 中 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只知道有一种: form中method属性为post。

GET 和 post 方法有本质的区别;

  • GET 只有一个流 ,参数附加到 url 后,大小个数都有严格的限制,且只能是字符串;
  • POST 的参数不通过 url 而是通过其他流的传递参数,所以可以很大,也可以传递二进制数据,例如上传文件。

3、数据传送方式

get方式: 表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体。
post方式: 表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到
post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

4、服务器获取数据方式

GET方式: 服务器采用request.QueryString来获取变量的值。
POST方式: 服务器采用request.Form来获取数据。

5、传送的数据量

**GET方式:**数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制。
**POST方式:**适合大规模的数据传送。因为是以实体的方式传送的。

6、安全性

GET方式: 安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低。
POST方式: 安全性高。因为post方式提交数据时是采用的HTTP post机制,是将表单中的字段与值放置在HTTP HEADER内一起传送到ACTION所指的URL中,用户是看不见的。

7、在用户刷新时

GET方式: 不会有任何提示、
POST方式: 会弹出提示框,问用户是否重新提交。

tips:

在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。

猜你喜欢

转载自blog.csdn.net/djklsajdklsajdlk/article/details/105613079