美文网首页web后端
Servlet 3.0前言&概述

Servlet 3.0前言&概述

作者: Lucky_Micky | 来源:发表于2016-01-23 20:36 被阅读114次
    1. Servlet是什么?
      Servlet是一个基于Java的组件,它由容器管理并输出动态内容。像其它基于Java技术的组件一样,servlets是平台独立的Java classes,它被编译为独立于平台的字节码,能在Web server中动态地加载、执行。
      容器 - 又称之为servlet engines, 是提供servlet功能的Web server扩展。Servlets通过servlet容器实现的request/response模型与Web client交互。

    2. Servlet容器是什么?
      一个servlet容器是一个Web server或者应用服务器的一部分,它提供在requests和responses之上的网络服务,解码基于MIME的requests以及格式化基于MIME的responses. 同时,容器也通过servlet的生命周期来管理这些servlets。

    一个servlet容器能内建于主机Web服务器中, 或者通过Web服务器的native extension API作为一个额外的组件安装到Web服务器中。

    所有的servlet容器必须为requests和responses支持HTTP协议,但是其它基于request/response的协议,如HTTPS(HTTP over SSL)可以被支持。Servlet容器必须实现的HTTP规范的http协议版本是HTTP/1.0和HTTP/1.1。因为容器可能有RFC2616(HTTP/1.1)中描述的缓存机制,它可能在Request发送到servlet之前在client端修改requests,在把response发送回client之前修改response,或者遵循RFC2616,可以在响应request时,不把他们发送给servlet。

    一个容器可以把安全限制添加在servlet执行的环境中。在Java Platform, Standard Edition (J2SE, v.13 or above) 或者Java Platform, Enterprise Edition (Java EE,v.1.3 or above) 环,这些限制应该由Java Platform允许的架构来添加。例如,高端的应用服务器可以限制线程对象的创建,以此来保证容器中其它组件不受影响。

    Java SE 6是当下Java Platform必须内建servlet 容器的最低版本。

    • 示例
      以下是一个事件典型的处理流程:

      1. 客户端访问Web服务器并发送一个HTTP请求。
      2. Web服务器接收到这个请求,并转交给servlet容器。这个servlet容器能与主机Web服务器运行在同一个进程、同一主机不同进程或者在不同主机上。
      3. servlet容器根据servlet配置决定应该触发哪个servlet,并且带着能代表request和response的对象去调用它。
      4. servlet使用request对象找出远端用户是谁、参数是啥和其它相关数据。servlet执行好逻辑代码之后,产生数据送回client。servlet通过response把数据发送回client。
    • 比较Servlets与其它相关技术
      功能上来讲,servlets介于Common Gateway Interface - (CGI) 程序和专有的服务器扩展,比如Netscape Server API (NSAPI) 或者Apache Modules

      相比其它的服务器扩展,servlets有下述优势:

      1. 由于使用不同的进程模型,servlets通常比CGI程序快。
      2. Servlets使用一套被很多Web服务器支持的标准API。
      3. servlet包括Java编程语言的所有优势,包括易于开发和平台独立性。
      4. servlets能使用Java Platform提供大量的API。
    1. 与Java Platform,Enterprise Edition的关系
      Java Servlet API v.3.0是Java Platform,Enterprise Edition v.6 必须的API。为了在Java EE环境中执行,部署在它下面的Servlet容器和servlet必须满足Java EE specification 中描述的额外要求。

    2. Servlet 3.0 与 Java Servlet Specification Version 2.5的兼容性

      • Listener ordering
        在这个版本发布之前,listeners随机触发。到了3.0版本,listener触发的顺序被定义在 web.xml,web-fragment.xml 和 annotations中。
    • 处理annotations
      在Servlet2.5, metadata-complete仅仅在部署的时候影响annotations的扫描。web-fragments符号在servlet2.5中并不存在。然而在servlet3.0, metadata-complete在部署时影响扫描所有的annotations和web-fragments。一个web应用中,描述符的版本不能影响你要扫描哪个annotations。specification特殊版本的实现你定要扫描配置中所有支持的annotations,除非指明了具体metadata-complete。

    翻译自 Java Servlet Specification
    Version 3.0 Rev a
    Author:Rajiv Mordani
    Date: December 2010

    相关文章

      网友评论

        本文标题:Servlet 3.0前言&概述

        本文链接:https://www.haomeiwen.com/subject/tksrkttx.html