码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-01-19 11:47:25      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:lap   区别   eset   作用   equal   post   rac   highlight   last   

可以很清楚的看到, 在tomcat的实现中, service方法只起到了类似调度的功能

所以我们平时只重写doGet或doPost方法后, 会自动按请求类型匹配执行

protected void service(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

        String method = req.getMethod();

        if (method.equals(METHOD_GET)) {
            ...
                doGet(req, resp);
            ...

        } else if (method.equals(METHOD_HEAD)) {
            long lastModified = getLastModified(req);
            maybeSetLastModified(resp, lastModified);
            doHead(req, resp);

        } else if (method.equals(METHOD_POST)) {
            doPost(req, resp);

        } else if (method.equals(METHOD_PUT)) {
            doPut(req, resp);

        } else if (method.equals(METHOD_DELETE)) {
            doDelete(req, resp);

        } else if (method.equals(METHOD_OPTIONS)) {
            doOptions(req,resp);

        } else if (method.equals(METHOD_TRACE)) {
            doTrace(req,resp);

        } else {
           ...
        }
    }

 

可见tomcat实现的service方法只是起到了调度请求的作用

如果我们重写了service方法, 父类HttpServlet中的service方法就会失效

所以收到的任何请求都会由我们自己覆写的service方法来处理

如果我们的servlet中只有service方法, 是没有问题的


但值得注意的是, 如果你同时重写了service和doGet, doPost方法

一定要在执行完自己代码后调用父类service方法, super.service;

否自你的doGet和doPost是不会被执行的

doPost方法里面调用doGet方法做下面解释:---------------------|

 

doget和dopost方法的意思,为什么在servlet中dopost中调用doget方法
原创 2017年08月06日 20:17:39

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

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

 

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

标签:lap   区别   eset   作用   equal   post   rac   highlight   last   

原文地址:https://www.cnblogs.com/ordinaryk/p/8315422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!