zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0

          如果我們在Web應(yīng)用中想取得*.properties文件中定義的屬性,那么我們可以使用下面的方法:

          ?

          ?

          ????????????? ClassLoader loader=Thread.currentThread().getContextClassLoader();

          ????????????? System.out.println("loader? ---------? "+loader);??

          ?????????????

          // 這一部分是最重要的

          ?????? ????? URL? url=loader.getResource("com\\yourcompany\\struts\\ApplicationResources.properties");

          ????????????? System.out.println("url?? ---------------? "+url);

          ?

          ????????????? try {

          ???????????????? InputStream in=url.openStream();

          ???????????????? Properties p=new Properties();

          ???????????????? p.load(in);

          ???????????????? String h=p.getProperty("JAVA_HOME");

          ???????????????? System.out.println("JAVA_HOME?? :? --? "+h);

          ????????????? } catch (IOException e) {

          ???????????????????? // TODO Auto-generated catch block

          ???????????????????? e.printStackTrace();

          ????????????? }

          備注:

          ?????? 這種解決辦法可以在 Web 應(yīng)用程序中調(diào)用我們封裝好的方法,但是如果我們通過以下辦法就不能。

          ????? ?????????? BufferedInputStream in1 = (BufferedInputStream) PropertiesReader.class?????????????? ????? .getClassLoader().getResourceAsStream(propPath);

          ?????? 這種方法只能用于和當(dāng)前的 ClassLoader 是在同一個(gè) ClassLoader 的情況,不能應(yīng)用于 Web 應(yīng)用程序,因?yàn)樵?/span> Web 應(yīng)用程序中,我們用到了多個(gè) ClassLoader

          ?????? Web 應(yīng)用中的 ClassLoader 如下:

          loader? ---------? WebappClassLoader

          ? delegate: false

          ? repositories:

          ??? /WEB-INF/classes/

          ----------> Parent Classloader:

          StandardClassLoader

          ? delegate: true

          ? repositories:

          ??? file:D:\jakarta-tomcat-5.0.28\shared\classes\

          ----------> Parent Classloader:

          StandardClassLoader

          ? delegate: true

          ? repositories:

          ??? file:D:\jakarta-tomcat-5.0.28\common\classes\

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\ant-launcher.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\ant.jar

          ? ?? file:D:\jakarta-tomcat-5.0.28\common\lib\commons-collections-3.1.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\commons-dbcp-1.2.1.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\commons-el.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\commons-pool-1.2.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\jasper-compiler.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\jasper-runtime.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\jsp-api.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\mysql-connector-java-3.1.10-bin.jar

          ?

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\naming-common.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\naming-factory.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\naming-java.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\naming-resources.jar

          ??? file:D:\jakarta-tomcat-5.0.28\common\lib\servlet-api.jar

          ----------> Parent Classloader:

          sun.misc.Launcher$AppClassLoader@15601ea

          綠色字體的部分,我們可以看到,有兩個(gè) ClassLoader:WebappClassLoader StandClassLoader.

          當(dāng)我們調(diào)用

          loader.getResource("com\\yourcompany\\struts\\ApplicationResources.properties");

          的時(shí)候,由 WebappClassLoader 來取得了資源的位置:

          url ---------------? file:/D:/jakarta-tomcat-5.0.28/webapps/StrutsDemo/WEB-INF

          /classes/com/yourcompany/struts/ApplicationResources.properties

          ??
          ???(以上是我的個(gè)人理解,如有不當(dāng),請批評指正)



          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2006-10-23 15:08 zhyiwww 閱讀(4104) 評論(2)  編輯  收藏

          FeedBack:
          # re: 在Web應(yīng)用中如何取得.Properties文件定義的屬性
          2006-10-24 15:41 | itVincent
          關(guān)于你的問題,寫了一下我的一些個(gè)人見解http://www.aygfsteel.com/itvincent/archive/2006/10/24/76990.html  回復(fù)  更多評論
            
          # re: 在Web應(yīng)用中如何取得.Properties文件定義的屬性
          2006-10-24 21:05 | zhyiwww
          我又作了一點(diǎn)測試,寫了一點(diǎn)總結(jié).詳細(xì)見
          http://www.aygfsteel.com/zhyiwww/archive/2006/10/24/77070.html  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 襄汾县| 邵东县| 澎湖县| 红桥区| 正定县| 鄢陵县| 达孜县| 壶关县| 南通市| 西乌珠穆沁旗| 延边| 东乡族自治县| 香河县| 洪洞县| 高雄市| 馆陶县| 营山县| 许昌县| 恭城| 湘潭市| 沧州市| 会理县| 连江县| 油尖旺区| 沾益县| 依安县| 平果县| 盘山县| 辉县市| 盈江县| 元朗区| 依安县| 灌南县| 监利县| 望谟县| 达日县| 金沙县| 改则县| 衡南县| 夏津县| 大丰市|