`

jsp中获取路劲

    博客分类:
  • jsp
阅读更多
很多情况下,我们需要在JavaBean、Servlet中获得当前的目录路径,比如载入配置文件,上传文件到服务器等。

1.载入jdbc.properties

      1)ClassLoader的getResourceAsStream("XXX")

            InputStream in=XXX.class.getClassLoader().getResourceAsStream("jdbc.properties");

            getResourceAsStream()会到classes目录下找jdbc.properties文件,所以在工程项目中,我们一般把它放在src目录下。

      2)Class.getResourceAsStream("/XXX")

           XXX.class.getResourceAsStream("/jdbc.properties");

      两种方式的共同点就是:jdbc.properties都应该在classes下,也就是项目的src目录

      不同点就是:ClassLoader.getResourceAsStream(“XXX”)中参数不以"/"开头,而Class.getResourceAsStream("/XXX") 终参数以"/"开头

2.在Javabean中获得路径
  1)获得当前类XXX.class文件的URI目录,不包括自己:XXX.class.getResource("")
    如:在类com.test.XXX中取得项目的根绝对路径
    URL url=XXX.class.getResource("");
  String filename=url.getFile();
  String projectRootPath=new File(filename,"../../../../").getCanonicalPath();
   //main函数中测试
   //filename:/d:/workspace/testproject/build/calsses/com/test/
   //projectRootPath:d:/workspace/testproject
   //tomcat中测试
   //filename:/d:/tomcat/webapps/testproject/WEB-INF/calsses/com/test/
   //projectRootPath:d:/tomcat/webapps/testproject
2)获得的是当前的classpath的绝对URI路径:XXX.class.getResource("/")
   如:在类com.test.XXX中取得项目的根绝对路径
    URL url=XXX.class.getResource("/");
  String filename=url.getFile();
  String projectRootPath=new File(filename,"../../").getCanonicalPath();
   //main函数中测试
   //filename:/d:/workspace/testproject/build/calsses/
   //projectRootPath:d:/workspace/testproject
   //tomcat中测试
   //filename:/d:/tomcat/webapps/testproject/WEB-INF/calsses/
   //projectRootPath:d:/tomcat/webapps/testproject
  3)获得的是当前ClassPath的绝对URI路径:   //推荐使用
    Thread.currentThread().getContextClassLoader().getResource("");
  4)获得的是当前ClassPath的绝对URI路径:
    XXX.class.getClassLoader().getResource("");
  5)获得的是当前ClassPath的绝对URI路径:   //推荐使用
    ClassLoader.getSystemResource("");
  6)当前用户目录的相对路径:System.getProperty("user.dir")   //不推荐使用
3.在servlet中获得路径
  1)获得相对路径:
   this.getServletContext().getResource("/").getPath();
   //输出:/localhost/testproject/
2)String strPath2=this.getServletContext().getRealPath("/");
  //输出:d:/tomcat/webapps/testproject/
4.在开发过程中,我们经常会遇到读取配置文件的情况,对于配置文件的读取,根据环境等情况又各有不同,一般情况下,如果从非jar包中使用相对/路径,比较简单,就不在累述了,而在很多
情况下,我们需要把我们的class打包成jar文件,进行使用,这时就会发现,我们先前如果没有考虑到这些,可能就行不通了,那么,该如何解决呢?方法如下

有如下路径 :
Web-info--|-->classes--->conf-->config.properties
   |-->lib
此时加入我们需要读取config.properties,在不使用jar包时,使用如下方式读取,不失为一种方法:
File f = new File(this.getClass().getResource("/").getPath());
f = new File(f.getPath() + "/conf/config.properties");
注:f.getPath()即为当class所在的绝对路径。如:c:\javasrc\web-inf\classes
然后,对文件对象进行处理,就能把配置信息读取出来了,但是加入如上class被打包成jar文件,那么,在程序执行到这里时,就会无法找到配置文件,那么该如何处理呢?
处理方法如下:
String s_config="conf/config.properties";
InputStream in = ClassLoader.getSystemResourceAsStream(s_config);
if( in == null ){
System.out.println( " 打开 " + s_config + "失败!" );
}else
{
Properties properties = new Properties();
properties.load(in);
//
//接下来就可以通过properties.getProperty(String obj)方法对进行配置信息读取了
}



分享到:
评论

相关推荐

    路劲

    路劲

    Android打开手机相册获取图片路径

    Android 开发中,获取手机相册中的图片路径是一个常见的问题,以下将详细介绍如何在 Android 中打开手机相册获取图片路径。 一、权限申请 在 Android 中,访问外部存储需要申请权限,包括读取和写入外部存储的权限...

    用于求最优路劲的蚂蚁或蚁群算法

    蚁群算法(Ant Colony Algorithm) 蚁群算法是一种 metaheuristics 算法,仿真蚂蚁觅食的过程,以解决组合优化问题。...其广泛的应用领域和灵活的算法结构,使其在计算机科学和操作研究领域中扮演着越来越重要的角色。

    java文件路径获取

    本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...

    Unity应用获取外置SD卡路径方法

    本篇文章将详细介绍如何在Unity应用中获取外置SD卡的路径,并结合PicoVR SDK,实现适用于VR场景的打包和安装。 首先,我们要明确在Android平台上,外部存储通常指的是SD卡或者是设备提供的可移除存储空间。在...

    获取网页上 xpath , css 路径的插件, 方便爬虫、自动化测试相关软件工作者快速获取页面上html元素路径

    在IT行业中,尤其是在网页爬虫和自动化测试领域,获取网页上的XPath和CSS选择器路径是一项基本且重要的技能。XPath和CSS选择器是两种常见的定位HTML元素的方法,它们被广泛用于网页抓取、网页自动化和测试工具中。这...

    上海路劲佘山院子住宅建筑研发方案

    内容简介:上海路劲佘山院子住宅建筑研发方案( PDF+171页)。图纸包含:项目概况、示范区范围、建筑部分、室内部分、景观设计、设计理念、解决策略、项目区位、方案思路、案例研究、设计寓意、形体生成、概念剖面、...

    根据指定文件或者文件夹路劲压缩文件

    传入指定文件或者文件夹路劲数组进行压缩,支持混合的文件夹或者文件。速度快,不需要额外引入包

    zui-duan.rar_最小路_权值路劲

    标题中的"zui-duan.rar_最小路_权值路劲"直指这一核心概念。最小路径问题通常出现在路由选择、物流规划、电路设计等场景中,目标是找到从一个指定起点到其他节点之间具有最小总权重的路径。 在这个问题中,“权值”...

    GA_PSO-master.zip_PSO解决_ga_pso_hybrid pso_路劲规划_路劲规划 算法

    pso和ga混合算法用来解决路劲规划问题

    文件路径选择

    例如,Python的os模块提供了os.path.abspath()来获取绝对路径,os.path.dirname()获取路径中的目录部分,os.path.basename()获取文件名。理解并熟练使用这些函数是高效编程的基础。 5. 路径遍历:在处理大量文件时...

    stata 1.2 stata文件路劲02.mp4

    stata 1.2 stata文件路劲02.mp4

    检测URL地址路劲是否有效

    检测一个url路劲是否有效,数据库中保存的url有的是错误的,有的可能过一段就ping不通,所以适时检测URL很有必要

    常州路劲城促销策略分析毕业论文.doc

    【引言】 随着我国经济的快速发展,房地产市场已经成为中国经济的重要组成部分。...通过创新促销手段、精准定位、加强线上营销以及提升服务质量,路劲城有望在激烈的市场竞争中找到新的发展方向,实现业绩的持续增长。

    通和路劲商鼎路项目提案.pptx

    通和路劲商鼎路项目提案.pptx

    java 获取项目文件路径实现方法

    在Java编程中,获取项目文件路径是常见的需求,特别是在处理资源文件、配置文件或进行文件操作时。这里我们将深入探讨几种不同的方法来实现这一目标,同时解析每种方法的适用场景和返回路径的特点。 1. `this....

    路劲动画教案

    本文主要介绍的是如何在Flash中创建沿路径运动的动画,即“路劲动画”。这是一种在动画制作中常见的技术,允许对象按照预先绘制的路径进行动态移动,为动画增加更多的生动性和创意。 1. **引导层的概念**: - 引导...

    js获取富文本中的第一张图片(正则表达式)

    在前端开发过程中,处理富文本内容并提取其中的信息是一个常见的需求,尤其是获取富文本中的第一张图片URL,这对于生成文章预览图或缩略图等场景非常有用。本文将介绍如何使用JavaScript和正则表达式来获取富文本中...

    分支限界求最短路劲

    在计算机科学领域,寻找最短路径问题是一种常见的优化问题,特别是在网络分析、图论和算法设计中占有重要地位。本文将深入探讨如何利用分支限界法(Branch and Bound)来解决这一问题,以及如何用纯C语言实现这一...

    搜索路劲的A 星算法

    - 获取当前开放列表中的最佳节点,并将其移出开放列表,加入闭合列表。 - 判断该节点是否为目标节点,如果是,则记录搜索成功;如果不是,则继续搜索。 ### A星算法的启发式函数 文件中提到的`GoalDistanceEstimate...

Global site tag (gtag.js) - Google Analytics