欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP、Servlet中get请求和post请求的区别总结

程序员文章站 2024-02-27 20:53:33
在学习javaweb最初的开始阶段,大家都会遇到httpservlet中的doget和dopost方法。前两天看《head first servlets & jsp》看到其...

在学习javaweb最初的开始阶段,大家都会遇到httpservlet中的doget和dopost方法。前两天看《head first servlets & jsp》看到其中讲关于servlet中get请求和post请求的区别,现总结如下:

1:请求数据的大小不同。

因为get请求的数据是要追加到url中,而url的数据量一般不能超过2k,所以用get请求的方法对数据的大小有限制。而post请求方法是把数据放在消息体中,所以理论上对数据量没有限制。(但是实际操作中也不能能太大)

2:安全性不一样

因为get请求的数据是追加在url中,外部用户能很方便的看到,从这个角度上来讲不安全。而post方法因为是讲请求放在消息体中,不会直接在url中显示所以从这个角度来说数据会比较安全。

3:书签建立

get请求可以建立书签;post请求则不能。例如:假设你有一个页面允许用户指定搜索规则。用户可能一个星期之后才回来,想要得到原来的数据,但此时服务器上已经有新的数据了。

4:方法的使用

get用于得到某些东西,只是简单的获取,不会对服务器做任何的改变。post则用户发送数据来进行处理,可以修改服务器上的数据。

5:请求是否幂等

get请求是幂等的,它只是要得到一些东西,不会修改服务器上的内容。它能执行多次,而且不会产生任何不好的副作用。而post不是幂等的,post体中的提交的数据可能用于不可逆转的事务。所以从这个角度上来看的话要慎重使用dopost()功能。

若表单中未指出method=“post”,就会默认为httpget请求。即缺省状态是调用get请求。

 在学习javaweb最初的开始阶段,大家都会遇到httpservlet中的doget和dopost方法。

(1)doget方法:主要是处理http中的get请求
(2)dopost方法:主要是处理http中的post请求

那么get请求和post请求到底有什么样的区别

(1)get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串
例如,http://localhost:8888/javaweb/getservlet?name=123
(2)post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。

什么时候使用doget和dopost方法 :

1.通过表单提交到的servlet,看form的method是get还是post  
2.通过链接<a  href…>访问的servlet,doget  
3.直接在ie地址栏中键入的servlet地址,doget