Chap.1 概述
1.1 什么是Servlet?
Servlet是一种基于Java技术的Web组件,由容器管理,产生动态内容。像其他基于Java技术的组件一样,servlet是平台无关的Java类,它被编译成平台中立的字节码,由支持Java技术的Web服务器动态的加载和执行。容器,有时称为Servlet引擎,是提供Servlet功能的Web服务器扩展。Servlet与Web客户端通过由Servlet容器实现的请求/响应模式交互。
1.2 什么是Servlet容器?
Servlet容器是Web服务器或应用程序服务器的一部分,它通过发送请求和响应来提供网络服务,解码基于MIME的请求,编码基于MIME的响应。Servlet容器还通过servlet的生命周期控制和管理servlet。
Servlet容器可以被构建到Web服务器主机,或者通过服务器本地的扩展API作为附加组件被安装到Web服务器中。Servlet容器也可以被构建到或者可能被安装到支持Web的应用程序服务器上。
所有的servlet容器必须支持HTTP作为请求和响应的协议,但是额外的基于请求/响应的协议,例如HTTPS(SSL之上的HTTP)也可以支持。容器必须实现的HTTP规范的版本是HTTP/1.0和HTTP/1.1。因为容器可能有RFC 2616(HTTP 1.1)中描述的缓存机制,它可以在客户端请求被传送到servlet之前修改请求,也可以在响应发送到客户端之前修改响应,或者也可以使用与RFC 2616一致的方式不将请求传送到servlet来响应请求。
Servlet容器可以在servlet执行的环境中设置安全限制。在Java 2平台标准版(Java EE, v.1.3 或者以上) 或Java 2平台企业版(Java EE, v.1.3 或者以上) 环境中,这些限制应该通过使用Java 2平台定义的权限架构来设置。例如,高级的应用程序服务器可能限制线程对象的创建,来保证容器中的其他组件不受到负面影响。
J2SE 1.3是在Java平台下构建servlet容器的最低版本。
1.3 例子
以下是事件的典型序列:
1. 客户端(例如Web浏览器)访问Web服务器,创建HTTP请求。
2. 请求被Web服务器接收,并且传递到servlet容器。Servlet容器可以和Web服务器主机运行在同一个进程中,或者在同一个主机的不同进程中,或者是不同主机的不同进程中来处理请求。
3. Servlet容器根据servlet配置确定调用哪个servlet,同时使用表示请求和响应的对象调用它。
4. Servlet使用request对象查找远程用户是谁,请求中传递了什么HTTP POST参数,以及其他相关数据。Servlet执行程序的逻辑,同时生成数据发送回客户端。它通过响应对象将数据发送回客户端。
5. 一旦servlet完成处理请求,servlet容器保证响应被正确的刷新,同时将控制权交回Web服务器主机。
1.4 比较Servlet和其他技术
在功能上,servlet介于公共网关接口(CGI)和专用服务器扩展,例如Netscape Server API(NSAPI)或Apache Modules之间。
Servlet与其他服务器扩展机制相比,有以下优势:
•通常比CGI脚本更快,因为它使用不同的处理模型。
•使用很多Web服务器支持的标准API。
•有Java编程语言的所有优点,包括易于开发和平台独立。
•可以访问大量的Java平台上有效的API。
1.5 与Java 2平台企业版的关系
Java Servlet API v.2.4是Java 2平台企业版v1.4必须的API。Servlet容器和部署在其中的servlet,为了在J2EE环境中执行,必须遵循在J2EE规范中描述的额外的要求。
1.6 与Java Servlet Version 2.3规范的兼容性
本节描述了采用了本版本规范的兼容性问题。
1.6.1 HttpSessionListener.sessionDestroyed
在以前版本的规范中,这个方法定义为:通知session无效。
在2.4版本中,这个方法变成:通知session将要变成无效。
这样在session无效之前进行通知。如果代码假定以前的状态,那么必须修改成新的状态。
1.6.2 ServletRequest 方法 getRemotePort, getLocalName,getLocalAddr, getLocaPort
在本版本的规范中,以下的方法被加入到ServletRequest接口中。
public int getRemotePort()
返回发送请求的客户端或者最后代理的IP源端口。
public java.lang.String getLocalName()
返回接收请求的IP接口的主机名称。
public java.lang.String getLocalAddr()
返回接收请求的接口的IP地址。
public int getLocalPort()
返回接收请求的接口的IP端口号。
注意,这个附加变化变化导致一些情况下代码不兼容,例如,当开发者实现ServletRequest 接口时。在这种情况下,需要保证所有的新方法都被实现。
分享到:
相关推荐
Servlet-2.4 规范是 Java Servlet API 的一个重要版本,发布于2003年4月10日,由 Sun Microsystems 提出并维护。此版本在先前版本的基础上进行了改进与扩展,提高了应用的安全性、灵活性和功能丰富度。 #### 二、...
Servlet 2.4 规范是Java Web开发中一个重要的里程碑,它定义了Servlet和Java服务器页面(JSP)的标准,使得开发人员可以构建可移植的、基于Web的应用程序。以下是对Servlet 2.4规范的详细解读: 1. **概述** - **...
Java Servlet Specification 2.4(简称 JSS 2.4)是 Sun Microsystems 发布的一个规范文档,用于定义 Servlet 技术的标准实现。该版本发布于 2003 年 4 月 10 日,作为 Proposed Final Draft 3 版本。Servlet 是一种...
这两个版本的Servlet规范文档是开发者深入理解Servlet技术、提高Web应用开发效率的重要参考资料。通过学习这些规范,开发者能够充分利用Servlet提供的功能,构建出高效、健壮的Web应用程序。无论是Servlet 2.4的过滤...
Servlet 2.4 规范是Java服务器端编程的一个重要里程碑,它定义了Servlet和JavaServer Pages (JSP) 的核心API,为开发基于Java的Web应用程序提供了标准。这一规范在Java EE 5之前广泛使用,是理解Web服务构建基础的...
1.6 与 Java Servlet 规范 2.5 版本间的兼容性 ..............................................................................................14 1.6.1 监听器(Listener)顺序 .................................
Servlet 2.4 API 是Java Web开发中一个重要的组件,它是Java Servlet技术的规范版本2.4。这个压缩包文件 "servlet2.4_API.rar" 包含了一系列的文档和资源,帮助开发者理解和使用Servlet API。以下是这些文件的具体...
Servlet 2.4 规范是Java服务器端编程的重要组成部分,它是Java EE 5标准的一部分。这个规范定义了Servlet API的版本2.4,为Web应用程序提供了处理HTTP请求和响应的能力。Servlet技术允许开发人员创建动态、交互式的...
Servlet API 2.4是Java Servlet规范的第2个主要版本,发布于2003年,它是Java 2平台企业版(J2EE)1.4的一部分。 Servlet是Java编程语言中用于动态处理Web请求的类库,它们允许开发者创建能够接收和响应HTTP请求的...
Servlet 2.4 版本是 Java Servlet 规范的一个重要里程碑,它在 2002 年由 Sun Microsystems 发布。 #### Servlet 2.4 规范关键特性 ##### 1. **过滤器(Filter)机制** Servlet 2.4 引入了过滤器机制,允许开发者在...
Servlet 2.4 API是Java Servlet规范的第三个版本,发布于2003年,它在Servlet 2.3的基础上增加了新的特性和改进。 二、Servlet生命周期 Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。在Servlet 2.4中,...
Servlet 2.4是Servlet规范的第四次重大更新,它是Java Servlet API的重要组成部分,主要用于处理HTTP请求和响应。在这个版本中,有以下几个关键知识点: 1. **Servlet生命周期**:Servlet实例经历了初始化、服务和...
2.5版本:此版本对servlet规范进行了更进一步的改进,特别是在2.4版本的基础上解决了多个URL不能映射到同一个servlet的问题。此外,servlet 2.5版本还提供了更多的编程便利性,例如,与Servlet API的更好集成、更...
Servlet 2.4 标准是 Java Servlet API 的一个重要版本,它定义了 Web 应用程序如何处理 HTTP 请求和响应的基本规范。该标准由 Sun Microsystems 在 2003 年 11 月 24 日发布,其版本号为 2.4。本文档提供了 Servlet ...
它遵循特定的技术规范,随着技术的发展,Servlet规范也经历了多次迭代。 - **JSR53**: 定义了Java TM Servlet 2.3 和 Java Server Pages TM 1.2 规范。 - **JSR154**: 分别定义了Java TM Servlet 2.4 和 2.5 (维护...
Servlet 2.4是Java Servlet规范的一个版本,它在2003年由Java Community Process (JCP)发布,是Java Web开发中的重要组成部分。这个压缩包文件“servlet2.4doc”很可能包含了该版本Servlet API的官方文档,用于帮助...
Servlet 2.4是Java Servlet规范的一个版本,它在2003年由Java Community Process (JCP)发布,是Java Web开发的重要组成部分。这个版本的Servlet API为Web开发者提供了更强大的功能和更好的性能,同时也引入了一些...
- 发布于1999年,是Servlet规范的第二个主要版本。 - 引入了HttpServletRequest和HttpServletResponse接口,以支持HTTP协议的特性,如请求头和响应状态码。 - 提供了RequestDispatcher接口,用于请求转发和包含,...
Servlet 2.4是Java Servlet规范的一个版本,它在2003年发布,是Java Web开发中的一个重要里程碑。Servlet是Java平台上的一个标准接口,用于处理来自HTTP客户端(通常是Web浏览器)的请求并返回响应。它使得开发者...
Neusoft公司Java编码规范 目的 5 范围 6 前提条件 7 Java编码规范概要 8 1 代码风格 8 1.1 一般格式说明 8 1.2 基本结构 8 2 代码结构 9 2.1 变更履历 9 2.2 Package声明 11 ...5.12 Servlet规范 63 5.13 EJB规范 65