A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-5 18:26  /  1469 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

HTTP协议,doGet和doPost之间有什么区别?

7 个回复

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

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

在servlet开发中,以doGet()和doPost()分别处理get和post方法。
首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。都会执行这个方法。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
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,所以可以很大,也可以传递二进制数据,如文件的上传。


评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
http协议是一种网络通信协议(超文本传输协议)。
而get和post是http中发送请求信息的两种方法。
GET 向特定的资源发出请求,它只可以提交256个字符,且不安全,递交的信息会在网络上显示,可以被轻易访问。
POST 向指定资源提交数据进行处理请求,它不限制提交的字符的大小。
http中共有8种方法,有OPTIONS   HEAD  GET  POST  PUT  DELETE  TRACE  CONNECT
回复 使用道具 举报
HTTP是超文本传输协议,而get和post是http协议的两种请求方法,总共有八种请求方法,分别为OPTIONS   HEAD   GET   POST  PUT  DELETE   TRACE   CONNECT
get, 向特定的资源发出请求。get在提交请求时会在url中显示内容,谁都可以看见,不安全,且只能传输256个字符。
post, 向指定资源提交数据进行处理请求。传输大小无限制,不是通过url传输的。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
•如果请求是幂等的就可以使用GET•所谓幂等是指多个请求返回相同的结果•当改变服务器状态时应当使用POST方法•GET请求的例子: http://localhost/yourApp?firstName=Adam&middleName=Christopher•采用POST方法向服务器发送命名参数时,与采用GET方法几乎一样的。•区别:POST方法将参数串放在请求体中发送,而GET方法是将参数追加到URL中发送。•如果数据处理不改变数据模型的状态,HTML使用规约理论上推荐采用GET方法,从这 可以看出,获取数据时应当使用GET方法。•如果因为存储、更新数据,或者发送电子邮件,操作改变了数据模型的状态,这时建议使  用POST方法。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
http协议是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。 而在传输过程中可以采用很多种方法,其中有两种经常使用就是post 和get方法。而,doGet和doPost他们是servlet为了在服务器段处理http协议发送过来的数据而定义的两个方法。
回复 使用道具 举报
张运 高级黑马 2012-12-6 18:26:09
8#
1.浏览器地址栏呈现的结果不同。(只是表象不是具体原因)
2.真正的原因在与服务器端发送请求时的形式不同的(Get是把参数作为URL发送给服务器端。Post是作为请求体发送给服务器端。)。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马