Webアプリケーションにおける相対パスのファイルを読み込み

2009/02/18 16:31Update
TAGS: Java | Web | 相対パス | getServletContext | getRealPath | WEB-INF | Properties | JSP | Servlet | Filter

Web開発において、JSPやServlet、Filter、普通のクラス、プロパティファイルなどそれぞれの相対パスの記述方法、相対パスファイルの読み込み方法についてサンプルから解説します。

■JSP
ファイルの記述形式:
1)相対パス形式:"/myfolder/myfile.txt"

例:
JSPの中に次のように記述できます。
application.getRealPath("/myfolder/myfile.txt");


■Servlet(javax.servlet.http.HttpServletから継承)
ファイルの記述形式:
1)相対パス形式:"/myfolder/myfile.txt"

例:
doPostやdoGetなどのメソッドの中に次のように記述できます。
String path1 = this.getServletContext().getRealPath("/myfolder/myfile.txt");
//...
String path2 = this.getServletContext().getRealPath("/WEB-INF/myfolder/myfile.txt");


■Filter(javax.servlet.Filterから継承)

ファイルの記述形式:
1)相対パス形式:"/myfolder/myfile.txt"

例:
基底クラスjavax.servlet.Filterのinitメソッドをオーバーライドし、パラメータFilterConfigをメンバー変数に設定します。
public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
}

...

String settingsPath = filterConfig.getServletContext().getRealPath("/myfolder/myfile.txt");


■普通のクラス(/WEB-INF/classesに配置)
ファイルの記述形式:
1)URL形式:"http://www.syboos.jp/"
2)絶対パス1:"c:\\My.xml"
3)相対パス1:"com/syboos/test/My.xml"
4)相対パス2:"/WEB-INF/some.xml"

例:
リソースからInputStreamの取得するための汎用的なサンプル


■プロパティファイル(*.properties)
ファイルの記述形式:
1)クラス形式:"com.test.Application"

例:
リソースファイルの国際化対応 - java.util.ResourceBundle

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

用户名 (required)

Email (will not be published) (required)

URL

Evaluation