Servlet处理客户端请求过程

前言

由于Servlet没有main函数,运行在容器中,所以整个生命周期由容器控制。具体可以分为5个状态:

  1. 加载,容器通过类加载器来加载Servlet。
  2. 创建,通过Servlet构造方法创建Servlet对象。
  3. 初始化,调用Servlet的init()方法,进行初始化工作,注意,只初始化一次
  4. 处理客户端请求。容器在接到客户端请求时,都会创建一个新的线程,通过调用Servlet的service()方法来处理客户端请求,而service()会根据请求的不同,调用相应的doGet()或者doPost()方法。
  5. 卸载,容器在卸载Servlet之前需要调用destory()方法,让Servlet自己释放所占用的系统资源,如果在执行完destory()方法后,重新需要这个Servlet,那么必须重新加载创建初始化Servlet对象了,destroy()方法在一个生命周期也只调用一次

Servlet处理客户端请求过程

  1. 用户点击链接,客户端发送Servlet请求。
  2. 服务器接收到请求后交给相应的容器来进行处理,当容器发现是Servlet请求时,容器会创建两个对象:HttpServletResponse和HttpServletRequest。
  3. 容器通过请求消息中的URL找到相应的Servlet,创建一个新线程,将HttpServletResponse和HttpServletRequest两个对象以参数的形式传给新创建的线程。
  4. 容器调用Servlet的service()方法,service()方法会根据请求的不同调用相应的doPost()或者doGet()方法来完成具体的请求处理。
  5. 容器将响应消息按照HTTP组装好返回给客户端。同时这个线程运行结束,同时删除第二步中产生的两个对象。

猜你喜欢

转载自blog.csdn.net/Hollake/article/details/91864712
今日推荐