通过上面的学习,我们知道要想编写一个Servlet就必须要实现Servlet接口,重写接口中的5个方法,虽然已经能完成要求,但是编写起来还是比较麻烦的,因为我们更关注的其实只有service方法,那有没有更简单方式来创建Servlet呢?
    要想解决上面的问题,我们需要先对Servlet的体系结构进行下了解:image.png
    因为我们将来开发B/S架构的web项目,都是针对HTTP协议,所以我们自定义Servlet,会通过继承==HttpServlet==
    具体的编写格式如下:image.png

    Servlet的简化编写就介绍完了,接着需要思考两个问题:

    1. HttpServlet中为什么要根据请求方式的不同,调用不同的方法?
    2. 如何调用?

    针对问题一,我们需要回顾之前的知识点==前端发送GET和POST请求的时候,参数的位置不一致,GET请求参数在请求行中POST请求参数在请求体中==,为了能处理不同的请求方式,我们得在service方法中进行判断,然后写不同的业务处理,这样能实现,但是每个Servlet类中都将有相似的代码,针对这个问题,有什么可以优化的策略么?
    要解决上述问题,我们可以对Servlet接口进行继承封装,来简化代码开发。image.png
    我们可以对Servlet接口进行继承封装,来简化代码开发。image.png
    有了MyHttpServlet这个类,以后我们再编写Servlet类的时候,只需要继承MyHttpServlet,重写父类中的doGet和doPost方法,就可以用来处理GET和POST请求的业务逻辑。
    接下来,可以把ServletDemo5代码进行改造image.png
    将来页面发送的是GET请求,则会进入到doGet方法中进行执行,如果是POST请求,则进入到doPost方法。这样代码在编写的时候就相对来说更加简单快捷。
    类似MyHttpServlet这样的类Servlet中已经为我们提供好了,就是HttpServlet,翻开源码,大家可以搜索service()方法,你会发现HttpServlet做的事更多,不仅可以处理GET和POST还可以处理其他五种请求方式。image.png
    小结
    通过这一节的学习,要掌握:

    1. HttpServlet的使用步骤

    继承HttpServlet
    重写doGet和doPost方法

    1. HttpServlet原理

    获取请求方式,并根据不同的请求方式,调用不同的doXxx方法