二:Servlet的生命周期
背景知识:
servlet是单例,在web项目运行期间,一个servlet只会创建一个对象[tomcat帮我们实例 化]【尽量不要在servlet中定义成员变量】。因为web项目本身就需要在多线程的环境 中运行,在这种环境下,由于servlet是单例,所以在servlet中声明的成员变量,就会有线程 安全的问题。
1,servlet加载和实例化(创建)
Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到 需要这个Servlet来响应第一个请求时,创建Servlet实例
2,servlet初始化
在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象。初始化的 目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建 立 数据库的连 接,获取配置信息等。
3,servlet请求处理(服务)
servlet容器调用Servlet的service()方法对请求进行处理。要注意的是,在service() 方法调用之前,init()方法必须成功执行。
4,servlet销毁
当servlet对象被销毁的时候,tomcat服务器会调用servlet里面的destory方法。
Servlet接口中的方法(共有五个方法)
//初始化servlet对象的时候被调用
void init(ServletConfig config)
//销毁servlet对象的时候被调用
void destroy()
//访问servlet对象的时候被调用
void service(ServletRequest req, ServletResponse res)
//返回servlet相关信息,比如作者、版本、版权等
//父类中(GenericServlet)默认返回一个空字符串 ""
//如果需要的话,【程序员可以自己重写】这个方法
String getServletInfo()
//返回ServletConfig对象
ServletConfig getServletConfig()