- 内容提要
- 作者简介
- 译者简介
- 前言
- HTTP
- Servlet 和 JSP
- 下载 Spring 或使用 STS 与 Maven/Gradle
- 手动下载 Spring
- 使用 STS 和 Maven/Gradle
- 下载 Spring 源码
- 本书内容简介
- 下载示例应用
- 第 1 章Spring 框架
- 第 2 章模型 2 和 MVC 模式
- 第 3 章Spring MVC 介绍
- 第 4 章基于注解的控制器
- 第 5 章数据绑定和表单标签库
- 第 6 章转换器和格式化
- 第 7 章验证器
- 第 8 章表达式语言
- 第 9 章JSTL
- 第 10 章国际化
- 第 11 章上传文件
- 第 12 章下载文件
- 第 13 章应用测试
- 附录 A Tomcat
- 附录 B Spring Tool Suite 和 Maven
- 附录 C Servlet
- 附录 D JavaServer Pages
- 附录 E 部署描述符
E.3 Web Fragment
Servlet 3 添加了 web fragment 特性,用来为已有的 Web 应用部署插件或框架。web fragment 被设计成部署描述符的补充,而无需编辑 web.xml 文件。一个 Web fragment 基本上包含了常用的 Web 对象,如 Servlet,过滤器和监听器,其他资源,如 JSP 页面和静态图像的包文件(jar 文件)。一个 web fragment 也可以有一个描述符,类似的部署描述符的 XML 文档。web fragment 描述符必须命名为 web-fragment.xml,并位于包的 META-INF 目录下。一个 web fragment 描述符可能包含可出现在部署描述符 web-app 元素下的任意元素,再加上一些 web fragment 的特定元素。一个应用程序可以有多个 web fragment。
清单 E.2 显示了 web fragment 描述符,以黑体形式突出显示与部署描述符之间的不同内容。在 web fragment 的根元素必须是 web-fragment 元素,其可以有 metadata-complete 属性。如果 metadata-complete 属性的值为 True,则包含在 web fragment 中所有的类注释将被跳过。
清单 E.2 web fragment.xml 文件的框架
< ?xml version="1.0" encoding="ISO-8859-1"?>
< web-fragment version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee → http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd" [metadata-complete="true|false"] > ... < /web-fragment>作为一个例子,在 fragmentdemo 应用程序中包含的 fragment.jar 文件是一个 web fragment。该 jar 文件已经导入到 WEB-INF/lib 目录下。本实例的重点不在于 fragmentdemo,而是 web fragment 项目。该项目包含一个 Servlet(fragment.servlet.FragmentServlet,见清单 E.3)和 webfragment.xml 文件(见清单 E.4)。
清单 E.3 FragmentServlet 类
package fragment.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FragmentServlet extends HttpServlet {
private static final long serialVersionUID = 940L;
public void doGet(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("A plug-in");
}
}清单 E.4 webfragment.xml 文件
< ?xml version="1.0" encoding="ISO-8859-1"?>
< web-fragment version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
→ http://xmlns.jcp.org/xml/ns/javaee/web-fragment_3_1.xsd">
< servlet>
< servlet-name>FragmentServlet< /servlet-name>
< servlet-class>fragment.servlet.FragmentServlet< /servletclass>
< /servlet>
< servlet-mapping>
< servlet-name>FragmentServlet< /servlet-name>
< url-pattern>/fragment< /url-pattern>
< /servlet-mapping>
< /web-fragment>FragmentServlet 是发送一个字符串到浏览器的一个简单的 Servlet。web-fragment.xml 文件注册并映射该 Servlet。fragment.jar 文件结构如图 E.1 所示。

图 E.1 fragment.jar 文件结构
使用如下 URL 调用测试该 Servlet。
http://localhost:8080/fragmentdemo/fragment可以看到 Fragment Servlet 的输出。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论