@Published public final class ResourceLocator extends java.lang.Object
リソースロケータとは、本フレームワークにおいて、何らかのリソースを指定する際に用いられる汎用的書式である。 以下のように定義される。 (スキーム名)://(ディレクトリパス)/(リソース名) リソースロケータの使用場面例 - HTTPレスポンスの内容を格納したリソースを指定するケース // 業務Actionから"jsp/success.jsp" に対してフォーワード new HttpResponse("200", "servlet://jsp/success.jsp"); 現時点でサポートされるスキームは以下の5つである。 1. 静的ファイル ファイルシステム上の静的ファイルの内容を出力する。 絶対パスもしくは相対パスで指定することが可能である。 (書式) file://(コンテンツファイルへのパス) (例) file://./webapps/style/common.css (相対パス) file:///www/docroot/style/common.css (絶対パス) 2. Javaコンテキストクラスローダ上のリソース コンテキストクラスローダ上のリソースの内容を出力する。 (書式) classpath://(Javaリソース名) (例) classpath://nablarch/sample/webapp/common.css 3. 内部フォーワード リクエストプロセッサに対して、指定したリクエストURIでの再処理を要求する。 HttpRequest・ExecutionContextはそのまま流用される。 (書式) forward://(フォーワード名) (例) forward://registerForm.html (現在のURIからの相対パス) forward:///app/user/registerForm.html (絶対パス) 4. サーブレットフォーワード サーブレットコンテナに対してフォーワードを行う。 この場合、レスポンスの出力処理自体がフォーワード先のサーブレットに委譲される。 (書式) servlet://(フォーワード名) (例) servlet://jsp/index.jsp (現在のページからの相対パス) servlet:///jsp/index.jsp (サーブレットコンテキストを起点とする相対パス) 5. リダイレクト この場合は、指定されたパスへのリダイレクションを指示するレスポンスを行う。 (書式) redirect://(リダイレクト先パス) http(s)://(リダイレクト先URL) (例) redirect://login (現在のページからの相対パス) redirect:///UserAction/login (サーブレットコンテキストを起点とする相対パス) http://www.example.com/login (外部サイトのURL) このクラスは不変クラスである。
修飾子とタイプ | フィールドと説明 |
---|---|
static java.lang.String |
ALLOWED_CHAR
コンテンツパス中のディレクトリ、リソース名として許容される文字列。
|
static java.lang.String |
SCHEMES
対応するスキーム名
|
static java.util.regex.Pattern |
SYNTAX
リソースパスの書式
|
修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
exists()
このリソースの実体が存在するかどうか判定する。
|
java.lang.String |
getDirectory()
リソースパスのディレクトリ部分に相当する文字列を返す。
|
java.lang.String |
getHostname()
ホスト名を返す。
|
java.io.InputStream |
getInputStream()
リソースの内容をストリームで読み出すための
InputStream を返す。 |
java.lang.String |
getPath()
パス文字列を返す。
|
java.io.Reader |
getReader()
リソースの内容を読み出すための
Reader を返す。 |
java.lang.String |
getRealPath()
リソースのファイルシステム上での絶対パスを返す。
|
java.lang.String |
getResourceName()
リソース名を返す。
|
java.lang.String |
getScheme()
このリソースパスのスキーム名を返す。
|
boolean |
isRedirect()
レスポンスがリダイレクトかどうか判定する。
|
boolean |
isRelative()
設定されたパスが相対パスかどうか。
|
static boolean |
isValidPath(java.lang.String path)
渡された文字列が有効なリソースパスの書式であれば
true を返す。 |
java.lang.String |
toString()
リソースパスの文字列表現そのものを返す。
|
static ResourceLocator |
valueOf(java.lang.String path)
リソースの文字列表現から
ResourceLocator オブジェクトを生成する。 |
public static final java.lang.String SCHEMES
public static final java.lang.String ALLOWED_CHAR
"/", "~" はNG。 2以上連続する"."もNG。
public static final java.util.regex.Pattern SYNTAX
public static ResourceLocator valueOf(java.lang.String path)
ResourceLocator
オブジェクトを生成する。
"file|classpath|forward|servlet|redirect"に含まれないスキームを指定した場合、スキームは常に「servlet」となる。path
- リソースの文字列表現HttpErrorResponse
- リソースパスが無効な書式である場合public static boolean isValidPath(java.lang.String path)
true
を返す。path
- リソースパス文字列true
public java.lang.String getScheme()
public java.lang.String getDirectory()
public boolean isRelative()
true
。
コンテキストクラスローダ上のリソースである場合、常にfalse
public java.lang.String getResourceName()
public java.lang.String getHostname()
public java.lang.String getPath()
public java.lang.String toString()
toString
クラス内 java.lang.Object
public java.lang.String getRealPath() throws java.lang.UnsupportedOperationException
null
を返すjava.lang.UnsupportedOperationException
- 静的ファイルでもクラスローダ上のリソースでもない場合public boolean exists()
true
。
内部フォーワード/サーブレットフォーワードの場合は常にtrue
。
リダイレクトである場合は常にfalse
public java.io.Reader getReader() throws java.io.FileNotFoundException
Reader
を返す。java.io.FileNotFoundException
- 静的ファイルでもクラスローダ上のリソースでもない場合か、
静的ファイルかクラスローダ上のリソースだが絶対パスを取得できなかった場合public java.io.InputStream getInputStream() throws java.io.FileNotFoundException
InputStream
を返す。java.io.FileNotFoundException
- 静的ファイルでもクラスローダ上のリソースでもない場合か、
静的ファイルかクラスローダ上のリソースだが絶対パスを取得できなかった場合public boolean isRedirect()
true