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

Servlet引擎的内部工作

阅读更多
Servlet引擎的内部工作
可以把Servlet引擎看成是Servlet代码的容器,就像Web浏览器是小程序代码的容器一样.
Servlet引擎进行许多工作,能大大简化编程人员工作.下面是使用标准纯种模型时Servlet的生命周期.
1.创建Servlet实例.
        Servlet引擎装入JAVA类,在Servlet引擎启动时或首次请求特定Servlet时创建Servlet实例.发生时间取决于特定Servlet的设置.通常Servlet引擎只生成Servlet对象的一个备份,每次请求时复用这个对象,即使同时处理多个请求.这种方法可以节省对每个请求生成新的对象的时间,但需要在编程时认真计划.替换方法见"单线程模型".

2.实例初始化.
Servlet引擎调用Servlet的init()方法.利用此方法,通常要设置Servlet周期中的常量参数,如文件路径和数据库连接池.实例初始化之后,放在内存中,直到收到请求.

3.请求处理.
Servlet引擎收到的每个请求由单独的Java线程处理.Servlet引擎可能创建新线程,也可能从池中分配一个线程.线程创建请求并响应对象,然后调用Servlet的service()方法.service()方法确定如何处理请求.

4.线程管理.
多个线程可以同时执行一个对象的方法,各有自己的请求与响应对象.将代码设计成线程安全是Servlet编程的主要部分.

5.其它服务
Servlet引擎提供的典型服务是对话跟踪,使程序可以跟踪属于特定用户的数据.

6.实例删除
Servlet引擎需要安全关闭时,或需要恢复内存时,调用Servlet的destroy()方法.这时Servlet可以关闭文件并优雅地关闭.

Servlet引擎向Servlet提供的服务之一是管理标准输出System.out与System.err.这些输出流的文本输出定向到日志.文件的具体地址随Servlet引擎的不同而不同.向这些输出流写入信息时,记住,其他Servlet可能也在写入数据,因此一定要标好消息,以区别其来自哪个Servlet.

Servlet API
      javax.servlet  基本一般化Servlet API包
javax.servlet.http web页面专用扩展
javax.servlet.jsp 创建JavaServer Pages的类
javax.servlet.jsp.tagext jsp类专用扩展


javax.servlet包中的几个接口定义提供整个API的基本结构.最常用的接口包括:
Servlet 这个接口定义所有Servlet都要实现的方法.GenericServlet类实现Servlet的接口.
ServletRequest 关于客户机请求的所有信息可以通过实现这个接口的对象访问.Servlet引擎负责创建ServletRequest对象.
ServletResponse Servlet引擎要创建实现这个接口的对象和传入的Servlet的service方法,用于向客户机输出MIME体.
除了上述接口之外,javax.servlet包还有下实用程序接口
RequestDispatcher
ServletConfig
ServletContext
SingleThreadModel
...
...
\\\\\\\\\\\\\\=//////////////////
一种资源管理方法是对象池,这对需要较多时间创建而又占用较少资源的对象特别有用.数据库连接通常用对象池管理.

在Servlet启动时创建指定最小个数的连接对象.
Servlet需要数据库连接时,从池管理器中请求.如果池中连接已经用光,且池中个数小于最大值,则创建新连接.如果池中个数等于最大值而池中连接已经用光,则Servlet线程受阻,直到能使用一个连接对象.

基本Servlet的生命周期有三个阶段:初始化,响应请求和断裂.
分享到:
评论

