【精选译文】Java EE 6中最引人注目的改进要算Web层的展示了,正如前面提到的Java EE 6的一个重要目标(参考之前发布的Java EE 6平台的主要目标)就是提高可扩展性,在可扩展性方面两个关键改进分别是Web分片和可插拔性共享框架,这两个新特性是通过Java EE 6中的Servlet 3.0技术提供的。Servlet 3.0,JSR 315规范是Servlet技术的***版本,它提供了诸如支持异步处理和注解等增强。
成都创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目成都网站建设、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元大庆做网站,已为上家服务,为大庆各地企业和个人服务,联系电话:18982081108
编辑推荐:Java EE 6平台指南
Java EE 6中另一个重要的Web层技术是JSF 2.0,它是JSF技术的***版本,JSF 2.0通过Facelets简化了页面和组件的开发,并支持异步JavaScript和XML(通常叫做Ajax),以及注解。
Servlet 3.0中支持的Web分片
Web应用程序开发人员通常在他们的应用程序中使用第三方框架,如Apache Wicket或Spring MVC。为了使用这些框架,开发人员需要在Web应用程序中注册要使用的框架,一般都使用Web.xml文件来保存注册信息,这个文件还包括构成Web应用程序的Web组件部署描述符,这样使得Web.xml变得非常庞大,难以隔离和维护各种描述符。
Web分片是Servlet 3.0中引入的一个新技术,通过模块化部署描述符解决了这个问题,一个Web分片可以看作是Web.xml文件的一个逻辑段,可以存在多个Web分片,每个分片代表一个逻辑段,Web分片集可以组成一个完整的Web.xml文件,Web.xml文件这种逻辑分区让Web框架自己可以在Web容器中完成注册。你在Web应用程序中使用的每个Web框架可以在一个Web分片中定义所有它需要的工具,如Servlet和监听器,不再需要在Web.xml文件中添加信息。
下面是一个注册Servlet和监听器的Web分片示例:
myFrameworkServlet myFramework.myFrameworkServlet myFramework.myFrameworkListener
一个
在Web.xml中使用
因为Servlet 3.0技术支持Web分片,你可以将Web.xml文件模块化,你的Web应用程序仍然有传统的,庞大的Web.xml文件,但它是一个包含一到多个Web分片的逻辑分区Web.xml文件。
#t#因为Servlet 3.0让你可以模块化你的部署描述符,这些描述符的处理顺序非常重要,因为它们的顺序影响着调用Servlet,监听器和过滤器的顺序,不过不要担心,因为在Servlet 3.0中你可以指定这些描述符的顺序。
Servlet 3.0支持对部署描述符的绝对排序和相对排序,在Web.xml文件中使用
例如,假设你的Web应用程序包括两个Web分片:MyFragment2 和 MyFragment3,也包括一个Web.xml文件,可以象下面这样声明描述符使用绝对排序:
MyApp MyFragment3 MyFragment2 - ...
通过上面的代码,我们可以看出处理顺序如下:
◆web.xml - web.xml描述符总是***个处理。
◆MyFragment3
◆MyFragment2
可插拔式共享框架
Web分片和注解不是Servlet 3.0允许你扩展web应用程序的唯一方法,你也可以插入构建在Web容器之上的框架共享副本,如基于XML Web服务的Java API(JAX-WS),JAX-RS 和 JSF,Servlet 3.0引入了一个新接口ServletContainerInitializer,它可以用来插入一个框架。
下面是一个插入框架A的例子:
- @HandlesTypes(AnnotationA.class)
- AServletContainerInitializer implements ServletContainerInitializer
- {
- public void onStartup(Set
>c, ServletContext ctx) throws ServletException { - // Framework-specific code here to initialize the runtime
- // and setup the mapping etc.
- ServletRegistration reg = ctx.addServlet("AServlet", "com.foo.AServlet");
- reg.addServletMapping("/foo");
当容器或应用程序启动时,容器使用JAR服务API发现ServletContainerInitializer。@HandlesTypes注解指定ServletContainerInitializer可以处理的类型,在WEB-INF/lib目录下任何JAR中发现的类都传递给ServletContainerInitializer,ServletContainerInitializer就可以和ServletContextListeners使用相同的编程配置API。
原文:Introducing the Java EE 6 Platform 作者:Ed Ort
文章题目:Java EE 6增强的可扩展性:Web分片和可插拔框架
网页链接:http://www.shufengxianlan.com/qtweb/news44/521044.html
成都网站建设公司_创新互联,为您提供品牌网站设计、域名注册、建站公司、外贸建站、用户体验、网站设计公司
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联