Servlet和jsp的生命周期

从Tomcat处理用户请求,我们可以清晰地看到容器Servlet的生命周期管理过程

1.Tomcat在启动时应该直接加载并实例化 webapps 下面的应用程序的 Listener 和 filter ,并在相应的时机下进行调用。

2.客户发出请求–>Web 服务器转发到 Web 容器 Tomcat。

3.Tomcat主线程对转发来的用户的请求做出响应创建两个对象;
HttpServletRequest 和 HttpServletResponse;

4.从请求的URL中找到正确的 Servlet,Tomcat 为其创建或者分配一个线程,同时把3创建的两个对象传递给该线程。

5.Tomcat调用 Servlet 的 service() 方法,根据请求参数的不同调用都 Get() 或者 doPost() 方法。

6.假设是 HTTP GET 请求,doGet() 方法生成静态页面,并组合到响应对象里;

7.Servlet线程结束,Tomcat 将响应对象转换为 HTTP 响应发回给客户,同时删除请求和响应两个对象。

在该过程中,我们可以理解 Servlet 的生命周期:

  1. Servlet类加载(第4步);
  2. Servlet实例化(第3步);
  3. 调用 init 方法(第4步);
  4. 调用 service() 方法(对应5,6步);
  5. 调用 destory()方法(第7步);

可以看到servlet 和jsp是在请求到来的时候,web容器进行首次对servlet或jsp(转换为servlet)的初始化。而且初始化一次后,在web容器中就只存在这样一个实例,利用多线程来处理不同用户的请求。

猜你喜欢

转载自blog.csdn.net/xiao_ma_csdn/article/details/79430692