doGet()和doPost()在流程方面有什么区别?

sha*_*iri 9 java servlets

流量的差异,我知道doGet()是预处理,而dopost是后处理,但那是什么?

Ste*_*n C 16

流量的差异,我知道doGet()是预处理,而dopost是后处理,但那是什么?

实际上,这些方法与"预处理"和"后处理"无关.

要了解这些方法的用途,您需要对HTTP协议有一些基本的了解.

HTTP是请求 - 回复协议:客户端(例如,web浏览器)发送请求,并且服务器(例如,web服务器)以回复进行响应.每个请求包括"请求行",一系列"标题"行和可选的"正文".典型的请求行如下所示:

  GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
Run Code Online (Sandbox Code Playgroud)

这一行的三个部分是:

实际上,HTTP规范定义了8种标准HTTP请求方法(GET,PUT,POST,DELETE,HEAD,OPTIONS,TRACE和CONNECT),每种方法都有不同的含义.(其他方法由其他规范定义.)

API中的doGetdoPost方法Servlet分别是处理HTTP GET和POST请求的方法.事实上,除了CONNECT之外,还有其他"doXxxx"方法与其他标准HTTP方法相匹配.(CONNECT的语义不适用于servlet ......)

有关更多信息,请参阅HTTP 1.1规范HttpServlet javadoc.


Ben*_*min 10

此链接详细信息

doGet()并且doPost()是由servlet类处理的HTTP请求.

在doGet()中,参数将附加到URL并与标头信息一起发送.在doPost()的情况下不会发生这种情况.在doPost()中,参数是单独发送的.由于大多数Web服务器仅支持将有限数量的信息附加到标头,因此此标头的大小不应超过1024个字节.doPost()没有这个约束.通常程序员发现很难在doGet()和doPost()之间进行选择.

当必须将少量数据和不敏感数据(如查询)作为请求发送时,应使用doGet().必须发送相对大量的敏感数据时,应使用doPost().示例是在填写表单或发送登录ID和密码后发送数据.