Java Web容器的启动过程

Java web容器的启动与处理请求的过程

1.启动一个web项目的时候,web容器回去读取它的配置文件web.xml,读取<Context-param>结点。

2.容器创建一个servletContext(Servlet上下文),这个web项目的所有部分都将共享这个上下文。

3.容器将<context-param>转换为键值对,并交个ServletContext。因为listener,filter等组件在初始化时会用到这些上下文的信息,所以要先加载。

4.容器创建<listener>的类实例,创建监听器。

5.加载filter和servlet

load-on-startup元素在-web应用启动的时候指定了servlet被加载的顺序,它的值必须是一个整数。如果它的值是一个负整数或者这个元素不存在,那么容器会在该servlet被调用的时候加载这个servlet。如果值是正整数或0,容器在配置的时候就加载并初始化这个servlet。容器必须保证值小的先被加载,如果值相等,容器可以自动选择加载谁。

web.xml的加载顺序是:Context--param--listener--filter--servlet

容器处理请求的过程

当web容器接收到来自客户端的请求信息后,会根据url中的web元件地址信息到servlet队列中查找对应的servlet对象,如果找到则直接使用,如果没有找到则加载对应的类,并创建对象。也就是说,servlet对象是在第一次被使用的时候才创建的,并且一旦创建就会被反复使用,不再创建新的对象。所有创建的servlet对象会在web服务器停止运行的时候,统一进行垃圾回收。

 

原文地址:https://www.cnblogs.com/peachwang/p/7449406.html