Servlet的生命周期

来源:互联网 发布:非线性规划的最优化 编辑:程序博客网 时间:2024/06/02 21:33
Servlet生命周期


  Servlet接口一共5个方法,但其中只有三个是生命周期方法:
  * void init(ServletConfig)
  * void service(ServletRequest,ServletResponse)
  * void destory()


  1). 服务器创建Servlet:
  * 当Servlet第一次被请求时,或服务器启动时,服务器会创建Servlet实例。
  * 服务器默认是在servlet第一次被请求时创建Servlet实例,如果希望服务器启动时就创建Servlet实现需要在web.xml中配置
  * 服务器只为一个类型的Servlet创建一个实例对象,所以Servlet是单例的;


  2). 服务器初始化Servlet:
  * 当服务器创建Servlet实例后会马上调用Servlet的init(ServletConfig)方法,完成对Servlet的初始化;
  * init(ServletConfig)只会被调用一次
  * 服务器会在调用init()方法时传递ServletConfig参数
  
  3). 服务器使用Servlet处理请求:
  * 当Servlet被请求时,服务器会调用Servlet的service(ServletRequest,ServletResponse)方法
  * service(ServletRequest,ServletResponse)方法每处理一次请求,就会被调用一次,所以它可能会被调用N次
  * 因为Servlet是单例的,所以可能在同一时刻一个Servlet对象会被多个请求同时访问,所以这可能出现线程案例问题
  * Servlet不是线程案例的,这有助与提高效率,但不能让Servlet具有状态,以免多个线程争抢数据


  4). 服务器销毁Servlet
  * 服务器通常不会销毁Servlet,通常只有在服务器关闭时才会销毁Servlet
  * 服务器会在销毁Servlet之前调用Servlet的destory()方法
  * 可以在destory()方法中给出释放Servlet占有的资源,但通常Servlet是没什么可要释放的,所以该方法一般都是空的
0 0
原创粉丝点击