一个Servlet生命周期
从Tomcat处理用户请求,我们可以清晰的看到容器Servlet的生命周期管理过程:
1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);调用destroy()方法(对应6步)。
servlet容器可以理解为服务器,tomcat就是一个servlet容器.当用户有一个请求发来的时候,送到了tomcat端,即送到了servlet容器中,容器就创建一个servlet实例用来处理这个请求.通过init()方法初始化实例,然后就调用service()方法处理请求,并将结果返回. tomcat就返回一个响应.servlet在之后的过程中,如果没有被继续使用就会调用destory()方法销毁. 要注意的是,servlet容器和servlet的区别.容器就好比一个篮子,里面有很多苹果,就是servlet.苹果可以不断的拿进拿出,但是篮子没了[服务器关闭]之后就什么也没有了.