何时使用doGet,doPost和服务

我想知道这些servlet方法。 我对这些方法有所了解

  • doPost对参数数量没有限制,而doGet有。
  • doGetdoPost更快。
  • doPostdoGet更安全。

我的问题是,因为这些方法采用相同的参数并完成我们实施的过程。 那么这些方法之间的major difference是什么,以及At which specific situation each of this method is used to process

你提到的技术差异就在于我们谈论REST变种的部分。

除了POST和GET之外,还有PUT和DELETE。 您应该将GET用于不改变数据的操作,POST用于创建,PUT用于更新数据。 删除显然是删除数据。

doGet():>我们将用于静态内容,当我们使用它时,我们的请求参数通过http包头。 或者http包头的大小是固定的。 因此,只能发送有限的数据。 或者在doGet()的情况下,请求参数显示在地址栏中,或者在网络数据中发送,如平面文本。

doPost():>我们将用于动态内容,当我们使用它时,我们的请求参数通过http数据包体。 或者http包体的大小不固定。 因此可以发送无限数据。 或者在doPost()的情况下,请求参数不会显示在地址栏中,或者在网络数据中发送,如加密文本。

service():>如果我们要定义它,那么我们必须面对服务器连接问题,因为它的协议独立,所以它不是一个好方法。

我只关注差异:

doService() :当你知道你在做什么时使用它,默认实现调用doGet()或doPost(),所以如果你覆盖它,你就不会调用另一个方法。

doGet() :按照惯例,GET方法不应该改变应用程序的内部状态(你不应该做更新等)

doPost() :按照惯例,POST用于修改应用程序的内部状态(执行插入,更新,删除)

doGet()和doPost(),doPut(),doDelete()在不同的场合被调用,但有一些细微的差别。

是W3C给出了一些规格

得到:

对象的表示被传送到客户端。 有些URI是指对象的特定变体,有些是指具有许多变体的对象。 在后一种情况下,可以在头请求字段中指定可接受的表示,编码和语言,并且可以影响返回的特定值。

POST

此HTTP方法创建一个链接到指定对象并从属于该指定对象的新对象。 新对象的内容被包含在请求的主体中。

service()方法从公共服务方法接收标准HTTP请求,并将它们分派给此类中定义的doXXX方法。

GET应该是幂等的, POST可能不是。 GET是当你想从服务器获取东西时, POST是将数据发布到服务器。 GET是幂等的,意味着多次应用的相同操作产生相同的结果,与POST它具有产生不同输出的副作用。 你可以写一个非幂等的GET ,但这违反了惯例,你最终可能会遇到问题。 GET请求可以加入书签。 POST无法加入书签。 查询参数应该在GET受到限制,使用POST甚至可以发送文件进行上传。

简单来说,当您想要从服务器获取内容并且您的请求中没有可用的敏感信息时,将使用get,因为其标题在URL中可见。 当您在服务器中更新某些内容时,将使用Post ,并且在您的请求中存在关键数据,例如密码,帐号等。 post的另一个优点是它不是固定大小,所以你可以发送无限数据,在任何情况下都不会看到数据。

我应该阅读有关HTTP的GET和POST方法的内容。 你可以在这里开始。 你的问题与Java和Servlets并没有真正联系,而是与Web编程的基础知识有关。

我想知道这些servlet方法。 我对这些方法有所了解

•对于doGet而言,Post对参数数字没有限制。

•doGet比doPost更快。

•doPost比doGet更安全

Servlet容器调用服务方法来处理请求并以适当的响应进行回复。 每次发出请求时都会调用服务方法。 我们永远不会覆盖它,因为它已经在以下方面完成:

  • 的doGet()
  • 的doPost()

doGet() – 它请求信息。 它不会改变服务器中的任何内容。 doGet()方法是默认的HTTPServletRequest方法。

doPost() – 用于提供服务器所需的信息。

我刚刚写下了基本的区别,其余的还有其他表现基础差异。