`
hngmduyi
  • 浏览: 335828 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

访问资源文件

阅读更多
//获得相对于web应用根目录的相对路径在文件系统中的真实路径假如javawebnew发布目录为:D:\javatool\apache-tomcat-6.0.18\webapps\javawebnew\ 。
ServletContext a=this.getServletContext();
 String path=a.getRealPath("/"); 返回  
D:\javatool\apache-tomcat-6.0.18\webapps\javawebnew\
getRealPath(“/WEB-INF/”)  返回 
D:\javatool\apache-tomcat-6.0.18\webapps\javawebnew\WEB-INF
需要注意的是传给getRealPath饭方法的参数必须以“/”开头。

Set getResourcePaths(String path) 
返回某个资源目录下直接子目录和文件列表。所有返回目录和文件路径都是相对于应用根目录而言,以‘/’为前缀。所有返回目录都以‘/’为后缀
例如,一个web应用包含如下路径:
/welcome.html
/catalog/index.html
/catalog/products.html
/catalog/offers/books.html
/catalog/offers/music.html
/customer/login.jsp
/WEB-INF/web.xml
/WEB-INF/classes/com.acme.OrderServlet.class
getResourcePaths(“/”) 返回的Set集合中包括哪些目录和文件路径呢?
{"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}

URL getResource(String path) throws MalformedURLException
参数是以‘/’为前缀的资源路径字符串,返回映射到该资源的URL对象。‘/’ 表示web应用根路径。

InputStream getResourceAsStream(String path) 
参数是以‘/’为前缀的资源路径字符串,返回连接到该资源的InputStream对象。(实际上打开了getResource(String path)返回的URL对象的输入流 )

编程经验:在web应用中,虽然我们可以用FileInputStream这样的标准I/O库来访问资源文件,但是有两个缺点:
一个web应用在服务器本地文件系统中的位置可能会发生变化,不同的公司或个人可能会把它安装在不同位置上。所以使用绝对路径来访问web应用中的某个文件是不灵活的。
在某个java类中使用的相对路径是相对于工作目录的。工作目录通常是执行java命令的目录,而不是当前正在执行的类的目录。这导致在java中很难直接使用相对路径。
解决方案:
我们可以通过ClassLoader和Class的getResource和getResourceAsStream方法以相对于类路径的相对路径来获取资源(以“/web-inf/classes/”作为当前路径)。但是它们不能在类路径之外的目录下查找资源。 (如:/web-inf/下就不可以)
InputStream is = ClassLoader.getResourceAsStream(“com/servlet/database.property");
在web应用中,ServletContext的getResource和getResourceAsStream方法是通过容器来获取资源的,我们可以获得应用中任何目录和文件。
InputStream is = getServletContext().getResourceAsStream("/ch1/image/AA.jpg");

分享到:
评论

相关推荐

    VB.NET调用资源文件图片

    这里声明了一个`ResourceManager`对象,它允许您根据资源名访问资源文件中的资源。参数`"EnglishAndChinese.MyResource"`是资源文件的全名,其中`EnglishAndChinese`是包含资源文件的命名空间,`MyResource`则是...

    WPF资源文件在DLL中的用法

    下面我们将详细介绍如何在DLL中使用WPF资源文件,以及两种不同的访问方式。 首先,我们需要理解WPF资源的概念。资源在WPF中是一种可重复使用的数据,可以是颜色、图像、字体、样式、模板等。它们可以存储在项目的...

    java解析资源文件

    1. **访问资源文件**: - **类路径加载**:Java提供`Class.getResource()`和`Class.getResourceAsStream()`方法来从类路径中获取资源。例如,如果你有一个名为`config.properties`的配置文件,你可以通过如下方式...

    C#Resource文件(资源档案)修改工具

    3. 引用:在代码中,可以通过`ResourceManager`类来访问资源文件中的数据,例如:`ResourceManager rm = Properties.Resources.ResourceManager; string text = rm.GetString("myKey");` 4. 多语言支持:为不同语言...

    Delphi中资源文件使用方法详细讲述

    资源文件的应用非常广泛,下面通过几个示例详细介绍如何在Delphi中访问资源文件中的不同类型的资源。 ##### 1. 存取资源文件中的位图 位图资源可以通过两种方式加载: - **使用标准资源类型**:例如,如果RC文件...

    Springboot访问Resource下的文件.pdf

    当公开访问资源文件时,务必注意安全性。确保只有授权的用户才能访问敏感资源,并避免路径遍历攻击。可以使用Spring Security或其他安全框架来控制访问权限。 总结,Spring Boot提供了一套简便的方式来访问和处理`...

    Struts_使用消息资源文件创建国际化Web应用

    除了在 JSP 页面中使用资源文件外,还可以在 Action 类中通过调用 `getResources()` 方法来获取 MessageResources 实例,从而访问资源文件中的信息: ```java protected MessageResources getResources...

    Qt中用c++读文件

    新手资源,用Qt中C++读取文件。此文件只适合新手阅读。

    资源文件的建立和释放

    在C++Builder中,资源文件的使用是一种常见的方式,它允许开发者将数据如图片、音频、文本等嵌入到程序中,以便在运行时能够直接访问。资源文件的建立和释放是程序设计的重要组成部分,这涉及到内存管理和程序的效率...

    在Qt资源文件中包含和释放exe等各种类型文件

    在Qt开发过程中,资源文件(Resource)系统是一个强大的特性,它允许我们将各种类型的文件,如图片、音频、配置文件甚至可执行文件(exe)嵌入到应用程序的二进制文件中,无需在运行时依赖外部文件。这不仅提高了...

    火山PC写出内置资源文件例子

    在火山PC中,内置资源文件允许开发者将这些文件打包进可执行程序中,以便在运行时直接访问,无需外部文件支持。 要添加内置资源文件,首先确保你已下载了最新版本的火山模块。模块通常包含了火山PC对各种资源类型的...

    C# 如何使用多个资源文件

    - 通过资源文件的强类型类(由编译器自动生成)访问资源,例如`Properties.Resources`。使用键来获取资源值,如: ```csharp string greeting = Properties.Resources.WelcomeMessage; ``` - 对于本地化资源,...

    c#资源文件使用方法

    这样做可以将任何文件嵌入到资源文件中,以便在程序运行时进行访问。 2. **资源文件的使用**: 要在程序中使用资源文件,首先需要通过`ResourceManager`类加载资源。一旦资源被加载,就可以根据资源类型进行操作。...

    通过C#资源处理实现文件打包

    3. **访问资源**:在代码中,可以使用`ResourceManager`类来访问和读取资源。例如,如果你有一个名为“image.jpg”的图片资源,可以这样获取它: ```csharp ResourceManager rm = Properties.Resources....

    c#使用资源文件实现多语言

    首先,`App_GlobalResources`是一个特殊目录,用于存放全局资源文件,这些文件可以被应用程序的任何部分访问。资源文件通常是`.resx`格式,它们存储键值对,键代表文本标识符,值则对应不同语言的文本。 要创建多...

    C#资源文件操作的总结

    另一种方法是通过`System.Resources.ResourceManager`类来访问资源。创建`ResourceManager`实例时,需要提供资源的命名空间(或类)和包含资源的程序集。然后,你可以使用`GetObject()`或`GetStream()`方法来获取...

    vb.net嵌入和调用资源文件示例.zip

    在VB.NET中,还可以使用`ResourceManager`类来动态地加载和访问资源,这在处理外部资源或需要更高级控制的情况下非常有用。例如,你可以这样获取多行字符串资源: ```vbnet Dim rm As New System.Resources....

    android下菜单、颜色等资源文件的定义及访问

    ### Android 下菜单、颜色等资源文件的定义及访问 #### 概述 在Android开发过程中,合理管理和使用各种资源文件能够极大地提升应用的性能与可维护性。Android系统支持多种类型的资源,包括但不限于图像(Drawable)...

    C#资源文件操作示例

    - 通过`Res.Res`命名空间访问资源。注意这里的`Res`是类库的名字,而不是资源文件的名字。 - `Res.Res.HongYe`返回一个`Icon`对象,用于设置窗体的图标。 - `Res.Res.girl`返回一个`Bitmap`对象,需要强制转换为`...

    java 读取资源文件

    在Java编程中,读取资源文件是常见的任务,特别是在配置应用程序、处理文本数据或加载本地化内容时。本文将深入探讨如何使用Java读取资源文件,特别是properties类型的文件。 资源文件通常存储在项目的类路径...

Global site tag (gtag.js) - Google Analytics