一.什么是Servlet?
之前已经介绍过,Servlet就是java语言用来处理网络请求的一套规范;其实从包名javax.servlet.Servlet也可以看出来,它是java扩展内容
二.重要组成
1.javax.servlet包,定义规范顶级接口和抽象父类,ServletRequest、Servlet、ServletResponse最主要的三个顶级接口

其他接口,都是围绕这三个丰富起来的,像ServletContext服务上下文件(或者理解成一个容器,里面有servlet相关的内部);
GenericServlet,抽象出来的模板类,留给子类来继承重写方法,典型的模板模式
2.javax.servlet.http,顾名思义,http协议下的servlet规范具体实现(如果愿意,我们可以自定义一套协议实现);像HttpServlet继承GenericServlet类,同样也是抽象模板类
3.javax.servlet.annotation,规范中定义的一些注解
4.HttpServlet类的子类在哪?注解对应的实现类又在哪?当然是交给web服务器来实现
三.tomcat实现servlet
tomcat中默认实现类DefaultServlet

整体流程(对工作原理熟悉了,可以手写出自己的tomcat)

四.FrameworkServlet
FrameworkServlet主要做一个过渡的作用(其实所有抽象模板类都是这个思想,公共能提取出来的事情,父类先提前封装好,预留好子类要实现的功能),继承HttpServletBean父类,实现ApplicationContextAware接口,取得spring容器中的上下文
五.DispatcherServlet
一层层过下来,DispatcherServlet是一个http协议的、拥有了spring上下文的servlet

本节内容比较简单,下面几节将介绍DispatcherServlet的重要组件