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 接口时。在这种情况下,需要保证所有的新方法都被实现。
分享到:
相关推荐
1.6 与 Java Servlet 规范 2.5 版本间的兼容性 ..............................................................................................14 1.6.1 监听器(Listener)顺序 .................................
详细讲解servlet2.4规范,是做Java EE的不可多得的必备工具手册
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
14 与 Java Servlet 规范 2.5 版本间的兼容性 .............................................................................................. 14 1.6.1 监听器(Listener)顺序 .................................
tomcat 服务器。 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...
Java应用构建工具:Apache Ant / … 掌握JSP 1.3/2.0和Servlet 2.3/2.4编程及其在Web层 Java B/S商务项目开发(基于JSP/Servlet,全真案例第二个项目) 2人左右为一个项目组,项目大小为10人*工作日左右 熟练使用...
6.4 Servlet 3.0标准 6.5 JavaServer PagesTM标准 6.6 Expression Language标准 6.7 JavaTM Message Service 6.8 JavaTM Transaction API 6.9 JavaMailTM 1.4标准 6.10 Java 连接器体系结构标准 6.11 Java EE Web...
◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲 Java语言基础知识 ◇课前索引 ◇2.1 简单数据类型 ◇2.2 运算符和表达式 ◇2.3 控制语句 ◇2.4 数组 ◇2.5 字符串的处理 ...
1 JAVA SE 1.1 深入JAVA API 1.1.1 Lang包 1.1.2 集合类 1.1.2.1.1 日期类Date 1.1.2.1.2 日历类Calendar 1.1.2.1.3 随机数类Random 1.1.2.1.4 向量类Vector 1.1.2.1.5 栈类Stack 1.1.2.1.6 哈希表类Hashtable ...
◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲 Java语言基础知识 ◇课前索引 ◇2.1 简单数据类型 ◇2.2 运算符和表达式 ◇2.3 控制语句 ◇2.4 数组 ◇2.5 字符串的处理 ...
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...
◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲 Java语言基础知识 ◇课前索引 ◇2.1 简单数据类型 ◇2.2 运算符和表达式 ◇2.3 控制语句 ◇2.4 数组 ◇2.5 字符串的处理 ...
◇1.5 java程序规范 ◇1.6 建立java开发环境 ◇本讲小结 ◇课后习题 ★ 第二讲 Java语言基础知识 ◇课前索引 ◇2.1 简单数据类型 ◇2.2 运算符和表达式 ◇2.3 控制语句 ◇2.4 数组 ◇2.5 字符串的处理 ...
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...
1 JAVA SE 2 1.1 深入JAVA API 2 1.1.1 Lang包 2 1.1.2 集合类 8 1.1.2.1.1 日期类Date 9 1.1.2.1.2 日历类Calendar 10 1.1.2.1.3 随机数类Random 11 1.1.2.1.4 向量类Vector 12 1.1.2.1.5 栈类Stack 13 1.1.2.1.6 ...
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...
由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了...