`
windywindy
  • 浏览: 170628 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

servlet3.0的学习(五)

阅读更多
Web片段的可插性

  每当我们使用第三方框架如Struts、JSF或者Spring的时候,我们需要在web.xml中为相应的Servlet添加相应的条目,这使得web部署描述符变得繁琐并且难以维护。 Servlet 3.0中引入的可插性使得web应用程序更加模块化,也更加易于维护。由于可插性是通过web片段来实现的,所以它使得开发人员不必再在web.xml中建立太多的Servlet配置条目。

  Web片段是框架JAR的META-INF目录中的web.xml文件的一部分。web片段提供了web应用的逻辑划分,而不必编辑特定框架组件的web部署描述符。

  用于web片段的元素(标签)跟用于部署描述符的元素(标签)几乎完全一样,只是根元素(父标签)除外。Web片段的根元素应该为web-fragment,并且该文件应该名为web-fragment.xml。容器只会从WEB-INF\lib文件夹中的JAR文件中查找web-fragment.xml文件。 如果lib目录中的JAR文件含有任何web-fragment.xml文件,容器将加载所需的类,并进行处理。

  恰如Servlet名称应该在给定web.xml文件中保持唯一性一样,web片段也应如此。此外,Servlet名称必须在整个web应用中保持唯一,包括web.xml连同其他一切web片段。

  作为一个例子,以下web-fragment.xml将被放到框架的jars\META-INF目录中:
web-fragment.xml
<web-fragment>
<servlet>
<servlet-name>ControllerServlet</servlet-name>
<servlet-class>com.app.control.ControllerServlet</servlet-class>
</servlet>
<listener>
<listener-class>com.listener.AppServletContextListener</listener-class>
</listener>
</web-fragment>


  框架的JAR 文件被放置于WEB-INF\lib文件夹下面。Servlet 3.0规范没有定义web-fragment.xml和注释的配置顺序,不过它定义了web.xml和web-fragment.xml的配置次序, 绝对顺序, 相对顺序!
1.绝对顺序


图1为Servlet 3.0中的绝对顺序:您可以利用web.xml文件中的元素来实现绝对顺序

  您可以利用web.xml文件中的元素来实现绝对顺序,如图1所示。这个元素具有一个子元素,它可以用来规定web片段的名称,并且按照web片段的绝对顺序进行处理。如果多个web片段具有相同的名称,容器会忽略重复的web片段。
web.xml
<web-app>
<name>DemoApp</name>
<absolute-ordering>
<name>WebFragment1</name>
<name>WebFragment2</name>
</absolute-ordering>
...
</web-app>


1.相对顺序


图2为Servlet 3.0中的相对顺序:您可以利用web-fragment.xml文件中的元素来实现相对顺序

  您可以利用web-fragment.xml文件中的 元素来实现相对顺序,如图2所示。 只有当web.xml中没有元素时,容器才会查看此元素。web片段的顺序是由、和元素决定的。如果某web片段具有一个子元素的话,该文件就会被移动到已排序文档列表的开头部分。同样,如果某web片段具有一个子元素的话,该文档就会被移动到已排序文档列表的末尾部分

为了更好的理解相对顺序,可以考察一些例子。下面的示例假定三个JAR文件都具有一个web-fragment.xml文件。

web-fragment.xml
<web-fragment>
<name>WebFragment1</name>
<ordering><after>WebFragment2</after></ordering>
...
</web-fragment>

web-fragment.xml
<web-fragment>
<name>WebFragment2</name>
..
</web-fragment>

web-fragment.xml
<web-fragment>
<name>WebFragment3</name>
<ordering><before><others/></before></ordering>
..
</web-fragment>


文件将按以下顺序进行处理:

  1. WebFragment3

  2. WebFragment2

  3. WebFragment1

   持有WebFragment3的JAR文件将首先处理,这是因为元素的缘故。这个设置能够确保该文档位于列表最前面。接下来,将会处理带有WebFragment2的JAR文件,因为带有WebFragment1的JAR文件使用了元素,所以它会被压入被处理文档清单的底部。嵌套在和元素之内的元素确保相应的文档分别被推到列表的顶部和底部。

  如果web.xml遇到了和这两个元素,那么它会忽略元素;它只会考虑绝对顺序,因为那个元素会首先出现。同样,如果元素首先出现,然后才出现元素,那么容器就会忽略元素,因为它只考虑相对顺序。 如果部署描述符中没有(在web.xml中)和(在web-fragment.xml中),那么就被认为这些文档不依赖于任何顺序。
  • 大小: 11 KB
  • 大小: 15.9 KB
分享到:
评论
1 楼 man4j 2012-08-04  
最后一段
“如果web.xml遇到了和这两个元素,那么它会忽略元素;它只会考虑绝对顺序,因为那个元素会首先出现。同样,如果元素首先出现,然后才出现元素,那么容器就会忽略元素,因为它只考虑相对顺序。 如果部署描述符中没有(在web.xml中)和(在web-fragment.xml中),那么就被认为这些文档不依赖于任何顺序。 ”
说的不是很明白,可以修改一下么^_^

相关推荐

    Servlet3.0参考手册

    开发者可以通过这个文件快速查找和理解Servlet3.0中的类、接口、方法以及它们的使用示例,对于学习和使用Servlet3.0非常有帮助。 总的来说,Servlet3.0通过增强的注解配置、异步处理、过滤器改进、上下文参数和监听...

    servlet3.0的学习(二)

    至于提到的"ajax",这可能是与AJAX(Asynchronous JavaScript and XML)技术有关,虽然在Servlet 3.0学习中不是核心内容,但它是现代Web应用中常用的交互技术。Servlet可以处理AJAX请求,通过JSON或XML格式返回数据...

    servlet3.0.zip

    Servlet 3.0是Java Servlet规范的一个重要...总的来说,“servlet3.0.zip”包含的资源为开发者提供了使用Servlet 3.0规范进行Web开发的基础,通过学习和实践,开发者可以构建高效、灵活且易于维护的Java Web应用程序。

    Servlet 3.0jar包和source包

    Servlet 3.0是Java服务器端编程的重要组成部分,主要用于构建动态Web应用程序。它是由Java Community Process(JCP)制定的标准,定义了一套用于处理HTTP请求的API,使得开发者可以编写服务器端程序来处理来自Web...

    servlet3.0 jar包和doc

    这个压缩包包含了servlet3.0的jar包和对应的doc文档,非常适合开发者学习和使用。 首先,我们来看一下`javax.servlet.jar`文件,这是Servlet API的核心库,包含了Servlet和Filter等核心接口和类。在Servlet3.0中,...

    servlet3.0-demo

    在这个名为“servlet3.0-demo”的项目中,我们重点探讨的是如何利用Servlet 3.0的新特性进行文件上传操作,并且采用注解的方式来简化代码。 在Servlet 3.0之前,我们需要在web.xml中配置Servlet,然后通过继承...

    maven servlet 3.0 eclipse config video

    在视频教程中,你将学习到如何在Eclipse中创建Maven Web项目,配置Servlet 3.0的相关注解,以及如何运行和调试基于Servlet 3.0的应用程序。这将帮助你更高效地开发和管理Java Web项目。 通过学习这个视频教程,...

    Jsp/Servlet3.0 ppt和代码

    【标题】"Jsp/Servlet3.0 ppt和代码"涉及的是Java服务器页面(JSP)和Servlet 3.0版本的关键技术。JSP是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,从而实现服务器端的动态内容生成。而Servlet是...

    Servlet3.0特性详解

    Servlet3.0是Java EE平台中的一个重要组成部分,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。以下是对Servlet3.0主要...学习和掌握Servlet3.0的这些特性对于Java Web开发者来说至关重要。

    Servlet3.0 Demo

    通过这个Demo,开发者可以学习如何在实际项目中有效地利用Servlet3.0的新特性,提高代码的可读性和维护性。同时,参考的博客文章也可能提供了具体的实现细节和示例代码,对于深入理解Servlet3.0的功能非常有帮助。

    JSP项目集成jetty服务器+servlet 3.0 demo

    通过这个项目,开发者可以学习到如何在不依赖大型Web服务器的情况下,快速启动和运行一个JSP和Servlet应用。这不仅提高了开发效率,还使得项目更加便携,易于分享和调试。同时,对Servlet 3.0的理解,包括注解配置、...

    官方servlet3.0.rar

    Servlet 3.0是Java Web开发中的一个...通过深入学习和理解Servlet 3.0的这些特性,开发者可以构建更加高效、灵活且易于维护的Java Web应用程序。源码分析将帮助我们更好地理解底层工作原理,从而更好地利用这些特性。

    Servlet 3.0 API - Apache Tomcat 7.0.41

    通过深入学习Servlet 3.0 API,开发者可以充分利用这些特性,构建高性能、易于维护的Java Web应用程序。Apache Tomcat 7.0.41提供的这个API文档是一个很好的起点,可以帮助开发者理解Servlet 3.0规范的细节,并在...

    Servlet3.0微框架

    Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。这篇博客“Servlet3.0微框架”可能探讨了如何利用Servlet3.0的新功能来构建轻量级的Web应用...

    JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)

    在"JavaWeb-21 JDBC(泛型,注解,Servlet3.0,Log4j)"这个主题中,涵盖了四个关键知识点:JDBC(Java Database Connectivity)、泛型、注解以及Servlet 3.0。接下来,我们将逐一深入探讨这些内容。 首先,JDBC是...

    Servlet 3.0新特性——文件上传接口

    Servlet 3.0是Java EE 6规范的一...如果你想要深入了解Servlet 3.0的文件上传功能,可以通过阅读指定的博文链接(已提供但此处未显示)或者查阅相关的Java EE 6文档,进一步学习如何在实际项目中有效利用这些新特性。

    基于Servlet3.0+IBatis+BootStrip技术构建简单会议管理系统

    本系列讲座主要讲述如何利用Servlet3.0+mybatis+bootstrap+mysql构建企业级应用解决方案,主要分为三部分完成 第一部分:技能储备阶段,学习项目所需要的技能知识 第二部分:设计部分,通过需求分析,设计物理模型,...

    Servlet3.0学习总结之基于Servlet3.0的文件上传实例

    Servlet3.0文件上传实例学习总结 Servlet3.0提供了对文件上传的原生支持,开发者可以直接使用Servlet3.0提供的API实现文件上传功能,不需要借助任何第三方上传组件。在这里,我们将介绍使用Servlet3.0实现文件上传...

    Servlet3.0新特性解析01

    Servlet3.0是Java Servlet API的一个重大更新,它引入了许多新特性和改进,极大地提高了开发效率和灵活性。...通过学习和掌握Servlet3.0的新特性,开发者可以编写出更加高效、易于维护的Java Web应用。

    Maven+Servlet3.0显示系统时间源码+文档

    【Maven+Servlet3.0显示系统...通过这个项目,开发者可以学习Maven的项目管理,理解Servlet3.0的新特性,以及如何在实际开发中运用这些技术。同时,这也是一个很好的实践案例,帮助初学者掌握Java Web开发的基础知识。

Global site tag (gtag.js) - Google Analytics