数据加载中...
Welcome to javafans club
网站刚开 , 谢谢大家的到来..
当前位置| 主页>Java技术资讯>J2EE>

Java Servlet API说明文档

2008-07-15 作者:佚名 来源:网络 阅读

  译者前言:

  近来在整理有关Servlet资料时发现,在网上竟然找不到一份中文的Java Servlet API的说明文档,而在有一本有关JSP的书后面附的Java Servlet API说明竟然不全,而这份文档的2.1a版在1998年的11月份就已定稿。所以我决定翻译一份中文的文档(其中一些与技术关系不大的部分已被略去),有爱好的读者可以从http://java.sun.com/products/servlet/2.1/servletspec-2.1.zip下载原文阅读。

  Java Servlet API说明文档(2.1a版)

  绪言

  这是一份关于2.1版Java Servlet API的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。

  谁需要读这份文档

  这份文档描述了Java Servlet API的最新版本2.1版。所以,这本书对于Servlet的开发者及servlet引擎的开发者同样适用。

  Java Servlet API的组成

  Java Servlet API由两个软件包组成:一个是对应HTTP的软件包,另一个是不对应HTTP的通用的软件包。这两个软件包的同时存在使得Java Servlet API能够适应将来的其他请求-响应的协议。

  这份文档以及刚才提及的Javadoc格式的文档都描述了这两个软件包,Javadoc格式的文档还描述了你应该如何使用这两个软件包中的所有方法。

  有关规范

  你也许对下面的这些Internet规范感爱好,这些规范将直接影响到Servlet API的发展和执行。你可以从http://info.internet.isi.edu/7c/in-notes/rfc/.cache 找到下面提到的所有这些RFC规范。

  RFC 1738 统一资源定位器(URL)

  RFC 1808 相关统一资源定位器

  RFC 1945 超文本传输协议--HTTP/1.0

  RFC 2045 多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第一部分:Internet信息体格式

  RFC 2046 多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第二部分:媒体类型

  RFC 2047 多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本

  RFC 2048 多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分: 注册步骤

  RFC 2049 多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第五部分:一致性标准和例子

  RFC 2068 超文本传输协议 -- HTTP/1.1

  RFC 2069 一个扩展HTTP:摘要访问鉴定

  RFC 2109 HTTP状态治理机制

  RFC 2145 HTTP 版本号的使用和解释

  RFC 2324 超文本Coffee Pot控制协议 (HTCPCP/1.0)

  万维网协会(http://www.w3.org)治理着这些协议的规范和执行。

  有关Java Servlets

  JavaTM servlets是一个不受平台约束的Java小程序,它可以被用来通过多种方法扩充一个Web服务器的功能。你可以把Servlet理解成Server上的applets,它被编译成字节码,这样它就可以被动态地载入并用效地扩展主机的处理能力。

  Servlet与applets不同的地方是,它不运行在Web浏览器或其他图形化的用户界面上。Servlet通过servlet引擎运行在Web服务器中,以执行请求和响应,请求、响应的典型范例是HTTP协议。

  一个客户端程序,可以是一个Web浏览器,或者是非其他的可以连接上Internet的程序,它会访问Web服务器并发出请求。这个请求被运行在Web服务器上的Servlet引擎处理,并返回响应到Servlet。Servlet通过HTTP将这个响应转发到客户端。

  在功能上,Servlet与CGI、NSAPI有点类似,但是,与他们不同的是:Servlet具有平台无关性。

  Java Servlet概论

  Servlet与其他普通的server扩展机制有以下进步:

  因为它采用了不同的进程处理模式,所以它比CGI更快。

  它使用了许多Web服务器都支持的标准的API。

  它继续了Java的所有优势,包括易升级以及平台无关性。

  它可以调用Java所提供的大量的API的功能模块。

  这份文档说明了Java Servlet API的类和接口的方法。有关更多的信息,请参看下面的API说明。

  Servlet的生命周期

  一个Java servlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。

  所有的Java Servlet都会直接地或间接地执行javax.servlet.Servlet接口,这样它才能在一个Servlet引擎中运行。Servlet引擎是Web 服务器按照Java Servlet API定制的扩展。Servlet引擎提供网络服务,能够理解MIME请求,并提供一个运行Servlet的容器。

  javax.servlet.Servlet接口定义了在Servlet的生命周期中特定时间以及特定顺序被调用的方法。

  Servlet的解析和载入

  Servlet引擎解析并载入一个Servlet,这个过程可以发生在引擎启动时,需要一个Servlet去响应请求时,以及在此之间的任何时候。

  Servlet引擎利用Java类载入工具载入一个Servlet,Servlet引擎可以从一个本地的文件系统、一个远程的文件系统以及网络载入Servlet。

  Servlet的初始化

  Servlet引擎载入Servlet后,Servlet引擎必须对Servlet进行初始化,在这一过程中,你可以读取一些固定存储的数据、初始化JDBC的连接以及建立与其他资源的连接。

  在初始化过程中,javax.servlet.Servlet接口的init()方法提供了Servlet的初始化信息。这样,Servlet可以对自己进行配置。

  init()方法获得了一个Servlet配置对象(ServletConfig)。这个对象在Servlet引擎中执行,并答应Servlet通过它获处相关参数。这个对象使得Servlet能够访问ServletContext对象。

  Servlet处理请求

  Servlet被初始化之后,它已经可以处理来自客户端的请求,每一个来自客户端的请求都被描述成一个ServletRequest对象,Servlet的响应被描述成一个ServletResponse对象。

  当客户端发出请求时,Servlet引擎传递给Servlet一个ServletRequest对象和一个ServletResponse对象,这两个对象作为参数传递到service()方法中。

  Servlet也可以执行ServletRequest接口和ServletResponse接口。ServletRequest接口使得Servlet有权使用客户端发出的请求。Servlet可以通过ServletInputStream对象读取请求信息。

上一篇:深入理解和改进JSP/Servlet会话管理机制

下一篇:用JSP构建动态网站
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,请自觉遵守互联网相关政策法规。违者移交公安机关处理
用户名: 密码:
匿名?
注册
Sitemap Links Contcat us
© 2008 Javafans.Net 苏ICP备06044966号