何时使用doGet,doPost和服务
我想知道这些servlet方法。 我对这些方法有所了解
-
doPost
对参数数量没有限制,而doGet
有。 -
doGet
比doPost
更快。 -
doPost
比doGet
更安全。
我的问题是,因为这些方法采用相同的参数并完成我们实施的过程。 那么这些方法之间的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() – 用于提供服务器所需的信息。
我刚刚写下了基本的区别,其余的还有其他表现基础差异。