打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

分成普通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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ServletConfig与ServletContext对象详解
getClass().getResourceAsStream()
读取配置文件的问题
Java Properties 类读取和修改配置文件信息(转)
javaWeb开发中读取资源文件方法总结
java获取WEB
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服