javaweb学习笔记:Servlet的运行过程详解

Servlet引擎按照下面的过程来调用一个Servlet程序:

1)、接收到访问某个Servlet的HTTP请求之后,Servlet引擎首先检查是否已经装载并创建了该Servlet的实例对象。如果已经装载并创建了该Servlet的实例对象,Servlet引擎则直接执行第4)步,否则,执行第2)步。

 

2)、装载并创建Servlet的一个实例对象

 

3)、调用Servlet实例对象的init()方法,以便执行Servlet的一些初始化工作。

 

4)、创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service方法并将请求和响应对象作为参数传递进去。

 

5)、在一个web应用程序被停止或重新启动之前,Servlet引擎将卸载其中运行的Servlet。在卸载Servlet之前,Servlet引擎将调用Servlet的destroy()方法,以便在这个方法中执行Servlet的一些清尾工作,例如释放一些被该Servlet占用的资源。Servlet引擎卸载某个Servlet以后,该Servlet实例对象变成垃圾,等待Java虚拟机的垃圾收集器将其彻底从内存中清除。

 

补充:上面的第2步和第3步过程一般是在web服务器重新启动后,针对该Servlet的第一次访问时完成的,但也可以让web应用程序启动时就完成这两步过程。

在web.xml 文件中定义的<servlet>元素中可以嵌套一个名为<load-on-startup>的子元素。这个子元素用于指定servlet被装载的时机和顺序。之间的数字被设置为0或者正整数,它指定该servlet应该在web应用程序启动时就被实例化和调用它的init()方法,且这个数字越小,servlet被装载的时间也就越早。被设置的数字相同或者是一个负整数,则由Servlet引擎自己决定在什么时候装载该Servlet,<load-on-startup>元素中的数值大小可用于解决两个Servlet之间的依赖关系。

 

你可能感兴趣的:(javaweb学习笔记:Servlet的运行过程详解)