java常见面试题之Servlet生命周期是怎样的?

BSO 2020-12-03 16:03:53 java常见问答 3904

我们平时学的很多知识更加偏向于实践类,所以大家也知道把它们运用到实际的生活当中。其实还有很多知识是在面试的时候会问到的,需要大家花一定的时间去了解,一起来看看吧。

首先一起来看一下,Servlet生命周期是怎样的?

Web容器加载Servlet并将其实例化后,Servlet生命周期开始,容器运行其init方法进行。

Servlet的初始化,请求到达时运行其service方法,service方法自动派遣,运行请求的。

doXXX方法(doGet、doPost),当服务器决定将实例销毁的时候调用其Destroy方法。

Servlet的生命周期包含了下面4个阶段:

①实例化阶段:服务器对Servlet进行实例化,调用Servlet的构造方法

②初始化阶段:服务器调用Servlet的init方法进行初始化(只在第一次请求时调用)。

③请求处理阶段:服务器调用Servlet的service方法,然后根据请求方式调用相应的doXXX方法。

④服务终止阶段:服务器调用Servlet的destroy方法销毁Servlet实例

一、

Servlet生命周期:Servlet加载—>实例化—>服务—>销毁。

二、

init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。

三、

service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

四、

destroy():仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

从上面的内容中可以看出来,其实Servlet生命周期还是有一定的复杂性的。所以大家也可以多看看多了解一下。如果你想要了解更多Java面试题,敬请关注奇Q工具网。

推荐阅读:

java常见面试题之NIO的工作原理是怎样的?

java常见面试题:OSI 的七层模型都有哪些?

java常见面试题之文件上传漏洞是什么?