- PR -

webappsのパスの取り方

1
投稿者投稿内容
イタチ
会議室デビュー日: 2002/11/21
投稿数: 12
投稿日時: 2002-11-21 13:21
環境は以下です。
Apacth1.3.26
Tomcat4.1.12
JDK1.4.1

Dir構成は
[webapps/appli]
 |
 *-[WEB-INF]
   |
   *---[classes]
   |  |
   |  [load]--InfoLoad.class
   |
   *---[jsp]
   |
   *---[conf]
   |   |
   |   *--info.properties
   |
   *---[lib]
   |
   *---web.xml

となっています。
DataLoad.classからinfo.propertiesのファイルを読み込みたいのですが
どのようにパス指定をしたら良いのでしょうか?

webappsの物理パス名は都度変更(WindowsやLinuxで動かします)され、
DataLoad.classの中に記述することが出来ません。

javax.servlet.http.HttpServletRequestのgetRequestURI()みたいに
簡単に、物理パス名に依存せずwebappsまでのパスを取ることは
可能でしょうか?またappli名は固定です。

よろしくお願いします。
yu
ベテラン
会議室デビュー日: 2002/09/29
投稿数: 58
お住まい・勤務地: 東京
投稿日時: 2002-11-21 13:37
ServletContext.getResourceAsStream(String) で収得できないでしょうか?
イタチ
会議室デビュー日: 2002/11/21
投稿数: 12
投稿日時: 2002-11-21 15:13
InfoLoad.classは引数無し(説明不足でした)で呼び出されるため、
ServletContext.getResourceAsStream(String)は使えないような気がします。
request等を渡すことも出来ません。

それともいきなり?ServletContextを取得する方法があるのでしょうか?

web.xmlにパスを設定するしか無いですかね?

よろしくお願いします。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-11-21 17:22
http://java-house.jp/ml/archive/j-h-b/050753.html

まさにこれ、では。

-----------
<%@page import="java.util.*,java.io.*"%>
<html><body><pre>
<%
InputStream in = this.getClass().getClassLoader().getResourceAsStream("testresource.properties");
Properties prop = new Properties();
prop.load(in);
Enumeration e = prop.propertyNames();
String key = null;
while (e.hasMoreElements()) {
key = (String) e.nextElement();
out.println(key + ":" + prop.getProperty(key));
}
%>
</pre></body></html>
-----------

で WEB-INF/classes/testresource.properties が取れましたから、あとは classpath を適当にいじって conf 以下を見に行くようにする、と。

[ メッセージ編集済み 編集者: しょむ 編集日時 2002-11-21 17:28 ]
イタチ
会議室デビュー日: 2002/11/21
投稿数: 12
投稿日時: 2002-11-21 20:15
ファイルが読めるようになりました。

ご教授ありがとうございました。



1

スキルアップ/キャリアアップ(JOB@IT)