`
tiantianfei
  • 浏览: 39512 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个Servlet生命周期(Tomcat处理请求中)

阅读更多
用SSH多了,人容易变白痴,当然,这和懒惰很有关系。
Action,jsp,最终都是servlet。
下面看看servlet的整个生命周期。

1、客户发出请求—>Web 服务器转发到Web容器Tomcat;
2、Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;
3、从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;
4、Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;
5、假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
6、Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。


文绉绉版:
Servlet是一种可以在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生命周期的具体说明如下:
Servlet容器完成加载Servlet类和实例化一个Servlet对象
init()方法完成初始化工作,该方法由Servlet容器调用完成
service()方法处理客户端请求,并返回响应结果
destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源
加载并初始化Servlet
在前面已经说过Servlet容器完成加载和实例化Servlet的工作,该工作既可以在容器启动时完成,也可以在容器收到请求时完成,或者是两者之间的某个时间启动。之后需要初始化Servlet,即读取配置信息、读取初始化参数等,这些基本上在整个生命周期中只需要执行一次。关于init()方法已经在积累GenericServlet中提供缺省实现,如果不需特殊处理则没有必要再进行定义,否则要重写。
处理客户端请求
当容器接收到客户端请求时,Servlet引擎将创建一个ServletRequest请求对象和一个ServletResponse响应对象,然后把这两个对象作为参数传递给对应Servlet对象的service方法。
该方法是一个重点实现的方法,ServletRequest对象可以获得客户端发出请求的相关信息,如请求参数等,ServletResponse对象可以使得Servlet建立响应头和状态代码,并可以写入响应内容返回给客户端。
在此说明一点,当Servlet中有doGet()或者doPost()方法时,那么service方法就可以省略,默认为调用这两个方法。
卸载Servlet
Servlet的卸载是由容器本身定义和实现,在卸载Servlet之前需要调用destroy()方法,以让Servlet自行释放占用的系统资源。虽然Java虚拟机提供了垃圾自动回收处理机制,但是有一部分资源却是该机制不能处理或延迟很久才能处理的,如关闭文件,释放数据库连接等。

Servlet生命周期的五个阶段是相互关联的,后面几个阶段建立在前面阶段的基础之上,在使用Servlet的时候可以根据自己的需要灵活处理。
分享到:
评论

相关推荐

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

    这是Servlet生命周期中的最后一步,用于释放资源,比如关闭数据库连接、停止定时任务等。一旦`destroy()`方法执行完毕,Servlet实例将被垃圾回收。 在Servlet的生命周期中,容器会维护Servlet的单例或多例模式。...

    servlet生命周期详解

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

    解读servlet生命周期

    Servlet生命周期是Java Web开发中一个关键的概念,它描述了Servlet从创建到销毁的整个过程,这个过程由Servlet容器(如Tomcat)进行管理。Servlet生命周期主要分为三个阶段:初始化阶段、运行阶段和销毁阶段。 1. ...

    servlet是如何同时处理多个请求的

    在Servlet规范中,每个Servlet实例都有一个生命周期,包括初始化、服务、销毁等阶段。当Web应用启动时,Servlet容器会根据web.xml配置或者基于注解的配置创建Servlet实例。对于高并发场景,为了提高性能和资源利用率...

    Servlet生命周期与工作原理

    总结来说,Servlet生命周期包括初始化、处理请求和终止三个关键步骤,每个步骤都有其特定的目的。在开发Servlet时,理解这些阶段和工作原理可以帮助我们更好地设计和实现高效、健壮的Web应用程序。对于初学者来说,...

    Servlet生命周期

    - 默认情况下,当第一个客户端请求到达时,服务器通过反射机制创建 Servlet 对象。 - 也可以通过配置 `web.xml` 文件中的 `<load-on-startup>` 标签来实现在容器启动时自动创建 Servlet 实例。数字越小优先级越高...

    说一说servlet的生命周期

    这个方法也是Servlet生命周期中的最后一次调用,之后Servlet实例会被垃圾收集器回收。 在实际开发中,理解Servlet的生命周期对于优化性能和管理资源至关重要。例如,可以通过控制Servlet的实例化次数来减少内存消耗...

    解析Tomcat处理请求的类Connector<三>

    `Connector`是Tomcat的Catalina核心模块的一部分,它通过一个特定的协议(如HTTP/1.1或AJP)监听客户端的请求,并将这些请求转化为内部可处理的格式,然后传递给`Container`(通常是`Engine`、`Host`和`Context`)...

    servlet执行过程与生命周期

    在探讨Servlet的执行过程与生命周期之前,我们首先明确Servlet的基本概念:Servlet是一种服务器端的Java应用程序,它处理客户端发送的请求,并生成动态响应。Servlet通常运行在Web容器(如Tomcat、Jetty等)中,能够...

    《JSP+Servlet+Tomcat应用开发从零开始学》PDF

    Servlet生命周期包括加载、初始化、服务、销毁四个阶段。通过重写`doGet`和`doPost`方法来处理HTTP请求,使用`HttpServletResponse`和`HttpServletRequest`对象来读取和响应数据。Servlet与JSP结合使用时,通常...

    Web编程(Java )-Servlet的生命周期.doc

    Servlet是Java Web开发中的核心组件,它用于处理HTTP请求并响应客户端。Servlet的生命周期包括四个主要阶段:加载和实例化、初始化、服务...在实际开发中,理解Servlet生命周期有助于优化性能,确保资源的有效利用。

    tomcat 生命周期,和事件管理—— lifeCycle & event

    每个在Tomcat中部署的应用程序都有一个特定的生命周期,它由一系列的阶段组成。这些阶段包括: 1. **初始化(INITIALIZING)**:这是应用程序启动的起点,Tomcat会进行一些基本的设置和准备工作。 2. **加载...

    servlet的架构与生命周期

    **Servlet生命周期** Servlet的生命周期分为四个阶段:加载和初始化、服务、销毁和卸载。 1. **加载和初始化**:当Servlet容器首次接收到对Servlet的请求,或者通过web.xml或注解配置明确声明需要加载Servlet时,...

    【黑马程序员】Servlet生命周期与工作原理.pdf

    `init()`方法在整个Servlet生命周期中只被调用一次,通常用于加载配置信息、初始化资源等。 2. 响应客户请求阶段:当客户端发送HTTP请求到Servlet时,Servlet容器调用Servlet的`service()`方法。`service()`方法会...

    Servlet的生命周期1

    总之,Servlet生命周期的管理是Java Web应用程序中的关键环节,理解这三个阶段以及如何在每个阶段操作是开发高效、稳定Web服务的基础。通过正确地实现`init()`, `service()`, 和 `destroy()`方法,开发者能够确保...

    《JSP+Servlet+Tomcat应用开发从零开始学》┊林龙

    书中将介绍Servlet的生命周期、Servlet API的使用,以及如何在JSP和Servlet之间进行数据传递。 Tomcat是Apache软件基金会的一个开源项目,是一款轻量级的Java Web应用服务器,广泛用于开发和部署Java Web应用。...

Global site tag (gtag.js) - Google Analytics