Servlet 的生命周期 (Servlet Life Cycle)2025年3月17日 | 阅读 3 分钟 Web 容器维护 Servlet 实例的生命周期。让我们看看 Servlet 的生命周期 - Servlet 类被加载。
- Servlet 实例被创建。
- init 方法被调用。
- service 方法被调用。
- destroy 方法被调用。
 如上图所示,Servlet 有三种状态:new(新建)、ready(就绪)和 end(结束)。 如果 Servlet 实例被创建,则 Servlet 处于 new(新建)状态。 调用 init() 方法后,Servlet 进入 ready(就绪)状态。 在 ready(就绪)状态下,Servlet 执行所有任务。 当 Web 容器调用 destroy() 方法时,它会转移到 end(结束)状态。
1) Servlet 类被加载类加载器负责加载 Servlet 类。 当 Web 容器收到 Servlet 的第一个请求时,Servlet 类将被加载。
2) Servlet 实例被创建Web 容器在加载 Servlet 类后创建 Servlet 的实例。 在 Servlet 的生命周期中,Servlet 实例仅被创建一次。
3) init 方法被调用Web 容器仅在创建 Servlet 实例后调用一次 init 方法。 init 方法用于初始化 Servlet。 它是 javax.servlet.Servlet 接口的生命周期方法。 init 方法的语法如下 |
4) service 方法被调用每当收到 Servlet 的请求时,Web 容器都会调用 service 方法。 如果 Servlet 未初始化,它将按照上述前三个步骤执行,然后调用 service 方法。 如果 Servlet 已初始化,则它将调用 service 方法。 请注意,Servlet 仅初始化一次。 Servlet 接口的 service 方法的语法如下
5) destroy 方法被调用Web 容器在从服务中删除 Servlet 实例之前调用 destroy 方法。 它使 Servlet 有机会清理任何资源,例如内存,线程等。 Servlet 接口的 destroy 方法的语法如下
Servlet 生命周期 MCQ1. Servlet 容器调用哪个方法来允许 Servlet 在从服务中删除之前释放资源? - destroy()
- doDelete()
- doCleanup()
- finalize()
答案:A) 解释: destroy() 方法由 Servlet 容器调用,以允许 Servlet 释放资源并在从服务中删除之前执行清理。
2. 在 Servlet 的初始化阶段,Servlet 容器调用哪个方法来读取 Servlet 配置信息? - init()
- service()
- config()
- initialize()
答案:A) 解释: 在 Servlet 的初始化阶段调用 init() 方法来读取 Servlet 配置并执行任何必要的设置。
3. 在初始化阶段,Servlet 容器使用哪个对象将初始化参数传递给 Servlet? - ServletContext
- ServletConfig
- ServletRequest
- ServletResponse
答案:B) 解释: 在初始化阶段,ServletConfig 对象用于将初始化参数传递给 Servlet。
4. 在 Servlet 生命周期中的哪个阶段重复调用 service() 方法? - 初始化阶段
- 实例化阶段
- 请求处理阶段
- 销毁阶段
答案:C) 解释: 在请求处理阶段重复调用 service() 方法,以处理客户端请求并生成响应。
5. Servlet 容器在决定从服务中删除 Servlet 实例时调用哪个方法,从而允许 Servlet 执行最终清理? - service()
- doGet()
- init()
- destroy()
答案:D) 解释: 当 Servlet 容器决定从服务中删除 Servlet 实例时,将调用 destroy() 方法。 它允许 Servlet 执行最终清理。 |