面试题2:说一下什么叫生命周期,servlet的生命周期是什么?jsp的生命周期?

生命周期(Life Cycle )

指的是对象的产生到销毁的过程。

servlet 的生命周期

是有四个阶段:实例化 –> 初始化 –> 应用阶段(请求处理) –> 销毁

  • 创建 Servlet 实例。
  • Web 容器调用 Servlet 的 init() 方法,对Servlet 进行初始化。
  • Servlet 初始化后,将一直存在于容器中,用于响应客户端请求。根据客户端的请求方式通过 Servlet 中service() 方法去相应的 goGet(),或 doPost() 方法;
  • Web 容器销毁Servlet 时,调用 Servlet 的 destroy() 方法,通常在关闭Web容器之时销毁Servlet。

servlet 生命周期的三个方法:

  1.   init()方法:Servlet实例化时调用此方法
  2.  Service()方法:客户请求和响应调用此方法。
  3.  Destroy()方法:释放内存,关闭web服务器调用此方法

扩展: servlet 单实例、多线程

servlet中的init方法只有在启动(例如一个查询用户信息的请求和一个删除用户的请求共享同一个servlet对象)的时候调用,也就是只初始化一次,这就是单实例。

一个web容器可以管理或存放多个servlet,比如:用户管理的servlet,商品管理的servlet等,servlet体系结构是建立在java多线程机制之上的,servlet容器会自动使用线程池等技术来支持系统的运行。web 容器本身就是提供的多线程。

jsp 的生命周期

浏览器首先要请求一个以.jsp扩展名结尾的页面,发起JSP请求,然后Web服务器读取这个请求,使用JSP编译器把JSP页面转化成一个Servlet类。需要注意的是,只有当第一次请求页面或者是JSP文件发生改变的时候JSP文件才会被编译,然后服务器调用servlet类,处理浏览器的请求。一旦请求执行结束,servlet会把响应发送给客户端。

jsp 的生命周期分为四个阶段:

JSP  编译—>初始化—>执行—>销毁。

 

编译阶段:

servlet容器编译servlet源文件,生成servlet类

初始化阶段:

加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

执行阶段:

调用与JSP对应的servlet实例的服务方法

销毁阶段:

调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

猜你喜欢

转载自blog.csdn.net/Java123456_/article/details/82834240