新建一个web项目,在src下建一个db.properties文件,文件中有一些配置信息,如:

username=root
password=abc

创建一个servlet类ResourceDemo.java,在这个类中读取db.properties中的配置信息.整个ResourceDemo.java代码如下:

package com.bighuan.path;import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Properties;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*** 读取项目中的资源文件* @author bighuan**/
public class ResourceDemo extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {/*** .代表java命令运行目录,java命令在哪里呢?在tomcat服务器的bin目录下:tomcat/bin* 结论:在web项目中,.代表在tomcat/bin目录下开始,所以不能使用这种相对路径,在web项目中不能* 通过这种方式拿资源文件*//*File file=new File("./src/db.properties");InputStream is=new FileInputStream(file);*//*** 正确方法:* 使用web应用下加载资源文件的用法*///得到上下文ServletContext context = getServletContext();/*** 方式一:* context.getRealPath(String path):返回资源文件的绝对路径*斜杠(/)表示当前web应用发布到服务器中那个根目录,当前web应用名称是day11_cookie,所以斜杠(/)*表示tomcat/webapps/day11_cookie目录*//*String path = context.getRealPath("/WEB-INF/classes/db.properties");System.out.println("path:"+path);InputStream is=new FileInputStream(new File(path));*//*** 结果:* path:D:\develop\tomcat\apache-tomcat-7.0.40\webapps\day11_cookie\WEB-INF\classes\db.properties*//*** 方式二:* context.getResourceAsStream(String path):得到资源文件,返回输入流* 路径写法和方式一一样*/InputStream is = context.getResourceAsStream("/WEB-INF/classes/db.properties");Properties proper=new Properties();//读取资源文件proper.load(is);System.out.println("方式二读取资源文件");String username = proper.getProperty("username");String password=proper.getProperty("password");System.out.println("username="+username+",password="+password);System.out.println("读取数据成功");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request,response);}}

得到web应用中的资源文件就两种写法,前者返回一个String,代表自己所要访问资源的路径,后者就返回所要访问资源的InputStream.

context.getRealPath("路径")
context.getResourceAsStream("路径");

方式一时打印出来的结果:

path:D:\develop\tomcat\apache-tomcat-7.0.40\webapps\day11_cookie\WEB-INF\classes\db.properties
username=root,password=abc
读取数据成功

从结果也可以看出,"/"就代表了"D:\develop\tomcat\apache-tomcat-7.0.40\webapps\day11_cookie"路径,这和自己tomcat位置有关.

具体写法都在上面的servlet类中有注释了,各取所需吧!

我以后肯定会忘记,所以又记了一篇博客!那么,Good Luck!

JavaWeb之得到web应用中的资源文件相关推荐

  1. Java Web项目中遇到的文件上传与下载问题

    (转发自:https://www.cnblogs.com/xdp-gacl/p/4200090.html)   在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中 ...

  2. 从jar包中读取资源文件

    :[解惑]深入jar包:从jar包中读取资源文件 精华帖 (3) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (0) 作者 正文 Heart.X.Raid 等级: 性别: 文章: 72 ...

  3. 在WinRT中读取资源文件

    在.Net Framework程序中,我们经常以如下方式读取程序集中的资源文件: Assembly readAssembly = Assembly.GetExecutingAssembly();    ...

  4. html 页面视图中的资源文件(css/js/image)的路径问题。

    说到html 页面视图中的资源文件的路径引用问题,这个问题以前一直没去弄明白.今天,我将公司新开发的一个项目完全移植到我本地搭建的php 环境中来,遇到了这个问题,想了一下,然后也不是很困难的就把它给 ...

  5. [Java基础] 深入jar包:从jar包中读取资源文件

    转载: http://hxraid.iteye.com/blog/483115?page=3#comments 我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的 ...

  6. 2.QT中使用资源文件,程序打包

     1 程序中使用资源文件 A  一个QT空项目 B  右击项目,添加新文件 添加后的效果是 C  右击main.prc,选择"添加现有项",找到要使用的资源文件.最终的效果是: ...

  7. Android开发 ---如何操作资源目录中的资源文件2

    Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...

  8. 深入jar包:从jar包中读取资源文件

    我们常常在代码中读取一些资源文件(比如图片,音乐,文本等等).在单独运行的时候这些简单的处理当然不会有问题.但是,如果我们把代码打成一个jar包以后,即使将资源文件一并打包,这些东西也找不出来了.看看 ...

  9. java+读取source资源_如何从JavaJAR文件中读取资源文件?

    如何从JavaJAR文件中读取资源文件? 我试图从一个单独的JAR文件中访问一个XML文件,这个JAR是作为桌面应用程序运行的.我可以获得我需要的文件的URL,但是当我将它传递给FileReader( ...

  10. springboot jar包运行中获取资源文件

    1. 今天晚上写了一个程序,基于Spring boot的一个小网站,发现使用FileUtils.class.getResource(path)来获取jar包中的资源文件并不能成功,其路径很奇怪 fil ...

最新文章

  1. 【保姆级教程】个人深度学习工作站配置指南
  2. 初探团队基于session的探索性测试
  3. Linux下快速搭建ntp时间同步服务器
  4. 神经网络php代码,慢慢研究
  5. Noip2016换教室
  6. python临床数据_从临床试验中获取数据
  7. (教学思路 C#之类五)类的分类(静态类、实例类、嵌套类、结构、简单的抽象类、简单的密封类)...
  8. 【java】java基础之SPI框架实现-整体设计
  9. linux 查看端口
  10. 如何做出优质的Scratch作品
  11. vue中SEO(搜索引擎优化)
  12. 韩国职业选手风格分析
  13. 百度地图-创建标注 画线
  14. mount point / 挂载点
  15. 科研新手该如何找到合适的文献?| 开启科研之路(王威教授)
  16. python中非0即True,0即False
  17. ThingsBoard Mac Docker 安装详细步骤
  18. 生信分析R语言助力作图----单基因批量相关性分析
  19. javascript生成二维码
  20. 微信小程序云开发—01(云数据库、云函数的创建与基本使用)

热门文章

  1. warning: mysql-community-libs-5.7.11-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5
  2. mysql-日常命令使用汇总
  3. 2.Docker技术入门与实战 --- 核心概念与安装配置
  4. 8.软件架构设计:大型网站技术架构与业务架构融合之道 --- 高并发问题
  5. 12.Kong入门与实战 基于Nginx和OpenResty的云原生微服务网关 --- 高级案例实战
  6. 6.业务架构·应用架构·数据架构实战 --- 双轮驱动的技术架构设计
  7. 6.程序员的自我修养---可执行文件的装载与进程
  8. 3.以每行一个单词的形式打印其输入
  9. 60. Event onfocus 事件
  10. 51. Element replaceChild() 方法