在2005年9月26日,Sun推出了Servlet的最新版API:Servlet2.5。这套Servlet API和以前的Servlet有着很大的不同。最大的区别就是Servlet2.5是完全基于J2SE5.0的。因此,它也理所当然地拥有了J2SE5.0的所有特性。Servlet2.5利用J2SE5.0的注释特性使它的配置更容易。然而,由于在2005年J2SE5.0刚推出不久,支持J2SE5.0的Web服务器也不多,因此,当时Servlet2.5在使用上并没有马上普及。时隔两年后,Sun又推出了基于J2SE5.0的Servlet的第二个版本3.0(就是JSR-315)。在这一版本中增加了很多有趣的特性。如可编程的登入登出,通过annotations进行配置,异步通讯等。下面就让我们来看看Servet3.0的主要特性。
一、更灵活的Web框架
现在几乎所有的基于Java的Web框架都是建立在Servlet之上的。大多数Web构架都是通过Servlets或web.xml来配置和发布的。而J2SE新加入的注释功能为我们提供了更好的选择。我们可以利用注释来设置Servlets、Listeners、filters等。但注释是直接写在程序中的,无法动态改变配置,因此,JSR同时提供了这两种方式来操作Servlet。这样将使Web应用程序具有更大的弹性。
二、EOD的支持
Servlet3.0将使用多种技术来增强API的能力。如使用注释来声明编程类型。这将成为EOD的目标之一:使Web程序零配置。也就是说我们将使用发布描述来覆盖传统的配置文章。还有就是泛型的应用,将大大加强程序的Servlet的表现力。在未来的J2SE版本中将加入支持其他语言的能力,这也有助于增强Servlet API本身的实力。
三、异步通讯的支持
Servlet3.0支持以下异步通讯特性:
1.非阻塞(Non-blocking)输入:使用这种输入方式,可以在数据因某种原因暂时未到达时程序不会因此而被阻塞。
2.非阻塞输出:和非阻塞输入类似,当由于网络问题写入数据缓慢时程序不会受到阻塞。
3.延迟请求处理:在AJAXWeb程序中客户端程序可以向服务端发出异步请求,直到超时或事件返回来处理这个请求。延迟请求在其他的地方也是非常有用的,如我们在处理数据之前必须要得到一些资源,但这些资源正处在远程网络中,而且速度并不快。这就需要异步来处理这种情况。
4.阻塞-非阻塞通知:这个功能是将通知信息放到阻塞或非阻塞事件中。然后由客户端负责提取。
5.支持通道:通道是JDK1.4及以上版本提供的一种新的通讯API。使用Channel可以更好的进行网络之间的通讯。也可以增强创建、订阅、取消等操作的安全性。
6.安全:支持登录和注销功能。
7.其他功能
(1)支持欢迎界面。
(2)ServletContentListener排序。
(3)在初始化时可以定制容器的大小。
(4)可以监视文件上传的进程。
上面只是Servlet3.0的一部分特性。从这些特性可以看出,Servlet API确实得到了很大的飞越,除了Servlet,EJB3.0也利用J2SE5.0的新特性重获新生。也许在不久的将来Servlet3.0和EJB3.0将会成为新的组合,在J2EE应用中起着举足轻重的作用,就让我们拭目以待吧!
【编辑推荐】