Java servlet doGet和doPost方法

Java servlet doGet和doPost方法,java,http,jakarta-ee,servlets,methods,Java,Http,Jakarta Ee,Servlets,Methods,我想知道在servlet中,为什么我们在同一个程序中同时使用doGet和doPost方法。它有什么用 以下代码是什么意思? 为什么要从doPost调用doGet方法?我对这个代码一点也不清楚 public class Info extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException

我想知道在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);
}
}
谢谢

doGet()
处理传入的HTTP请求,而
doPost()处理。。。请求。还有处理PUT、DELTE等的等效方法

如果使用GET(默认)提交表单,将调用
doGet()
。如果您使用POST提交,那么这次将调用
doPost()
。如果只实现
doPost()
,但表单将使用GET,servlet容器将抛出异常


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

简单地说,这是为了使servlet通用化,这样即使我们将来更改请求方法,也不需要编辑servlet,这将减少将来修改应用程序的工作量。

这不是与get请求有关吗?get请求允许在浏览器窗口的URL中看到参数,post请求将参数合并到请求的结构中,从而隐藏在视图中。客户将如何以get或post的形式提出您的请求。我认为这与安全性和避免sql注入有关,但这实际上不是我的领域。希望有专家能纠正我的观点/评论,因为我自己需要知道这一点。

这是为了处理http的GET和POST两种请求类型。根据应用程序的要求,用户可能会选择将请求类型保留为GET或POST,以便在处理这两种类型时,您将收到错误消息。如果您想以类似的方式处理这两个方法,那么您可以创建另一个doSomething方法,并从doGet和doPost方法调用它以获取更多信息

,正如您所指出的,您确实可以调用第三个方法,但也可以覆盖服务()从HttpServlet母类调用一个唯一的方法。

您何时真正想要区分servlet中的get和post?那将是什么样的用例(或需求)?GET应该获得一个资源。它必须是幂等的,并且不应该修改服务器中的任何内容。POST不是幂等的,用于在服务器上创建、更新或删除某些内容。在必须使用GET时没有理由使用POST,而在应该使用POST时使用GET是一种不好的做法,如果用户刷新页面或浏览历史记录,可能会导致各种问题。通常使用GET显示表单,然后使用POST提交表单。
doGet()
对于
/users
返回列表,
doPost()
对于同一URL(servlet)创建新用户。当然,我可以将这两种方法委托给一个单独的方法,然后使用,但这只会使事情变得复杂。谢谢大家的回答。我很清楚get和post之间的简单区别,但不清楚上面的代码在一个servlet代码中使用了这两种方法。@user460920:如果您使用get(默认)提交表单,将调用
doGet()
。如果您使用POST提交,那么这次将调用
doPost()
。如果只实现
doPost()
,但表单将使用GET,servlet容器将抛出异常。