Servlet 的体系结构
体系结构示意图:
Servlet 类的继承体系:
1、Servlet 接口
Servlet 这个接口,里面知识定义了规范(面向接口编程),如果直接实现这个接口,需要重写里面所有的方法,但是经常使用 service() 方法,其他的不常用。
2、GenericServlet 抽象类
将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象方法,
如果继承该类,需要重写里面的 service() 方法即可,但是对于还是不知道用什么方式来获取从客户端传送的数据。
这个类中声明了一个 ServletConfig 对象引用,并且给这个引入赋值了。
可以更加方便的获取 ServletConfig 对象。
还有一个 getServletContext() 方法,也可以帮助我们更方便的获取 ServletContext 对象。
3、HttpServlet 抽象类
HttpServlet 对 HTTP 协议的一种封装,简化操作,而在使用的时候只需要重写 doGet() 与 doPost() 方法即可。
本类中定义了多个常量和多个 do 系列的方法,为什么要这么做呢?
前面当用不同的请求方式访问服务器时,我们需要根据请求的方式,进行不同的分发。而这个类帮助我们强转了 ServletRequest 对象,实现了分发处理。
所以,HttpServlet 主要做了两件事:
(1)重写了父类的 service() 方法;
(2)重载了 service() 方法,完成分发处理;