相关推荐

    jsp servlet 入门学习资料-新手一看就懂

    3.4.3 Apache、IIS和Tomcat协作时工作 目录的添加 3.4.4 设定Tomcat作为Windows的服务而启动 3.4.5 在Tomcat中建立新的Web应用程序 第4章 JSP的语法和语义 4.1 通用的语法规则 4.1.1 元素的语法规则 4.1.2 JSP...

    基于servlet+jsp+mysql的图书馆管理系统.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    一个基于 Java、JSP、Servlet、MySQL的水果商城。.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    基于servlet+jsp+mysql+MVC模式的学生选课管理系统.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    基于Jsp+Servlet+MySQL的会员管理系统.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    基于servlet+jsp+mysql做的一个简易的网上书店项目源码.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    一个基于BootStrap+JSP+Servlet+Mysql的模拟咖啡厅点餐系统。.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    基于 jsp + servlet + mysql 三层架构实现的网上书店系统.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    基于ZigBee+ESP32+MQTT+EMQX+TomCat+Servlet接口+MySQL+安卓app的物联网课设.zip

    MySQL内部包含几个特殊的系统数据库,如: information_schema:提供关于所有数据库、表、列、索引等元数据信息,是查询数据库结构的标准接口。 mysql:存储MySQL自身的系统信息,如用户权限、服务器配置、事件...

    java华为面试题.doc

    * application:javax.servle.ServletContext 对象,查找有关servlet 引擎和 servlet 环境的信息。 * config:javax.servlet.ServletConfig 对象,存取 servlet 实例的初始化参数。 * page:从该页面产生的一个 ...

    基干Rhino引擎的服务器端JavaScript脚木容器设计与实现 (2012年)

    通过将Rhino引擎置于一个标准的Javaservlet中,便可构造出一个支持JavaScript的服务端脚本容器。借助Rhino引擎,Web开发者不仅能在脚本容器内部访问Java对象,而且还获得了整个Java平台的丰富类库及应用框架的支持。...

    FreeMarker模板引擎-其他

    FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备...

    Android最佳学习路线图.docx

    3. Java 对象和类(OOP 基础):继承、接口与内部类、异常与调试、集合框架、多线程、网络编程、Java IO 流等。 4. Java 数据库编程(JDBC):熟练 JDBC 访问各种数据库、MySQL、Oracle,熟练 Java 的 CRUD 方法、...

    Flowable 中文版手册 v 6.5.0

    Flowable 可以灵活地加入应用/服务/构架,使用 JAR 形式发布的 Flowable 库可以轻易加入任何 Java 环境,例如 Java SE、Tomcat、Jetty 或 Spring 之类的 servlet 容器、JBoss 或 WebSphere 等。 4. 开源和社区支持 ...

    tomcat6、7、8、9, maven3.5

    的Apache Tomcat 5.5.X支持相同的Servlet和JSP规范版本的的Apache Tomcat 5.0.x中 还有在许多领域显著变化引擎盖下,从而提高了性能,稳定性和总拥有成本。有关详细信息,请参阅Apache Tomcat 5.5 Changelog。 的...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题68:选择合适的数据库引擎 Java面试题69:选择合适的索引 Java面试题70:使用索引的一些技巧 Java面试题71:数据库优化之分表 Java面试题72:数据库的读写分离 Java面试题73:数据库优化之缓存 Java面试题...

    simpleframework:简单框架

    Simple一直在执行商业和开源Java Servlet引擎以及WebSocket平台,并且具有完全全面的API,该API对于有经验的Java开发人员和初学者一样适用。 最重要的是,Simple是完全免费的,并根据Apache许可的条款发行,从而...

    编程狂人第十二期

    探索推荐引擎内部的秘密 一起 select 引起的崩溃 课堂上传纸条如何防范中间人攻击? 程序人生 《9Tech访谈录》揭秘游戏王子白泽的技术之路 我的北漂在路上--------时不时的停下脚步思考 纸书的秘密 我的第一次和...

    jsp内置对象的用法

    config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象) 序号 方 法 说 明 ...

    WebSphere快速入门.doc

    该框架包括五个组成部分:客户关系管理、供应链管理、企业内部管理、电子商贸和供应商关系管理。 章节三:WebSphere Studio 应用开发技术 WebSphere Studio 是一个基于 Eclipse 的集成开发环境,提供了一个完整的...

Global site tag (gtag.js) - Google Analytics