Servlet主要用来处理客户端请求并将其结果发送到客户端,下面我们来详细看一下Servlet。
一、Servlet的生命周期
Tomcat 的容器等级中,Context 容器是直接管理 Servlet 在容器中的包装类 Wrapper),它可以分为3个阶段:初始化、运行、销毁
初始化阶段:
1、Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中同时读取web.xml配置文件中的信息;
2、Servlet容器创建一个ServletConfig对象,ServletConfig对象包含了Servlet的初始化配置信息;
3、Servlet容器创建一个Servlet对象;
4、Servlet容器调用Servlet对象的init()方法进行初始化;----init方法,负责初始化Servlet对象
运行阶段:
1、当Servlet容器接收到一个请求时,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据这个请求创servletRequest和servletResponse对象;
--service方法,负责响应客户的请求
销毁阶段:
。---destory方法,当Servlet对象退出声明周期时,负责释放占有的资源
注意:在servlet生命周期中,servlet的初始化和和销毁阶段只会发生一次,而service方法执行的次数则取决于servlet被客户端访问的次数
Servlet是怎么处理一个请求的呢?
当用户发送一个请求到某个Servlet的时候,Servlet容器会创建一个ServletRequst和ServletResponse对象。在ServletRequst对象中封装了用户的请求信息,然后Servlet容器把ServletRequst和ServletResponse对象传给用户所请求的Servlet,Servlet把处理好的结果写在ServletResponse中,然后Servlet容器把响应结果传给用户。
Tomcat 与 Servlet 是如何工作的:
步骤:
- Web Client 向Servlet容器(Tomcat)发出Http请求
- Servlet容器接收Web Client的请求
- Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中。
- Servlet容器创建一个HttpResponse对象
- Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet 对象。
- HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息。
- HttpServlet调用HttpResponse对象的有关方法,生成响应数据。
- Servlet容器把HttpServlet的响应结果传给Web Client。