servlet的生命周期分为3个阶段:
1初始化阶段:调用init方法
2响应客户请求阶段:调用service()方法
3终止阶段:调用destroy方法
servlet初始化阶段:
在下列时刻servlet容器装载servlet:
1servlet容器启动时自动装载某些servlet,实现它只需要在web.xml中servlet标签内添加loadon-startup,标签值为1
2在servlet启动之后,客户首次向servlet发送请求
3servlt文件被更新后,重新装载servlet
4servlet被装载后,servlet容器创建一个servlet实例并且调用servlet的init方法进行初始化,在servlet的整个生命周期中,init方法只被调用一次
servlet工作原理:
1客户发送一个请求,servlet是调用service方法对请求响应的,在service中对请求的方式进行分配,选择调用doGet,doPost等这些方法
2然后再进入对应的方法调用逻辑层的方法,实现客户的响应
3在servlet接口和GenericService中是没有doGet,doPost等等这些方法,所以每个自定义的servlet都要实现HttpServlet方法,HttpServlet中的方法都是返回错误信息
4GenericServlet是一个通用的,不特定于任何协议的servlet,它实现了Servlet接口
而HttpServlet继承与GenericServlet,因此HttpServlt也实现了Servlet接口,所以定义的servlet只需要继承HttpServlet即可
5Servlet接口和GenericServlet是不特定于任何协议的,HttpServlt是特定于Http协议的类,所以HttpSerlvet实现了service方法,并将请求ServletRequest和ServltResponse转换成了HttpRequest和HttpResponse