【发布时间】:2015-01-18 08:39:52
【问题描述】:
流程方面的区别,我知道 doGet() 是预处理,dopost 是后处理,但那是什么?
【问题讨论】:
-
文档可能应该为您回答这个问题,例如,它说“由服务器调用(通过服务方法)以允许 servlet 处理 GET 请求。”
流程方面的区别,我知道 doGet() 是预处理,dopost 是后处理,但那是什么?
【问题讨论】:
doGet()和doPost()是由 servlet 类处理的 HTTP 请求。在 doGet() 中,参数被附加到 URL 并与 头信息。在 doPost() 的情况下不会发生这种情况。在 doPost(),参数单独发送。由于大部分网络 服务器仅支持附加有限数量的信息 标头,此标头的大小不应超过 1024 字节。 doPost() 没有这个约束。通常程序员会发现它 很难在 doGet() 和 doPost() 之间进行选择。
doGet() 用于少量数据和不敏感数据时 就像查询必须作为请求发送一样。 doPost() 应在以下情况下使用 需要发送相对大量的敏感数据。例子 在填写表格或发送登录 ID 后发送数据和 密码。
【讨论】:
流程方面的区别,我知道 doGet() 是预处理,dopost 是后处理,但那是什么?
其实这些方法和“预处理”和“后处理”没有任何关系。
要了解这些方法的用途,您需要对 HTTP 协议有一些基本了解。
HTTP 是一个请求-回复协议:客户端(例如 Web 浏览器)发送请求,服务器(例如 Web 服务器)以回复进行响应。每个请求由一个“请求行”、一系列“标题”行和可选的“正文”组成。典型的请求行如下所示:
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1
这一行的三个部分是:
实际上,HTTP 规范定义了 8 种标准的 HTTP 请求方法(GET、PUT、POST、DELETE、HEAD、OPTIONS、TRACE & CONNECT),每一种都有不同的含义。 (其他方法由其他规范定义。)
Servlet API 中的doGet 和doPost 方法分别是处理HTTP GET 和POST 请求的方法。事实上,除了 CONNECT 之外,还有其他与其他标准 HTTP 方法相匹配的“doXxxx”方法。 (CONNECT 的语义不适用于 servlet ...)
有关详细信息,请参阅HTTP 1.1 Specification 和HttpServlet javadoc。
【讨论】:
doXxx 方法的(真正)目的。