Servlet调用过程

servlet生命周期

Servlet的生命周期很简单:只有一个主要状态—–初始化。如果servlet没有初始化,则要么正在初始化(运行构造函数或init()方法),正在销毁(运行destroy())方法,要么是不存在。
Servlet调用过程
需要注意的是 servlet的整个生命周期中只初始化一次

servlet的请求调用过程

  1. 用户点击一个链接,链接的URL指向一个servlet
    Servlet调用过程
  2. 容器“看出”这个请求指向某个Servlet,所以容器创建两个对象
    Servlet调用过程
    HttpServletRequest
    HttpServletResponse
  3. 容器根据请求中的URl找到正确的servlet,为这个请求创建或分配一个线程,并调用servlet的service()方法,把请求和响应对象作为参数传递给它
    Servlet调用过程
  4. service()方法根据客户发出的HttP方法(GET、POST),确定要调用那个servlet方法。
    客户端发出了一个HTTP get请求,所以service()方法会调用servle的doGetI()方法,把请求和相应对象作为参数传给它
    Servlet调用过程
  5. servlet使用相应对象将相应写个客户,响应通过容器传回。
    Servlet调用过程
  6. service()方法结束,所以线程要么撤销,要么返回到容器管理的线程池。请求和响应对象引用超出作用域,可以进行垃圾回收
    客户得到响应。Servlet调用过程