快速业务通道

Servlet 3.0新特性详解 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
.xml 中定义的内 容。JAR 包通常放在 WEB-INF/lib 目录下,除此之外,所有该模块使用的资源,包括 class 文件、配置 文件等,只需要能够被容器的类加载器链加载的路径上,比如 classes 目录等。

现在,为一个 Web 应用增加一个 Servlet 配置有如下三种方式 ( 过滤器、监听器与 Servlet 三者 的配置都是等价的,故在此以 Servlet 配置为例进行讲述,过滤器和监听器具有与之非常类似的特性 ) :

编写一个类继承自 HttpServlet,将该类放在 classes 目录下的对应包结构中,修改 web.xml,在其 中增加一个 Servlet 声明。这是最原始的方式;

编写一个类继承自 HttpServlet,并且在该类上使用 @WebServlet 注解将该类声明为 Servlet,将该 类放在 classes 目录下的对应包结构中,无需修改 web.xml 文件。

Servlet 3.0新特性详解(7)

时间:2011-09-14 IBM 张建平

编写一个类继承自 HttpServlet,将该类打成 JAR 包,并且在 JAR 包的 META-INF 目录下放置一个 web-fragment.xml 文件,该文件中声明了相应的 Servlet 配置。web-fragment.xml 文件示例如下:

<?xml version="1.0" encoding="UTF-8"?> <web-fragment    xmlns=http://java.sun.com/xml/ns/javaee    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd"    metadata-complete="true">    <servlet>      <servlet-name>fragment</servlet-name>      <servlet-class>footmark.servlet.FragmentServlet</servlet-class>    </servlet>    <servlet-mapping>      <servlet-name>fragment</servlet-name>      <url-pattern>/fragment</url-pattern>    </servlet-mapping> </web-fragment>

从上面的示例可以看出,web-fragment.xml 与 web.xml 除了在头部声明的 XSD 引用不同之外,其主 体配置与 web.xml 是完全一致的。

由于一个 Web 应用中可以出现多个 web-fragment.xml 声明文件,加上一个 web.xml 文件,加载顺 序问题便成了不得不面对的问题。Servlet 规范的专家组在设计的时候已经考虑到了这个问题,并定义了 加载顺序的规则。

web-fragment.xml 包含了两个可选的顶层标签,<name> 和 <ordering>,如果希望为当 前的文件指定明确的加载顺序,通常需要使用这两个标签,<name> 主要用于标识当前的文件,而 <ordering> 则用于指定先后顺序。一个简单的示例如下:

<web-fragment...>    <name>FragmentA</name>    <ordering>      <after>        <name>FragmentB</name>        <name>FragmentC</name>      </after>    <before>      <others/>    </before>    </ordering>    ... </web-fragment>

如上所示, <name> 标签的取值通常是被其它 web-fragment.xml 文件在定义先后顺序时引用 的,在当前文件中一般用不着,它起着标识当前文件的作用。

在 <ordering> 标签内部,我们可以定义当前 web-fragment.xml 文件与其他文件的相对位置 关系,这主要通过 <ordering> 的 <after> 和 <before> 子标签来实现的。在这两 个子标签内部可以通过 <name> 标签来指定相对应的文件。比如:

<after>    <

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号