`

【servlet】servlet的定义及其生命周期

 
阅读更多
Servlet的生命周期定义了一个Servlet如何被加载、初始化,以及它怎样接收请求、响应请求、提供服务。
  在代码中,Servlet生命周期由接口javax.servlet.Servlet定义。所有的Java Servlet 必须直接或间接地实现javax.servlet.Servlet接口,这样才能在Servlet Engine上运行。Servlet Engine提供network Service,响应MIME request,运行Servlet Container。 javax.servlet.Servlet接口定义了一些方法,在Servlet 的生命周期中,这些方法会在特定时间按照一定的顺序被调用。如下图所示。
  
              Servlet的生命周期
  Servlet 如何被加载(Load)、被实例化(Instantiated)
  Servlet Engine 负责实例化和加载Servlet,这个过程可以在Servlet Engine 加载时执行,可以在Servlet 响应请求时执行,也可以在两者之间的任何时候执行(配置为load on start  up的 servlet是在容器启动时被加载的)。
  Servlet如何被初始化(Initialized)
  Servlet Engine 加载好Servlet 后,必须要初始化它。初始化时Servlet 可以从数据库里读取初始数据,建立JDBC Connection,或者建立对其他有价值的资源的引用。
  在初始化阶段,Init( )方法被调用。这个方法在javax.servlet.Serlet接口中定义。Init( )方法以一个Servlet 配置文件(ServletConfig 型)为参数。Servlet configuration 对象由Servlet Engine 实现,可以让Servlet 从中读取一些name-value对的参数值。ServletConfig对象还可以让Servlet接受一个Servlet Context对象。
  Servlet 如何处理请求
  Servlet 被初始化以后,就处于能响应请求的就绪状态。每个对Servlet 的请求由一个Servlet Request 对象代表。Servlet 给客户端的响应由一个Servlet Response对象代表。当客户端有一个请求时,Servlet Engine 将ServletRequest 和ServletResponse对象都转发给Servlet,这两个对象以参数的形式传给Service方法。这个方法由javax.servlet.Servlet定义并由具体的Servlet 实现。
  Servlet还可以实现 ServletRequest 和ServletResponse接口。ServletRequest接口可以让Servlet 获取客户端请求中的参数,如form data、request信息、协议类型,等等。Servlet 可以从ServletInputStream流中读取request 数据。ServletResponse接口允许Servlet设置response headers和status codes。实现这个接口可以使Servlet能访问ServletOutputStream流用来向客户端返回数据。
  Servlet如何被释放
  Servlet Engine 没有必要在Servlet 生命周期的每一段时间内都保持Servlet的状态。Servlet Engine可以随时随意使用或释放Servlet。因此,你不能依赖Servlet class或其成员存储信息。当Servlet Engine判断一个Servlet应当被释放时(比如说Engine准备Shut down 或需要回收资源),Engine必须让Servlet 能释放其正在使用的任何资源,并保存持续性的状态信息。这些可以通过调用Servlet的destroy方法实现。 在Servlet Engine 释放一个Servlet 以前,必须让其完成当前实例的service方法或是等到timeout(如果Engine定义了timeout)。当Engine释放一个Servlet以后,Engine将不能再将请求转发给它,Engine必须彻底释放该Servlet并将其标明为可回收的(给garbage collection)。
  在Servlet API中最重要的是Servlet interface。所有的Servlets执行这个interface的方式有很多种:或者是直接的,或者通过extending这个class执行它,如 HttpServlet。这个Servlet interface 提供并安排Servlet与客户端联系的方法。Servlet 编写者可以在他们开发Servlet程序时提供更多一些或所有这样的方法。
  当一个Servlet接收来自客户端的调用请求时,它接收两个对象:一个是ServletRequest,另外一个是ServletResponse。这个ServletRequest class 概括从客户端到服务器之间的联系,而 ServletResponse class 概括从Servlet返回客户端的联系。
  ServletRequest interface 可以获取到这样一些信息,如由客户端传送的参数名称,客户端正在使用的协议,产生请求并且接收请求的服务器远端主机名。它也提供获取数据流的Servlet、ServletInputStream,这些数据是客户端引用中使用HTTP POST和PUT方法递交的。一个ServletRequest的子类可以让Servlet获取更多的协议特性数据。
  例如,HttpServletRequest 包含获取HTTP-specific头部信息的方法。ServletResponse interface 给出相应客户端的Servlet方法。它允许Servlet设置内容长度和回应的MIME类型,并且提供输出流ServletOutputStream,通过编写者可以发回相应数据。ServletResponse子类可以给出更多protocol-specific容量的信息。例如,HttpServletResponse 包含允许Servlet操作HTTP-specific头部信息的方法。

总结与运用:
     在实践中可以配置一个load on start up 的Servlet,它随服务器启动而初始化,在其init方法中启用一些参数设置,例如把某些变量存入ServletContext,这样以后在其他Servlet中就可以获得该参数了;而在其destroy中写入一些资源回收的代码,当服务器关闭时就可以自动关闭相遇的资源了。
  • 大小: 18.7 KB
分享到:
评论

相关推荐

    Servlet笔记,servlet生命周期、定义

    Servlet的生命周期指的是从创建到销毁的过程。这个过程包括以下几个阶段: 1. 初始化阶段:通过调用init()方法来完成,这个方法在Servlet创建后被调用一次。 2. 处理请求阶段:通过调用service()方法处理客户端请求...

    servlet生命周期详解

    Servlet生命周期是Java Web开发中的核心概念,它涵盖了Servlet从创建到销毁的整个过程,主要分为初始化阶段、运行阶段和销毁阶段。这个过程完全由Servlet容器(如Tomcat、Jetty等)管理。 **初始化阶段** 在初始化...

    Servlet 介绍 以及Servlet生命周期(详细)

    在本文中,我们将深入探讨Servlet的概念、工作原理以及其生命周期的详细过程。 Servlet是一个可重用的Java类,它扩展了Java平台的能力,使得开发者能够创建能够与Web服务器交互的应用程序。Servlet主要负责接收HTTP...

    解读servlet生命周期

    - 在`destroy()`方法执行完成后,Servlet对象及其关联的`ServletConfig`对象会被销毁,标志着Servlet生命周期的结束。 总的来说,Servlet生命周期的关键在于理解初始化、运行和销毁这三个阶段,以及每个阶段涉及的...

    servlet生命周期演示代码

    ### Servlet 生命周期演示代码详解 #### 一、Servlet 生命周期概述 在深入分析代码之前,我们先来了解一下 Servlet 的生命周期。Servlet 的生命周期主要包括三个阶段:初始化 (`init` 方法)、请求处理 (`service` ...

    servlet生命周期和模版设计模式

    Servlet生命周期和模板设计模式是Java Web开发中的两个关键概念,它们在构建动态Web应用程序时起着至关重要的作用。 首先,让我们深入理解Servlet的生命周期。Servlet是Java编程语言中的一种接口,用于扩展服务器的...

    Servlet生命周期

    ### Servlet 生命周期详解 #### 一、概述 Servlet 是 Java Web 开发的核心技术之一,用于处理客户端的 HTTP 请求并返回响应。了解 Servlet 的生命周期对于更好地控制和优化 Web 应用程序至关重要。Servlet 的生命...

    servlet生命周期

    ### Servlet 生命周期详解 #### 一、概述 Servlet作为Java Web开发中的重要组成部分,主要用于处理客户端发送至服务器端的HTTP请求并生成相应的响应结果。Servlet的生命周期主要包括实例化、初始化、服务(即处理...

    servlet的架构与生命周期

    1. **Servlet容器**:Servlet运行在Servlet容器(如Tomcat、Jetty等)中,容器负责创建Servlet实例,管理Servlet的生命周期,并处理来自客户端的请求。 2. **Servlet接口**:Servlet类需要实现`javax.servlet....

    servlet运行原理及生命周期.pdf

    通过上述过程,我们可以清晰地了解到 Servlet 的整个生命周期及其运行原理。从加载到销毁,每个阶段都有明确的任务和流程。掌握这些知识对于理解和开发基于 Servlet 的 Java Web 应用程序至关重要。

    Servlet 生命周期.pdf

    Servlet 生命周期可以被定义为init()方法、service()方法和destroy()方法三个阶段。 init()方法是在Servlet第一次创建时被调用的。init()方法简单地创建或加载一些数据,这些数据将被用于Servlet的整个生命周期。...

    Java Servlet的注解配置与生命周期详解.docx

    总结来说,Java Servlet通过XML配置或注解方式定义,其生命周期包括初始化、提供服务和销毁三个阶段。理解这些概念对于有效地开发和维护基于Servlet的应用至关重要。在实际开发中,合理利用Servlet的生命周期管理和...

    Servlet 的生命周期

    Servlet的生命周期是其运作的关键概念,理解这个过程对于开发高效、可靠的Web应用至关重要。Servlet API提供了Servlet的接口和类,使得开发者能够创建自己的Servlet实现。 首先,Servlet的生命周期主要包括四个阶段...

    j2ee17:servlet01:jsp结束,servlet的配置和生命周期

    在"Servlet01:jsp结束,servlet的配置和生命周期"这个主题中,我们将讨论以下几个关键知识点: 1. **Servlet简介**:Servlet是Java类,遵循Servlet接口,用于扩展服务器的功能,特别是Web服务器。它们可以接收和...

    Servlet的生命周期1

    Servlet是Java Web开发中用于处理客户端请求的核心组件,它的生命周期主要分为三个阶段:初始化、响应客户请求和服务终止。 1. **初始化阶段** 当Servlet容器(如Tomcat)启动时,可以通过在`web.xml`配置文件中...

    servlet基础与servlet容器模型

    它管理Servlet的生命周期,负责加载、实例化、初始化、服务以及销毁Servlet。容器接收HTTP请求,解析请求信息,然后调用相应的Servlet实例进行处理。Servlet容器通过实现Servlet API来与Servlet交互,提供了Web应用...

    Servlet的应用与配置

    Servlet 是一种特殊类型的 Java 类,继承自 javax.servlet.Servlet 接口,该接口定义了 Servlet 的生命周期和行为。 二、Servlet 生命周期 Servlet 的生命周期包括三个主要阶段:初始化、服务和销毁。 1. 初始化...

Global site tag (gtag.js) - Google Analytics