本文将详细介绍即将发布的Servlet 3.0规范中的哪些特性会对开发人员构建Java web应用程序的方式产生重要影响。
作为web应用开发关键的Java API之一,Servlet规范自从诞生之日起,除了添加诸如过滤器和web应用事件之类的功能之外,它还鲜有任何重大的变革之举。然而,新的 Servlet 3.0规范的发布将对开发人员构建Java web应用程序的方式产生重大的影响。
本文将向读者简要介绍 Servlet 3.0中引入的各种新特性。然后,我们将通过示例代码详细讲解Servlet 3.0的过滤器和监听器的用法。同时,我们还将讨论如何将框架及其他程序库插入一个web应用中。 本文最后简要讨论Servlet 3.0对异步处理的支持,以及对现有API的重要改进之处。
一、Servlet 3.0新特性简述
Servlet 3.0规范为使用它的开发人员实现了以下目标:
- 简单性
- 减轻开发工作量
- 遵循web 2.0原则
为了使开发过程更加轻松,Servlet 3.0引入了注释。类似于EJB 3.1的改变,注释的引入使得web部署描述符web.xml成为可选项。
可插性
每当我们使用第三方框架如Struts、JSF或者Spring的时候,我们需要在web.xml中为相应的Servlet添加相应的条目,这使得 web部署描述符变得繁琐并且难以维护。 Servlet 3.0中引入的可插性使得web应用程序更加模块化,也更加易于维护。由于可插性是通过web片段来实现的,所以它使得开发人员不必再在web.xml中 建立太多的Servlet配置条目。
异步处理
新的Servlet规范中的另一项重大变化是支持异步处 理,这对于AJAX应用程序来说是一个非常有用的特性。当Servlet创建发送请求的线程的时候,它通常必须等待诸如数据库或者消息连接等资源返回响 应,之后它才能在这个线程中执行其他操作。异步处理通过允许线程执行其它的操作而避免了这样的阻塞式请求。
除了上面提到的特性之外,新规范还对现有的API做了改进处理,相关内容将在本文末尾部分进行详细介绍。
注意:为了运行使用Servlet 3.0开发的Servlet,我们的servlet 容器应该运行在Java SE 6或更高版本中。