servlet中为啥doget要调用dopost?默认调用哪个?默认都调用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet中为啥doget要调用dopost?默认调用哪个?默认都调用?相关的知识,希望对你有一定的参考价值。

doget调用dopost或者dopost调用doget一般是在教科书或者不需要区分get还是post方法调用的场合下使用。
没有默认调用哪个的说法,http访问请求的两种方式get和post,你使用那种方式请求,servlet就会用对应的方法来处理你的请求。

你用get方式请求,那么servlet就会执行doget方法,反之,你用post方式请求,servlet就会执行都post方法。追问

我自己写的网页,没有注明是用那个方法呀?
的确是教科书,

追答

肯定有指定是那种方式的

首先你要先明白啥是get啥是post

一个form在submit的时候会根据method参数来判断是post还是get

如果你在浏览器的地址栏输入一长串的url地址来访问某个网站,这种方式就是get

参考技术A

具体调用哪个方法由网页的提交方式决定,不过在编程时不用考虑它调用哪个方法。你可以在doget方法里调用dopost方法,然所有的处理写在dopost方法里。这样不管调用的是doget方法还是dopost方法都可以处理。例子如下:

public class FindServlet extends HttpServlet 
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException 
doPost(request, response);//调用dopost方法

public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException 
//逻辑处理

参考技术B

    一次请求过来的时候,首先调用的是service方法

    然后根据你的form表单是post则调用doPost()方法,get则调用doGet()方法,如果不写,默认为doGet方法

    所以,一般情况下,doGet()和doPost()是有一个要被执行的。

参考技术C 默认调用get,get方式不安全,将方法写在post中,提高安全 参考技术D 一般一个人使用servlet开发时,不会使用doget和dopost相互调用,应该你自己知道你的请求方式是什么,可是在用servlet开发做前后端分离时就有用了,写后台的不用知道你前台是使用什么方式调用的,这样都可以进行处理。

4 service() 与 doGet() doPost()

在Servlet中,对于客户端发来的请求我们要做出相应的相应,一共有三种方式:service() doGet() doPost(),它们使用的方法如下:

 

service()方法:

  可以处理get/post方式的请求,如果servlet中有service方法,则会优先调用service方法对请求做处理。

doGet()方法:

  处理get方式的请求

doPost()方法:

  处理Post方式的请求  

注意:

  如果在重写的service方法中调用了父类的service方法(super.service(arg0,arg1)),则service方法处理完后,会再次根据请求方式相应的doGet()方法

和doPost()方法执行(这就意味着,如果调用了父类方法,必须要写doGet()和doPost()方法)。所以,一般情况下,我们是不在重写的service中调用父类的service方法的,避免405错误。

以上是关于servlet中为啥doget要调用dopost?默认调用哪个?默认都调用?的主要内容,如果未能解决你的问题,请参考以下文章

1.servlet的生命周期,什么时候用doPost,什么时候用doGet

servlet的生命周期,啥情况下调用doGet()和doPost()?

4 service() 与 doGet() doPost()

servlet中的doGet()与doPost()是怎

servlet之doPost()doGet()

Servlet 传值调用 覆盖service()方法还是覆盖doGet方法和doPost方法区别