jsr之 servlet 2.5 第一章节

来源:互联网 发布:数据库批处理 编辑:程序博客网 时间:2024/05/01 20:05
潘星臣  无责任翻译 2008.1.7

任何问题发送到:
admin@opentrees.org
admin@wewebos.com

jcr 之 servlet

1 什么是一个servlet?
    一个servlet就是一个基于java技术的web组件,受管于容器,能够产生动态内容。与其他基于java技术的组件一样,servlets也是平台独立的java类,能够动态地载入并运行在一个支持java技术的服务器上。
容器(Containers),有时候也可以称之为servlet 引擎,是使web 服务器能提供servlet功能的拓展组件。servlet们通过 请求/应答 的方式与客户端进行交互。

2.什么是servlet 容器?
    servlet 容器是web server或者application 服务器的一部分,通过 请求/应答模式提供网络服务,它能解码基于MIME的请求,并格式化输出基于MIME的应答。servlet容器负责容纳servlets并管理它们的生命周期。
一个servlet容器可以单独就是一个web服务器,也可以作为一个web服务器的插件来安装。(同样的情形可以对应于对application服务器的讨论)
    所有的servlet 容器必须支持http协议,当然也可以额外地支持https协议。必须实现的http协议版本是HTTP/1.0和HTTP/1.1.
    由于容器可能会实现在RFC2616(HTTP/1.1)中描述的缓存机制,这将导致客户端的请求在传给servlet处理前被修改,或者是servlet的应答在传回给客户端之前被修改,甚至是不让servlet处理请求和应答,这些情况的具体讨论请看w3c 组织的RFC2616。
    servlet容器可能会在servlet的运行环境中放置一些安全性约束。在j2se1.3以上或者java ee1.3以上,这些约束可以代替地使用是虚拟机内建的权限架构。例如,高端的应用服务器可能会通过限制Thread对象的创建,确保容器中的其他组件不被堵塞。
    J2SE 5.0是建立一个servlet容器的最低版本要求。

3.示例
    通常情况下,servlet是通过以下步骤工作的:
    1.客户端(例如浏览器)访问web服务器,并创建了一个http 请求。
    2.请求被web服务器接受并转手给servlet容器。在处理请求时,servlet容器可以和web服务器运行在同一主机的同一进程或者不同进程里,也可以分别运行在不同主机上。
    3.servlet容器通过配置文件决定哪一个servlet被启动,并传递代表request和response的对象给它。
    4.servlet使用rquest对象来找出远程用户是谁,HTTP POST参数包含了什么,以及其他相关数据。servelt执行它所包含的逻辑,并产生回传给客户端的数据。servlet回传数据给客户端是通过response这个对象。
    5.当servlet完成了对request的处理,servlet容器确保response被完全输出,然后将控制权转回web服务器手中。
4.servlet与其他技术的比较
    从功能上来说,servlet介于CGI和专用服务器拓展技术(例如NSAPI和Apache Modules)之间。
    servlet相较于其他服务器拓展的优势有:
    由于使用了不同的处理模型,servlet通常比cgi脚本快。
    servlet使用了被大多数web服务器支持的标准化api。
    servlet拥有java语言的所有优势,包括容易开发和平台独立。(servlet就是java类)。
    servlet能够直接使用java平台庞大、强大的API集合。
 
原创粉丝点击