《Java EE 7精粹》—— 2.8 资源打包

2.8 资源打包

可以使用ServletContext.getResource()方法和ServletContext.getResourceAsStream()方法来访问绑定在.war文件中的资源。资源路径被指定为以“/.”前导的字符串,该路径被解析为相对于上下文根目录或者相对于绑定在WEB-INF/lib目录中JAR文件的META-INF/resources目录:

myApplication.war
  WEB-INF
    lib
      library.jar```
library.jar具有以下结构:

library.jar
MyClass1.class
MyClass2.class
stylesheets

common.css 

images

header.png
footer.png```

通常情况下,如果必须在Servlet中访问样式表和图像的目录,需要手动把他们解压到Web应用程序的根目录。Servlet 3.0中允许库在META-INF/resources目录打包的资源:

library.jar
  MyClass1.class
  MyClass2.class
  META-INF
    resources
      stylesheets
        common.css
      images
        header.png
        footer.png```
在本例中,资源不需要被提取到应用程序的根目录,可以直接被访问。这将允许直接访问绑定在META-INF/resources目录下的第三方JAR文件中的资源,而无需直接手动解压缩。
时间: 2024-07-28 13:52:48

《Java EE 7精粹》—— 2.8 资源打包的相关文章

《Java EE 7精粹》—— 导读

前言 Java EE 7平台建立在以前的版本之上,侧重于提高生产力和拥抱HTML5.本书面向的是想快速概览这个平台和回来复习基础知识的读者. 本书提供了Java EE 7平台中关键规范的概述(每章一个规范).本书绝不是一本介绍不同规范中每一个概念的详尽指南或教程,而是通过简单的代码示例来解释不同规范的主要概念.阅读本书,无需具备Java EE平台早期版本的知识,但你需要对Java有一些基本了解,以便理解代码. 这本书的重要部分来自<Java EE 6 Pocket Guide>(O'Reill

《Java EE 7精粹》—— 1.2 可交付成果

1.2 可交付成果 Java EE 7平台是遵从JCP 2.9作为JSR 342而开发的.JCP过程对每一个JSR定义了以下三个主要可交付成果. 1.2.1 规范(Specification) 描述了被提议的组件及其功能的一份正式的文件. 1.2.2 参考实现(RI) 对被提议的规范的二进制实现.参考实现有助于确保被提议的规范能以一个二进制形式实现,并为规范过程提供不断的反馈. Java EE的参考实现建立在GlassFish社区中. 1.2.3 技术兼容包(TCK) 用于验证参考实现是否符合被

《Java EE 7精粹》—— 3.2 资源处理

3.2 资源处理 JSF定义了处理资源的标准方式,如图片.CSS或JavaScript文件.这些资源都需要通过组件来正确呈现. 这些资源可以被打包在Web应用程序的/resources目录中或classpath的/META-INF/resources目录中.资源也可以被本地化.版本化,以及整理到库中. 资源可以在EL表达式中被引用: 在这段代码中,header.jpg位于标准的资源目录中. 如果资源位于一个名为corp的库(打包资源的文件夹)中,那么就可以使用library属性访问: JavaS

《Java EE 7精粹》—— 3.5 Ajax

3.5 Ajax JSF原生支持添加Ajax功能到网页.JSF允许局部视图的处理,其中只有视图中的一些组件用于处理该响应.JSF可以摘选页面上的某些组件,渲染局部页面,而不是整个页面. 有以下两种方法可以启用这种支持. 以编程方式使用JavaScript资源. 以声明的方式使用f:ajax组件. 编程方式的Ajax集成是通过资源处理机制启用的.jsf.js是在javax.faces库中预定义的资源.该资源包含用于Ajax和JSF页面交互的JavaScript API.可以在页面中使用output

《Java EE 7精粹》—— 3.3 复合组件

3.3 复合组件 JSF使用Facelets的功能和资源的处理来定义复合组件,定义在Facelets标记文件中的一个或多个JSF组件组成了一个复合组件.这个.xhtml文件存储在资源库中,可以从页面的任意区域创建一个可重用的组件. 复合组件在定义页面中定义,在使用页面中使用.定义页面使用定义元数据(或参数),使用<cc:implementation>定义实现,其中cc是http://xmlns.jcp.org/jsf/composite/命名空间的前缀.JSF规范的未来版本可能会放宽对指定元数

《Java EE 7精粹》—— 3.10 Faces Flow

3.10 Faces Flow JSF2.2引入了Faces Flow.这个功能借用了ADF Task Flows.Spring Web Flow和Apache MyFaces CODI的核心概念,使其标准化为JSF2.2的一部分,为在应用程序中定义控制流程,提供一种模块化的方法. Faces Flow将相关网页和相应的后台Bean封装成一个模块.该模块具有定义良好的入口点和出口点,可以由应用程序开发人员来分配.通常在Faces Flow中的对象被设计为允许用户来完成的任务,该任务需要在若干不同

《Java EE 7精粹》—— 3.11 资源库契约

3.11 资源库契约 JSF2引入了Facelets作为默认的视图声明语言(VDL).Facelets允许使用XHTML和CSS创建模板,模板可以为应用程序的不同页面提供一致的界面外观.JSF2.2定义了资源库契约,一种与资源关联的模板库,可以以可重用和可互换的方式应用到整个应用程序.应用程序中可配置的视图集合将可以声明自己是资源库契约中任何模板的模板客户端. 资源库契约驻留在Web应用程序的根目录的契约目录中: 在这段代码中: 应用程序同样有两个页面:index.xhtml和new/index

《Java EE 7精粹》—— 2.6 Web Fragment

2.6 Web Fragment 包含在库或框架JAR包的META-INF目录中的一个web fragment片段是部分或全部在web.xml文件中.如果这个框架绑定在WEB-INF/lib目录中,容器会选择和配置框架,而无需开发人员显示地做到这一点. Web Fragment可以包括几乎所有web.xml中指定的元素.然而,其顶级元素必须是web-fragment,并且相应的文件必须命名为webfragment.xml.这将允许Web应用程序逻辑分区: 开发人员可以指定在web.xml和web

《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets

第3章 JSF JSF是基于Java的Web应用程序开发的服务器端用户界面(UI)框架.使用JSF可以实现: 使用遵循模型-视图-控制器(MVC)设计模式的可重用的UI组件集合来创建网页. 绑定组件到服务器端模型,允许UI与应用程序数据双向移动. 处理UI事件响应和模型交互中的页面导航. 管理跨服务器请求的UI组件状态. 提供从客户端生成的事件到服务器端应用程序代码的简单模型. 轻松地构建和重用自定义UI组件. JSF应用程序包括: 置于UI组件的布局中的一组网页. 一组托管的Bean,包括绑定