doGet和doPost区别
2023-04-17 · 知道合伙人互联网行家
Servlet中doGet与doPost的区别:
doGet和doPost其实就是用来接收前端传过来的数据,本质上都是请求方法。因为servlet的请求类型有get和post两种类型。get调用,一般用于获取服务器信息,并将其作为响应返回给客户端。即当经由web浏览器、HTML、JSP直接访问servlet的url时,调用;post用于把客户端数据传送到服务器端,但也有不好的地方。
当服务器创建servlet对象后,servlet对象调用init方法初始化自己。以后每当服务器接收到一个servlet请求时,都会调用产生一个新线程,在这个新线程中,servlet对象调用service对象对HTTP请求类型进行检查,判断出请求类型是get还是post,在service方法中,根据请求类型对应的调用doGet、doPost方法。
1、get请求,页面传输的信息会以键值对的形式,显示在地址栏中的url后面达到传送目的的。
2、post请求,是根据http请求的附件 传送的。在地址栏没有明文显示。
3、get请求对提交的数据有大小的限制,通常在1024字节左右。不用来提交大数据。
4、post请求对提交的数据大小没有限制。
一般servlet都是默认用get方式接受前端数据,因为get请求类型可以很方便的控制链接的目标地址。
2、传输数据上的差别:doget1、3k多余的传输数据部分会被截取,dopost传输数据不会被截取。
3、安全性上的差别:通过doGet方式提交的数据安全性低,通过doGet方式提交的数据安全性高。
doGet是处理客户端发来的Get请求,doPost是处理客户端发来的Post请求,它们的区别可以从以下几个方面来说明:
1、客户端(一般指浏览器)生成的方式
get:form中method属性为get时;或者直接在URL地址栏中输入URL,需要传递参数时,直接在URL后面拼接“?name=张三&age=18”这样的查询参数字符串;
post:form中method属性为post。
2、客户端数据传送方式
get:表单数据存放在URL地址后面。所有get方式提交时HTTP中没有消息体;
post:表单数据存放在HTTP协议的消息体中以实体的方式传送到服务器。
3、服务器获取数据方式
get:服务器采用Servlet中的doGet来获取变量的值;
post:服务器采用Servlet中的doPost来获取数据。
4、传输的数据量
get:数据量长度有限制,一般不超过2kb。因为是参数传递,且在地址栏中,故数据量有限制;
post:适合大规模的数据传送。因为是以实体的方式传送的。
5、安全性
get:安全性差。因为是直接将数据显示在地址栏中,浏览器有缓冲,可记录用户信息。所以安全性低;
post:安全性高。因为post方式提交数据时是采用的HTTPpost机制,是将表单中的字段与值放置在HTTPHEADER内一起传送到ACTION所指的URL中,用户是看不见的。
2、传输数据上的差别:doget1、3k多余的传输数据部分会被截取,dopost传输数据不会被截取。
3、安全性上的差别:通过doGet方式提交的数据安全性低,通过doGet方式提交的数据安全性高。