servlet与jsp的生命周期

时间:2022-06-13 21:04:59

Servlet

是一个java类,是以一个用java编写的程序,此程序在服务器上运行以处理客户端的请求,并作出响应。


Jsp

JSP全名为Java Server Pages,中文名叫java服务器页面,使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。但用它做网页耦合度高


Servlet的生命周期

有四个阶段:加载并实例化(servlet容器创建servlet实例,默认访问时),初始化(init()方法),服务(service()方法),销毁(destory()方法,关闭服务)。

1.加载并实例化

Servlet容器负责加载和实例化Servlet。当Servlet容器启动时,或者在容器检测到需要这个Servlet来响应第一个请求时,创建Servlet实例。当Servlet容器启动后,Servlet通过类加载器来加载Servlet类,加载完成后再new一个Servlet对象来完成实例化。类文件被更新后,也会重新装载Servlet。

2.初始化

在Servlet实例化之后,容器将调用init()方法,并传递实现ServletConfig接口的对象。在init()方法中,Servlet可以从web.xml中读取配置参数,或者执行任何其他一次性活动,在Servlet的整个生命周期,init()方法只被调用一次。

3.请求处理

当Servlet初始化之后,容器就可以准备处理客户端的请求了。当容器收到对这一Servlet的请求,就调用Servlet的service()方法,并把请求和响应对象,作为参数传递。当并行的请求到来时,多个service()方法能够同时运行在 独立的线程中。通过分析ServletRequest对象或者HttpServletRequest对象,service()方法处理用户的请求,并调用ServletResponse或者HttpServletResponse对象来响应。

4. 销毁

一旦Servlet容器检测到一个Servlet要卸载,这可能是因为要回收资源或者因为它正在被关闭,容易会在所有的Servlet的service()线程之后,调用destory()方法。然后,Servlet就可以进行无用存储单元收集清理。这样Servlet就被销毁了。这四个阶段共同决定了Servlet的生命周期。


JSP的生命周期

JSP页面必须转换成Servlet,才能对请求进行服务,因此JSP的底层完全是Servlet。这样看来JSP 的生命周期就包括六个阶段:转换,编译,加载并实例化,初始化(_jspInit),请求处理(_jspService()调用),销毁(_jspDestory())。

转换:就是web容器将JSP文件转换成一个包含了Servlet类定义的java源文件。

编译:把在转换阶段创建的java源文件变异成类文件。

JSP 生命周期其他的四个阶段跟Servlet生命周期相同。