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
具体调用哪个方法由网页的提交方式决定,不过在编程时不用考虑它调用哪个方法。你可以在doget方法里调用dopost方法,然所有的处理写在dopost方法里。这样不管调用的是doget方法还是dopost方法都可以处理。例子如下:
public class FindServlet extends HttpServletpublic 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()是有一个要被执行的。
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()?