javaweb项目中对于资源文件的读取

转载 2013年12月04日 14:00:14

分成普通java类和servlet类 两种情况考虑读取资源文件

要点说明

    1:在javaweb项目中所有src下的资源在部署后都会被弄到WEB-INF/classes/下

    2:this.getServletContext().getRealPath("/");来的得到当前web应用在硬盘上的绝对路径

    3:FileInputStream in = new FileInputStream("资源名");//如果这里用的是相对路径,那么这里是相对于服务器的虚拟机而言的。例如tomcat的/bin

    4:采用类加载方式的相对路径是classpath,可以使用../获取上一路径。

具体说明

   在servlet中

      1:当资源在src下时:

            InputStream in = this.getServletContext().getResourceAsStream(“/WEB-INF/classes/资源名”);

      2:当资源在项目根目录下的时候:InputStream in = this.getServletContext().getResourceAsStream(“/资源名”);
      3:在考虑1、2的前提下,可以通过:

            String path = this.getServletContext().getRealPath("/");//得到当前应用在服务器的绝对路径

             FileInputStream in = new FileInputStream(path+"/资源名");//此时读取的是资源的绝对路径

   在普通的java类中

       说明:其实我们可以通过传递ServletContext对象,然后读取资源如上,但是考虑到要降低对象之间的耦合性,所以不采取此种方法。

       解决方法(采用类加载器):

            1:类名.class.getClassLoader().getResourceAsStream("资源名");//放在src下,看要点说明第4点。此种方法存在一个缺点:在第二次调用方法读取资源之前若资源内容发生变化,第二次读取的内容仍然是第一次读取的内容,因为类加载器发现时同一个类,所以直接返回原来的资源。

            2:String path = 类名.class.getClassLoader().getResource("资源名").getPath();//通过URI形式

                   FileInputStream in = new FileInputStream(path); 


提示:在路径中获取资源名称:String name = path.substring(path.lastIndexOf("\\")+1);

参考建议:方立勋的javaweb视频

可以参考的相关链接:http://blog.csdn.net/origin100/article/details/5808234

关于项目中读取文件的探讨

知识点来自: 1.javase中的类加载路径 2.java.io中的基本api类 前言:         最近负责一个代码生成器的项目,还要做成一个eclipse插件的形式,后期还要做成可视化的方...
  • fengchao2016
  • fengchao2016
  • 2016年09月24日 16:28
  • 453

Javaweb项目中的路径问题

最近在完成一个作业的时候,需要读取一个在javaWeb的项目中的XML文件。老是弄不好,便去网上找了方法,有用!一开始也没深究,完成了作业后,有精力深究了一下。如今写出来,供大家参考。 我的项...
  • mice_male
  • mice_male
  • 2016年10月20日 09:55
  • 1376

文件(图片)资源上传到Javaweb项目中

上传的原理: ①获取本地的文件或图片资源(电脑中真实存在的资源) ②使用form表单将图片上传到servlet ③servlet复制到你设置的路径中(一般都复制到你的项目中) ④然后再把图片地址存储到...
  • babulongbo
  • babulongbo
  • 2017年05月29日 15:46
  • 1927

Java读取项目内的资源文件

Java读取项目的资源文件,首先要做的就是访问到这个文件
  • u010973529
  • u010973529
  • 2014年10月27日 15:28
  • 5453

由web项目中上传图片所引出的路径问题

由web项目中上传图片所引出的路径问题
  • github_36301064
  • github_36301064
  • 2016年11月22日 20:30
  • 1952

idea用tomcat发布javaWeb项目中的存在的图片存储路径问题解决

背景:公司最近跟潮流,在技术一块进行了大刀阔斧的改革,换了编辑器(idea),换了框架(Spring+SpringMVC+Hibernate),更新了底层,优化了代码,除了原有的后台框架基础(ZK),...
  • jacksonzhou88
  • jacksonzhou88
  • 2017年03月16日 23:54
  • 3439

VS资源文件和外部依赖项

本文解决的问题: 1、VS资源文件是什么 2、VS外部依赖项是什么 3、VS2012d的MSDN帮助文档的下载外部依赖项:里面显示的文件是你程序中显示包含的头文件所包含的的头文件。比如,你的ma...
  • jenny_84
  • jenny_84
  • 2015年03月26日 14:44
  • 4791

第一个java Web项目中遇到的问题(上)

前两天开始学习J2EE,没有JavaWeb的任何经验,就靠着之前学习的一点点java知识在那撑着,才照着书上码了一个小Demo,过程中却果然问题多多。。。值得庆幸的是靠着各种折腾,现在解决了部分,这些...
  • sinat_33587403
  • sinat_33587403
  • 2016年03月17日 21:42
  • 1757

在Android项目中替换资源图片不起作用的解决方法

现象 在android开发中,经常会需要替换res\drawable中的图片,打开res\layout下的文件预览布局页面发现图片已经被替换,但在模拟器或者真实机器上运行时发现该图片并没有被替换,还...
  • wudalang_gd
  • wudalang_gd
  • 2016年06月03日 22:35
  • 2038

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

转自:http://www.cnblogs.com/coolhwm/archive/2011/11/27/2265272.html 在有Struts部署的Java EE环境中,我们一般把js...
  • xyy511
  • xyy511
  • 2016年04月21日 15:33
  • 754
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:javaweb项目中对于资源文件的读取
举报原因:
原因补充:

(最多只允许输入30个字)