Servlet生命周期:
实例化
什么是实例化?
a.容器调用Servlet的构造器,创建Servlet对象。
b.通过服务器反射机制创建Servlet对象.
什么时候实例化?
a.容器收到请求之后创建相应的实例
b.容器启动之后,立即创建相应的实例(需要额外的配置)
对于某个Servlet,容器只会创建一个实例。
初始化
什么是初始化?
容器调用serlvet对象的init方法。注:该方法只会调用一次!
GenericServlet已经提供了init方法的实现
会将容器传递过来的ServletConfig对象保存下
来,并且提供一个方法(getServletConfig) 来获得该
对象。
如果要实现自己的初始化处理逻辑,只需要override GennericServlet的init方法
配置初始化参数
调用ServletConfig提供的方法读取初始化参数
就绪
容器调用Servlet对象的service方法来处理请求。
HttpServlet已经提供了service方法的实现
该方法会依据请求类型(get请求/post请求)调用对应的doGet和doPost方法
doXXXX方法只是抛出了一个异常
两个选择:
override HttpServlet的doxxx方法
override HttpServlet的service方法
销毁
容器在删除servlet对象之前,会调用该对象的destroy方法 注:该方法只会执行一次!
GenericServlet已经提供了destroy方法的实现
该方法实际上什么都没有做,我们可以override该方法,来实现自己
的销毁处理逻辑
Servlet相关的接口和类
a. Servlet接口
init(ServletCOnfig config)
service(ServletRequest req,ServletResponse res )
destroy()
b.GenericServlet抽象类
实现了Servlet接口中的部分方法(init ,destroy)
c.HttpServlet抽象类
继承了GenericServlet 实现了service方法