就流程而言,我知道doGet()是预处理,而doPost()是后处理,但具体是什么意思呢?
关于流程的差异,我知道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请求。事实上,还有其他“doXxxx”方法与其他标准HTTP方法匹配,除了 CONNECT。(CONNECT的语义不适用于servlet...)
有关更多信息,请参阅HTTP 1.1规范和HttpServlet
javadoc。
doXxx
方法的(真正)目的。 - Stephen C
doGet()
和doPost()
是由servlet类处理的HTTP请求。在doGet()中,参数被附加到URL并与头信息一起发送。这在doPost()的情况下不会发生。在doPost()中,参数将分别发送。由于大多数Web服务器仅支持将有限数量的信息附加到标头,因此此标头的大小不应超过1024字节。doPost()没有此限制。通常,程序员很难选择doGet()和doPost()之间的区别。
当需要发送少量且不敏感的数据(例如查询)时,应使用doGet()。当需要发送相对较大且敏感的数据时,应使用doPost()。例如,在填写表单或发送登录标识和密码后发送数据。