【问题标题】:what is the difference between doGet() and doPost() in term of the flow? [duplicate]doGet() 和 doPost() 在流程方面有什么区别? [复制]
【发布时间】:2015-01-18 08:39:52
【问题描述】:

流程方面的区别,我知道 doGet() 是预处理,dopost 是后处理,但那是什么?

【问题讨论】:

  • 文档可能应该为您回答这个问题,例如,它说“由服务器调用(通过服务方法)以允许 servlet 处理 GET 请求。”

标签: java servlets


【解决方案1】:

This link Detail

doGet()doPost() 是由 servlet 类处理的 HTTP 请求。

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

doGet() 用于少量数据和不敏感数据时 就像查询必须作为请求发送一样。 doPost() 应在以下情况下使用 需要发送相对大量的敏感数据。例子 在填写表格或发送登录 ID 后发送数据和 密码。

【讨论】:

    【解决方案2】:

    流程方面的区别,我知道 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 中的doGetdoPost 方法分别是处理HTTP GET 和POST 请求的方法。事实上,除了 CONNECT 之外,还有其他与其他标准 HTTP 方法相匹配的“doXxxx”方法。 (CONNECT 的语义不适用于 servlet ...)

    有关详细信息,请参阅HTTP 1.1 SpecificationHttpServlet javadoc

    【讨论】:

    • 我要补充一点,GET(如 HEAD)任何资源的方法都不应该有副作用,如果这些响应是从缓存中获取的,则会导致错误行为(提取来自上面引用的 HTTP 1.1 规范)=> GET 只能用于读取某些内容,而不能用于更改某些内容
    • @SergeBallesta - 注意。我不会这样做,因为我无意提供有关 HTTP 方法的完整教程。我试图解释的是 servlet doXxx 方法的(真正)目的。
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多