2.5版本保留的特性 尽管servlet可配置性已被大大扩展,但最基本,最简单的servlet生命周期没有改变。在处理任意请求前,servlet容器管理servlet类实例的创建并调用init()方法,这个方法具有servlet将运行于上下文的信息。Servlet容器负责创建代表一个请求或响应的对象,并调用service()方法。当servlet实例关闭的时候,destory()方法被调用,这样servlet使用的资源才能被正确地释放。
生命周期的简单性让曾经在桌面应用领域工作过的开发者在web环境下觉得更容易。 标注的角色 已经证明,Java标注在很多工程中起到简化应用部署的作用,……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
2.5版本保留的特性
尽管servlet可配置性已被大大扩展,但最基本,最简单的servlet生命周期没有改变。在处理任意请求前,servlet容器管理servlet类实例的创建并调用init()方法,这个方法具有servlet将运行于上下文的信息。Servlet容器负责创建代表一个请求或响应的对象,并调用service()方法。当servlet实例关闭的时候,destory()方法被调用,这样servlet使用的资源才能被正确地释放。生命周期的简单性让曾经在桌面应用领域工作过的开发者在web环境下觉得更容易。
标注的角色
已经证明,Java标注在很多工程中起到简化应用部署的作用,比如Jersey工程。在Servlet 3.0 API中,javax.servlet.annotation 这个包中包含了6个标注类型,用在servlet,过滤器和监听器的声明中。下面按名称列出了这些标注类型和函数:
HandlesTypes
在服务器启动的初始化过程中,用ServletContainerInitializer定义了一个"类型"列表。使用这个列表来寻找servlet和过滤器类。
MultipartConfig
过去, 尽管有servlet API和使用各种工具的程序员,但这些不能直接支持文件上传。在servlet 3.0中, 支持multi-part/form-data POST请求,这个标注还提供了控制请求的信息。比如,你能够规定所接受文件的最大长度。
WebFilter
在请求传给servlet前,一个servlet过滤器对象控制该请求,在响应被发给客户端前,可以对响应加以处理。尤其是在入站的请求包括用户验证,日志的用法上。而出站响应的功能包括加密和压缩。这个标注用来建立起过滤器类和URL请求模式之间的关联,并指示过滤器类可以处理异步NIO。
WebInitParam
这些标注通过使用和web.xml中“init-param”功能一样的标注名称和值,提供了一种在servlet或过滤器类中声明初始化参数的方式。
WebListener
监听器类是在web应用周期的过程中接收事件通知的类。Servlet 3.0 API定义了至少9个不同的监听器接口。而不是为每个类型都定义标注,WebListener这个标注声明了这个类是个监听器,但容器必须检查这个类并注册一个实例来接受相应的事件。
WebServlet
这个标注将一个类标记为HttpServlet基类的扩展,并为定义许多和servlet实例相关的参数提供扩展功能。比如,它对URL的模式的响应,以及是否支持异步操作。
异步操作
Servlet 2.5 处理请求时仍然是一个请求在一个线程中处理,但随着功能的增强,已经要求使用非阻塞输入输出(NIO)来优化。在过滤器和servlet类上必须用标注来指示他们可以利用NIO。基本的servlet请求和响应接口有处理NIO的增强功能。
Glassfish和Servlet3.0
对于Servlet API的2.5版本,Apache Tomcat工程曾经是参考实现。在Java兼容性套件的许可证有效期上,Sun和Apache软件基金会之间看起来好像有些冲突。正是这个原因,而不是由于API的技术水平,Glassfish工程是servlet 3.0 API实现的参考,而不是Tomcat。
Glassfish v3 的发布是即将到来的Java企业版6的全部组件的完整实现。 因此它远不只是一个最小化的web服务器。有趣的好东西包括Jersey RESTful web服务工具套件,Java Server Faces和很多其他新技术项目。 当写这篇文章的时候,Glassfish v3.0已经被作为“web预览”,每周发布一些粗略的项目构建。
总结
Servlet 3.0 是向前迈进的一大步,为web开发者带来目前Java语言最佳的性能和实践。这在不严重影响servlet 2.5 API开发者的前提下已经被实现。
翻译
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。