servlet doGet和doPost方法

use*_*920 7 java methods servlets http java-ee

我想知道在servlet中为什么我们在同一个程序中一起使用doGet和doPost方法.有什么用?

以下代码的含义是什么?
为什么要从doPost调用doGet方法?我对这段代码一点也不清楚.

public class Info extends HttpServlet
{

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
 {

 }


public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
    doGet(request, response);
}
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Tom*_*icz 20

doGet()在处理... POST请求时处理传入的HTTP GET请求.还有处理PUT,DELTE等的等效方法.doPost()

如果您使用GET(默认)提交表单,doGet()则会调用该表单.如果您使用POST提交,doPost()则会在此时调用.如果你只实现doPost()但表单将使用GET,servlet容器将抛出异常.

在许多程序中,服务器不关心请求是使用GET还是POST,这就是为什么一个方法只是委托给另一个方法.这实际上是一种不好的做法,因为这些方法本质上是不同的,但许多教程都是这样写的(无论好坏).

  • GET应该获得资源.它必须是幂等的,不应该修改服务器中的任何内容.POST不是幂等的,用于在服务器上创建,更新或删除某些内容.没有理由使用POST时,必须使用一个GET,并使用GET时,应使用一个POST是不好的做法,如果用户刷新页面,或者通过历史导航可能会导致各种问题.通常使用GET来显示表单,然后使用POST来提交表单. (4认同)

小智 3

简单来说,就是让servlet变得通用化,这样即使我们以后改变请求方式,也不需要编辑servlet,这样就减少了以后修改应用程序的工作量。