浅谈servlet版本

Posted 张玉宝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈servlet版本相关的知识,希望对你有一定的参考价值。

说白话,eclipseJ2EE版本新建一个web项目后,在IDE中的项目根目录下会看到2.3,2.4,2.5,3.0,3.1。。。。据说最新的4.0在路上,已经有草案了,很期待ing。

360百科是这么描述的:

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。

Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

等等了,还有很多就不再粘贴,主要说下版本问题:

Servlet2.2

:引入了 self-contained Web applications 的概念。

servlet2.3

: 2000年10月份出来

Servlet API 2.3中最重大的改变是增加了 filters

Servlet 2.3 增加了 filters 和 filter chains 的功能。引入了 context 和 session listeners 的概念,当 context 或 session 被初始化或者被将要被释放的时候,和当向 context 或 session 中绑定属性或解除绑定的时候,可以对类进行监测。

servlet2.4

: 2003年11月份出来

Servlet 2.4 加入了几个引起关注的特性,没有特别突出的新内容,而是花费了更多的功夫在推敲和阐明以前存在的一些特性上,对一些不严谨的地方进行了校验。

Servlet 2.4 增加了新的最低需求,新的监测 request 的方法,新的处理 response 的方法,新的国际化支持,RequestDispatcher 的几个处理,新的 request listener 类,session 的描述,和一个新的基于 Schema 的并拥有 J2EE 元素的发布描述符。这份文档规范全面而严格的进行了修订,除去了一些可能会影响到跨平台发布的模糊不清的因素。总而言之,这份规范增加了四个新类,七个新方法,一个新常量,不再推荐使用一个类。

注意:改为 Schema 后主要加强了两项功能:

(1) 元素不依照顺序设定;

(2) 更强大的验证机制。

主要体现在:

a.检查元素的值是否为合法的值

b.检查元素的值是否为合法的文字字符或者数字字符

c.检查 Servlet, Filter, EJB-ref 等等元素的名称是否唯一

2.新增 Filter 四种设定:REQUEST、FORWARD、INCLUDE 和 ERROR。

3.新增 Request Listener、Event和Request Attribute Listener、Event。

4.取消 SingleThreadModel 接口。当 Servlet 实现 SingleThreadModel 接口时,它能确保同时间内,只能有一个 thread 执行此 Servlet。

5.<welcome-file-list>可以为Servlet。

6.ServletRequest接口新增一些方法。

public String getLocalName();

public String getLocalAddr();

public int getLocalPort();

public int getRemotePort()

Servlet2.5

2005 年 9 月发布 Servlet 2.5

Servlet 2.5 一些变化的介绍:

1) 基于最新的 J2SE 5.0 开发的。

2) 支持 annotations 。

3) web.xml 中的几处配置更加方便。

4) 去除了少数的限制。

5) 优化了一些实例

Servlet 的各个版本对监听器的变化有:

(1) Servlet 2.2 和 jsp1.1

新增Listener:HttpSessionBindingListener

新增Event: HttpSessionBindingEvent

(2) Servlet 2.3 和 jsp1.2

新增Listener:ServletContextListener,ServletContextAttributeListener

,HttpSessionListener,HttpSessionActivationListener,HttpSessionAttributeListener

新增Event: ServletContextEvent,ServletContextAttributeEvent,HttpSessionEvent

(3) Servlet 2.4 和 jsp2.0

新增Listener:ServletRequestListener,ServletRequestAttribureListener

新增Event: ServletRequestEvent,ServletRequestAttributeEvent

Servlet3.0

Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布。该版本在前一版本(Servlet 2.5)的基础上提供了若干新特性用于简化 Web 应用的开发和部署。其中有几项特性的引入让开发者感到非常兴奋,同时也获得了 Java 社区的一片赞誉之声:

Servlet4.0草案

从3.1到4.0将是对Servlet 协议的一次大改动,而改动的关键之处在于对HTTP/2的支持。HTTP2将是是继上世纪末HTTP1.1协议规范化以来首个HTTP协议新版本,相对于HTTP1.1,HTTP2将带来许多的增强。在草案提议中,Shing Wai列举出了一些HTTP2的新特性,而这些特性也正是他希望在Servlet 4.0 API中实现并暴露给用户的新功能,这些新特性如下:

1.请求/响应复用(Request/Response multiplexing)

2.流的优先级(Stream Prioritization)

3.服务器推送(Server Push)

4.HTTP1.1升级(Upgrade from HTTP 1.1)

以上是关于浅谈servlet版本的主要内容,如果未能解决你的问题,请参考以下文章

Servlet浅谈

浅谈 JSP & Servlet

浅谈Java中CGI与Servlet的对比

浅谈Tomcat和Servlet

Servlet浅谈

Java-浅谈JSP内置对象