黑马程序员技术交流社区

标题: 求教 [打印本页]

作者: vipzh    时间: 2012-12-5 18:26
标题: 求教
HTTP协议,doGet和doPost之间有什么区别?
作者: 邵新瑜    时间: 2012-12-5 18:33
get和post是http协议的两种方法,另外还有head, delete等

这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。

在servlet开发中,以doGet()和doPost()分别处理get和post方法。
首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。都会执行这个方法。
作者: 彭璞    时间: 2012-12-5 19:25
doGet接收URL传来的参数,只能小于255的参数; doPost接收FORM传来的参数,可以接受大参数 doGet接收URL传来的参数; doPost接收FORM传来的参数,可以接受大参数

<h3 align="center"><a href="/library/bookservlet?action=add" target="mainFrame">添加</a></h3>

上面的是向bookservlet带参数的请求,只能在doget()中处理

dopost()中处理的是form中的action

一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符。通常我们使用的都是doPost方法,你只要在servlet中让这两个方法互相调用就行了,例如在doGet方法中这样写public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request,response);}再把业务逻辑直接写在doPost方法中。servlet碰到doGet方法调用直接就会去调用doPost因为他们的参数都一样。而且doGet方法处理中文问题很困难,要写过滤器之类的。

浏览器提交请求给servlet的时候 有6种方式 get和post是比较常用的 别的基本不用get方式 参数在地址栏中显示 通过?name=""&id=""这种形式传递的 不安全 只能传递2kb的能容post方式 底层是通过流的形式传递  不限制大小  上传的时候必须用Post方式 servlet根据提交请求的方式去调用相应的doGet和doPost的方法嗯 应该就这些

get和post是http协议的两种方法,另外还有head, delete等

这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。



作者: 胡高德    时间: 2012-12-5 22:17
http协议是一种网络通信协议(超文本传输协议)。
而get和post是http中发送请求信息的两种方法。
GET 向特定的资源发出请求,它只可以提交256个字符,且不安全,递交的信息会在网络上显示,可以被轻易访问。
POST 向指定资源提交数据进行处理请求,它不限制提交的字符的大小。
http中共有8种方法,有OPTIONS   HEAD  GET  POST  PUT  DELETE  TRACE  CONNECT

作者: 胡高德    时间: 2012-12-5 23:42
HTTP是超文本传输协议,而get和post是http协议的两种请求方法,总共有八种请求方法,分别为OPTIONS   HEAD   GET   POST  PUT  DELETE   TRACE   CONNECT
get, 向特定的资源发出请求。get在提交请求时会在url中显示内容,谁都可以看见,不安全,且只能传输256个字符。
post, 向指定资源提交数据进行处理请求。传输大小无限制,不是通过url传输的。
作者: 马清泽    时间: 2012-12-6 15:41
•如果请求是幂等的就可以使用GET•所谓幂等是指多个请求返回相同的结果•当改变服务器状态时应当使用POST方法•GET请求的例子: http://localhost/yourApp?firstName=Adam&middleName=Christopher•采用POST方法向服务器发送命名参数时,与采用GET方法几乎一样的。•区别:POST方法将参数串放在请求体中发送,而GET方法是将参数追加到URL中发送。•如果数据处理不改变数据模型的状态,HTML使用规约理论上推荐采用GET方法,从这 可以看出,获取数据时应当使用GET方法。•如果因为存储、更新数据,或者发送电子邮件,操作改变了数据模型的状态,这时建议使  用POST方法。
作者: 陈建华    时间: 2012-12-6 17:34
http协议是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 而在传输过程中可以采用很多种方法,其中有两种经常使用就是post 和get方法。而,doGet和doPost他们是servlet为了在服务器段处理http协议发送过来的数据而定义的两个方法。
作者: 张运    时间: 2012-12-6 18:26
1.浏览器地址栏呈现的结果不同。(只是表象不是具体原因)
2.真正的原因在与服务器端发送请求时的形式不同的(Get是把参数作为URL发送给服务器端。Post是作为请求体发送给服务器端。)。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2