`
DxnPratice
  • 浏览: 18891 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

Servet工作原理和生命周期详解

阅读更多
   Servlet的工作原理和生命周期:
   Servlet是一个基于java技术的web组件,用来扩展以请求/响应为模型的服务器的能力。          Servlet与平台无关,可以被编译成字节码。Servlet被容器管理,能别编译成字节码被web服务器调用,容器也被称之为引擎,是支持Servlet功能的web服务的扩展,Servlet之间的通信是通过客户端请求被容器执行成request/response对象进行的。
    Servlet容器是web服务器或应用服务器的一部分,服务器能够支持网络的请求/响应,基于请求解析MIME,基于响应格式化MIME。Servlet容器是Servlet的运行环境,管理和维护Servlet的整个生命周期,Servlet容器必须支持HTTP协议,负责处理客户请求,把请求传递给适当的Servlet并把结果返回给客户;
    在介绍Servlet具体工作流程之前,我觉得很有必要理解以下几个概念,说真的,我自己之前就没有搞清楚,刚才的百度加上自己的理解,如下:
    (1)web定义:是运行在互联网上的一种服务,它以网页的形式让浏览者获取信息;
    (2)Apache的定义是Web server,即web服务器,web服务器是指能够为发出请求的浏览器提供文档的程序,只有浏览器发出请求的时候才会响应,应用层使用的是HTTP协议。而web容器是一种服务器程序,在服务器端口就有一个提供相应服务的程序。一个服务器可以有多个容器。
    (3)Tomcat是一个提供支持Servlet/JSP运行的web容器,产生动态网页内容,也能为静态网页提供支持。
    (4)对于web服务器而言,Apache仅仅支持静态网页,对于支持动态网页就会显得苍白无力;
     (5)如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个解释器就是Tomcat;而因为JSP连接数据库的话就需要JDK来提供连接数据库的驱程。所以要运行JSP的web服务器平台就需要Apache+Tomcat+JDK;
     (6)一般来说,大的站点都是Tomcat+Apache的结合,Apache接收所有来自客户端的HTTP请求,如果客户端请求的是静态页面,则只需要Apache服务器响应请求,如果客户端请求动态页面,则是Tomcat服务器响应请求;所以可以说Tomcat既是容器,也是web服务器,它可以独立于Apache运行;可以这么类比:Apache是一辆卡车,上面可以装一些东西如HTML等,但是不能装水,要是装水的话必须要桶(容器),而这个桶也可以不放在卡车上。
    具体工作流程如下:
    1,客户端(如客户机的web浏览器)向服务器发起一个Http请求;
    2,web服务器接收该请求,检测是否是html静态页面,则直接将静态页面返回给浏览器;如果不是Html静态页面,则会转交给Servlet容器来处理,Servlet容器查询所需要加载的JSP文件是否已经被解析成Servlet文件,如果没有,则根据该JSP文件新创建一个Servlet文件,当然如果直接是java类(例如是继承HttpServlet类的Java类)则就不需要解析这个过程了。。反之,如果容器里面有此Servlet文件,则比较两者的时间,如果JSP文件的时间要晚于servlet文件,说明此JSP文件已经被修改过,需要容器重新生成Servlet文件,反之容器将使用原先的Servlet文件。
    3,容器编译好的Servlet文件被加载到Servlet容器中,执行文件里面的各项操作;
    4,Servlet容器生成响应结果,并以HTML的形式返回给客户端;
    Servlet生命周期:
       (1),装载Servlet在下列情形下:Servlet容器加载servlet;Servlet容器启动时自动加载某些servlet;在Servlet容器启动时,客户端首次向Servlet发出请求;Servlet的类文件被更新后,重新加载servlet;
       (2),实例化一个Servlet实例对象(即为该对象分配一块内存空间);
       (3),调用init()方法进行初始化;
       (4),服务。容器收到该Servlet请求,调用该Servlet对象的service()方法处理请求;
       (5)卸载。当服务器不再需要该Servlet对象的时候,服务器调用destroy()方法卸载该Servlet,并释放Servlet运行时占用的资源;当多个客户请求一个Servlet时,引擎为每一个客户启动一个线程,Servlet的成员变量被所有的线程共享,而init()方法只有第一次被请求加载时被调用一次,当有客户再来请求服务时,web服务器将启动一个新的线程,在该线程中,调用service()方法响应客户的请求。
分享到:
评论

相关推荐

    通俗理解页面生命周期

    #### 页面生命周期详解 页面生命周期指的是一个ASP.NET页面从创建到销毁的过程。这个过程可以分为以下几个阶段: 1. **初始化 (Init)**:在这个阶段,页面及其控件被创建。控件可以在此阶段设置其属性,但不能执行...

    JSP的生命周期

    ### JSP的生命周期详解 #### 一、引言 JSP (Java Server Pages) 是一种基于Java技术的服务器端脚本语言,它允许在HTML页面中嵌入Java代码,从而实现动态网页的功能。JSP页面的生命周期是理解其工作原理的关键之一...

    Session的工作原理与概念详解

    ### Session的工作原理与概念详解 #### 一、Session的基本概念 在计算机科学中,特别是网络编程领域,“**Session**”一词被广泛使用,并且在不同的上下文中具有不同的含义。通常,Session指的是客户端与服务器...

    tomcat工作原理深入详解

    【Tomcat工作原理深入详解】 Tomcat是一款广泛使用的开源Web应用服务器,尤其在中小型系统和并发访问量不高的场景中,其轻量级特性使其成为开发者首选。虽然Tomcat最初作为Apache服务器的扩展存在,但它可以独立...

    GoAhead Webserver源码详解

    - socket_t结构的生命周期管理:包括初始化、使用和销毁socket_t结构的各个阶段。 通过以上六个方面的分析,我们可以看到GoAhead Webserver是一个结构清晰、功能完备、适合嵌入式系统的Web服务器。其源码的详细...

    server.xml常用配置详解.docx

    `<Server>` 的主要职责是提供一个接口以便客户端能够访问到一系列 `<Service>` 集合,并管理它们的生命周期,包括初始化、服务终止以及查找客户端要访问的服务。 - **可选配置**:`<Server>` 元素通常不会直接配置...

    Memcached原理和使用详解

    ### Memcached原理和使用详解 #### Memcached简介 Memcached是一种高性能、分布式内存对象缓存系统,由LiveJournal的开发团队开发,旨在通过缓存数据库查询结果和其他计算结果来减轻数据库负担,从而提高动态Web...

    jsf生命周期和一部分标签介绍

    **JSF(JavaServer Faces)生命周期详解** JSF是一种用于构建Web应用程序的MVC(Model-View-Controller)框架,由Java Community Process定义并维护。它简化了UI开发,提供了丰富的组件库,并处理了用户输入的验证...

    Professional SQL Server 2008 Internals and Troubleshooting

    Jones 和 Steven Wort等多位专家共同撰写,旨在为数据库管理员(DBA)和开发人员提供深入理解SQL Server 2008内部工作原理及故障排查技巧的指南。以下将详细阐述书中所涉及的核心知识点。 ### 查询生命周期及其架构...

    tomcat的工作原理

    Tomcat的工作原理涉及到多个组件,包括连接器(Connectors)、容器(Containers)、管道(Pipelines)与阀门(Valves),以及生命周期管理机制等。本文将详细探讨这些关键组成部分,揭示Tomcat如何高效地处理HTTP...

    Java Web开发详解源码

    9. **Servlet容器**:熟悉Tomcat或Jetty等Servlet容器的工作原理,以及如何配置和部署Web应用程序。 10. **数据库连接**:了解如何使用JDBC进行数据库操作,包括连接池的配置和使用。 通过深入研究孙鑫的这个Java ...

    J2EE应用开发详解代码

    理解这些组件的工作原理和协作方式是基础。 2. **EJB**:EJB是J2EE中的核心组件,分为三种类型:Session Beans(会话bean)处理客户端请求,Message-driven Beans(消息驱动bean)处理JMS消息,而Entity Beans...

    关于jsp中的JSP详解

    3. **JSP生命周期**:JSP组件(比如自定义标签)有自己的生命周期,包括加载、实例化、初始化、服务和销毁五个阶段。 4. **JSP内置对象**:JSP提供了九个内置对象,如`request`, `response`, `session`, `...

    Tomcat与Java Web开发技术详解(第2版)PDF

    读者将学习到如何创建、配置和运行Servlet以及JSP,理解它们的工作原理和生命周期。 此外,书中还会涉及Java Web应用的目录结构和部署描述符(web.xml),这是理解应用如何在Tomcat中运行的关键。读者将学习如何...

    jsp应用开发详解(中文高清pdf版)

    《jsp应用开发详解》这本书是Java服务器页面(JSP)...通过《jsp应用开发详解》这本书,读者不仅可以理解JSP的工作原理,还能学会如何利用JSP进行高效、可扩展的Web应用开发,为职业生涯中的项目开发打下坚实的基础。

    (JSP应用开发详解)JSP应用开发详解

    因此,理解Servlet的生命周期——初始化、服务、销毁——对理解JSP的工作原理至关重要。 8. **JSP的MVC模式** JSP常与Servlet和JavaBean结合,形成MVC(Model-View-Controller)架构,其中JSP作为视图,Servlet...

    jsp应用开发详解 jsp电子书

    1. **JSP基本概念**:了解JSP的工作原理,包括JSP页面生命周期,JSP与Servlet的关系,以及JSP如何被编译为Servlet执行。 2. **JSP语法**:掌握JSP的元素,如指令(Directives)、脚本元素(Scriptlets)、表达式...

    Oracle 9i 应用服务器详解(PDG)

    9. **源代码和资料**:提供的源代码和资料可能包括示例应用、API文档、教程和最佳实践指南,帮助开发者深入理解9iAS的内部工作原理,并加速实际项目开发。 Oracle 9i AS的这些特性使其成为当时企业级应用的理想平台...

    EJB工作原理

    ### EJB工作原理详解 #### 一、EJB概述与工作流程 EJB(Enterprise JavaBeans)是Java EE平台的核心组件之一,专为构建大型分布式企业级应用而设计。它提供了一种在服务器端实现业务逻辑的方式,允许开发者将业务...

    Tomcat与Java Web开发技术详解(第2版).pdf

    书中首先会介绍Tomcat的基本架构和工作原理,包括服务器的启动、停止、配置以及管理等方面,让读者对Tomcat有一个全面的认识。 Java Web技术主要包括Servlet、JSP和JavaServer Faces(JSF)等。Servlet是Java Web...

Global site tag (gtag.js) - Google Analytics