|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ServletContext
Servlet が Servlet コンテナと通信する際に使用するメソッドをいくつか定義しています。 例えば、ファイルの MIME タイプを取得する、リクエストをディスパッチする、ログファイルに出力するといったメソッドです。
Java VM 上に "Web アプリケーション" が存在しますが、コンテキストは各 Web アプリケーションに一つずつ存在します。
("Web アプリケーション" というのは例えば /catalog
のようなサーバの URL 名前空間のサブセットで指定できるパスに置かれた複数の Servlet やコンテンツで構成されています。 Web アプリケーションは拡張子が .war
となっているファイルでインストールすることも可能です。)
配備記述子で "distributed" と指定された Web アプリケーションの場合はそれぞれの仮想マシンにコンテキストが一つだけあります。 このケースではコンテキストをコンテナ全般に渡る情報を共有する場所として使用できません (これは情報が実際には全体的ではないためです) 。 代わりにデータベースのような外部リソースを使ってください。
ServletContext
オブジェクトは Web サーバが Servlet を初期化したときに Servlet に提供する ServletConfig
オブジェクトに含まれています。
Servlet.getServletConfig()
,
ServletConfig.getServletContext()
メソッドの概要 | |
---|---|
java.lang.Object |
getAttribute(java.lang.String name)
指定された名前に対応する Servlet コンテナの属性を返します。 |
java.util.Enumeration |
getAttributeNames()
Servlet コンテキスト内の利用可能な属性名を含む Enumeration オブジェクトを返します。 |
ServletContext |
getContext(java.lang.String uripath)
指定された URL に対応する ServletContext オブジェクトを返します。 |
java.lang.String |
getInitParameter(java.lang.String name)
指定された名前の初期化パラメータの値を含む 文字列 を返します。 |
java.util.Enumeration |
getInitParameterNames()
そのコンテキストの初期化パラメータの名前を String 列挙である Enumeration で返します。 |
int |
getMajorVersion()
この Servlet コンテナがサポートしている Java Servlet API のメジャーバージョンを返します。 |
java.lang.String |
getMimeType(java.lang.String file)
指定されたファイルの MIME タイプを返します。 |
int |
getMinorVersion()
この Servlet コンテナがサポートしている Java Servlet API のマイナーバージョンを返します。 |
RequestDispatcher |
getNamedDispatcher(java.lang.String name)
指定された Servlet のラッパーとして動作する RequestDispatcher オブジェクトを返します。 |
java.lang.String |
getRealPath(java.lang.String path)
与えられた仮想パスに対応する実際のパスを String オブジェクトで返します。 |
RequestDispatcher |
getRequestDispatcher(java.lang.String path)
指定されたパスに位置するリソースのラッパーとして動作する RequestDispatcher オブジェクトを返します。 |
java.net.URL |
getResource(java.lang.String path)
指定されたパスでマッピングされているリソースの URL を返します。 |
java.io.InputStream |
getResourceAsStream(java.lang.String path)
指定されたパスに相当するリソースを InputStream オブジェクトで返します。 |
java.util.Set |
getResourcePaths(java.lang.String path)
引数で指定されたパスに一致するものが Web アプリケーション内にあると、そのサブパス以下にある全てのリソースのパス名をディレクトリに似た形式のリストにして返します。 |
java.lang.String |
getServerInfo()
Servlet が動作している Servlet コンテナの名前やバージョンを返します。 |
Servlet |
getServlet(java.lang.String name)
推奨されていません。 Java Servlet API 2.1 以降。直接的な代替手段はありません。 このメソッドは以前 このメソッドを使わなくても Servlet は |
java.lang.String |
getServletContextName()
この Web アプリケーションの名前を返します。 |
java.util.Enumeration |
getServletNames()
推奨されていません。 Java Servlet API 2.1 以降。直接的な代替手段はありません。 このメソッドは以前、このコンテキストに存在することがわかっている Servlet の名前を全て取得して |
java.util.Enumeration |
getServlets()
推奨されていません。 Java Servlet API 2.1 以降。直接的な代替手段はありません。 このメソッドは以前、この Servlet コンテキストに存在することがわかっている全ての Servlet を取得して |
void |
log(java.lang.Exception exception,
java.lang.String msg)
推奨されていません。 Java Servlet API 2.1 以降。代わりに log(String message, Throwable throwable) を使ってください。
このメソッドは以前、例外のスタックトレースとその説明となるエラーメッセージを Servlet のログファイルに出力するために定義されていました。 |
void |
log(java.lang.String msg)
Servlet ログファイルに指定されたメッセージを出力します。 |
void |
log(java.lang.String message,
java.lang.Throwable throwable)
与えられた Throwable 例外の説明となるメッセージとスタックトレースを Servlet のログファイルに出力します。 |
void |
removeAttribute(java.lang.String name)
Servlet コンテキストから指定された名前の属性を削除します。 |
void |
setAttribute(java.lang.String name,
java.lang.Object object)
この Servlet コンテキスト内で指定された属性名にオブジェクトを結び付けます。 |
メソッドの詳細 |
---|
ServletContext getContext(java.lang.String uripath)
ServletContext
オブジェクトを返します。
このメソッドを使うとコンテキストにアクセスできるようになります。
コンテキストにはサーバのさまざまな資源がありますが、RequestDispatcher
オブジェクトを取得するのにもコンテキストが必要です。
"/" で始まるパスはサーバのドキュメントルートに対する相対的なパスと解釈されますが、同一のコンテナで提供されている他の Web アプリケーションのコンテキストルートと一致します。
セキュリティが重視される環境では URL が指定されても Servlet コンテナは null
を返すことがあります。
uripath
- 同一コンテナ上の他のWeb アプリケーションのコンテキストパスを指定する String
ServletContext
オブジェクト。ただし、存在しない場合や、そのようなアクセスを制限しようとしているコンテナでは nullRequestDispatcher
int getMajorVersion()
int getMinorVersion()
java.lang.String getMimeType(java.lang.String file)
null
を返します。
MIME タイプは Servlet コンテナのコンフィギュレーションから判断されますが、Web アプリケーションの配備記述子で指定されることもあります。
よく使われる MIME タイプには "text/html"
や "image/gif"
があります。
file
- ファイル名を指定する String
String
java.util.Set getResourcePaths(java.lang.String path)
path
- 一致するリソースを探すのに使われるパスの一部。
"/" で始めなければなりません。
Set
。
指定されたパスに相当するリソースがその Web アプリケーションに無い場合は null
java.net.URL getResource(java.lang.String path) throws java.net.MalformedURLException
このメソッドを使うと、Servlet コンテナはどのような資源でも Servlet からリソースとして利用できるようにします。
リソースはローカルリモート双方のファイルシステム上、データベース内、.war
ファイル内に存在していても利用できます。
Servlet コンテナはリソースにアクセスする際に必要になる URL ハンドラと java.net.URLConnection
オブジェクトを実装しなければなりません。
指定されたパス名にマッピングされているリソースが無い場合は null
を返します。
コンテナによってはこのメソッドが返す URL に java.net.URL クラスのメソッドを使って出力できるようになっている場合があります。
リソースの内容が直接返されるので、.jsp
ページをリクエストすると JSP のソースコードが返されるので注意が必要です。
実行結果をインクルードする場合はこのメソッドではなく RequestDispatcher
を使ってください。
このメソッドにはクラスローダに基づくリソース探索を行う java.lang.Class#getResource()
メソッドとは違う目的があります。
path
- リソースへのパスを指定する String
null
java.net.MalformedURLException
- パス名が正しい形式で与えられなかった場合java.io.InputStream getResourceAsStream(java.lang.String path)
InputStream
オブジェクトで返します。
InputStream
オブジェクトには、さまざまなタイプや長さのデータが含まれるます。
指定するパスは getResource
で説明した規則にしたがっていなければなりません。
指定されたパスにリソースが無い場合、null
を返します。
getResource
メソッドでは、Content-Length や Content-Type のようなメタ情報を取得できますが、このメソッドを使うと取得できなくなります。
Servlet コンテナはリソースアクセス時に必要になる URL ハンドラと java.net.URLConnection
オブジェクトを実装しなければなりません。
このメソッドはクラスローダを使う java.lang.Class#getResourceAsStream()
メソッドと違います。
このメソッドは Servlet コンテナがクラスローダを使わずに、どのような場所からでも Servlet がリソースを利用できるようにするものです。
path
- リソースへのパスを指定する String
オブジェクト
InputStream
オブジェクト。指定されたパスにリソースが存在しない場合は null
RequestDispatcher getRequestDispatcher(java.lang.String path)
RequestDispatcher
オブジェクトを返します。
RequestDispatcher
オブジェクトはリソースにリクエストをフォワードするか、レスポンスのなかのリソースをインクルードする目的で使用します。
リソースは動的、静的どちらにも適用できます。
パス名は "/" で始まらなくてはいけません。
このようになっていると、この Web アプリケーションのコンテキストルートに対する相対パスであると解釈されます。
外部のコンテキストに属するリソースを利用するには getContext()
メソッドを使って RequestDispatcher
オブジェクトを取得してください。
この メソッドは ServletContext
が RequestDispatcher
を返せなかった場合に null
を返します。
path
- リソースのパス名を指定する String
RequestDispatcher
オブジェクト。
指定されたパスが null
の場合は RequestDispatcher
を返すことは出来ません。RequestDispatcher
,
getContext(java.lang.String)
RequestDispatcher getNamedDispatcher(java.lang.String name)
RequestDispatcher
オブジェクトを返します。
Servlet(JSP ページも同様)はサーバのアドミニストレーションや Web アプリケーションの配備記述子で名前が与えられることがあります。
Servlet のインスタンスは ServletConfig.getServletName()
メソッドを使って名前が解決されることもあります。
このメソッドは ServletContext
が何かの問題で RequestDispatcher
を返せない場合には null
を返します。
name
- Servlet をラップしている名前を指定する String
オブジェクト
RequestDispatcher
オブジェクト。
指定された名前が null
の場合は RequestDispatcher
を返すことは出来ません。RequestDispatcher
,
getContext(java.lang.String)
,
ServletConfig.getServletName()
Servlet getServlet(java.lang.String name) throws ServletException
このメソッドは以前 ServletContext
から Servlet を取得するために定義されたものでした。
このバージョンでは、常に null
を返します。
単に、バイナリ互換を保つ目的で残してあるにすぎません。
Java Servlet API の今後のバージョンでは完全に削除されるでしょう。
このメソッドを使わなくても Servlet は ServletContext
クラスを使って情報の共有ができるようになっています。
また、Servlet ではない、一般的なクラスのメソッドを起動することで共通のビジネスロジックを実行できます。
ServletException
java.util.Enumeration getServlets()
このメソッドは以前、この Servlet コンテキストに存在することがわかっている全ての Servlet を取得して Enumeration
オブジェクトを返すように定義されていました。
このバージョンでは、このメソッドは常に空の Enumeration
を返します。
単に、バイナリ互換を保つ目的で残してあるにすぎません。
Java Servlet API の今後のバージョンでは完全に削除されるでしょう。
java.util.Enumeration getServletNames()
このメソッドは以前、このコンテキストに存在することがわかっている Servlet の名前を全て取得して Enumeration
で返すように定義されていました。
このバージョンでは、このメソッドは常に空の Enumeration
を返します。
単に、バイナリ互換を保つ目的で残してあるにすぎません。
Java Servlet API の今後のバージョンでは完全に削除されるでしょう。
void log(java.lang.String msg)
msg
- ログファイルに出力するメッセージを指定する String
void log(java.lang.Exception exception, java.lang.String msg)
log(String message, Throwable throwable)
を使ってください。
このメソッドは以前、例外のスタックトレースとその説明となるエラーメッセージを Servlet のログファイルに出力するために定義されていました。
void log(java.lang.String message, java.lang.Throwable throwable)
Throwable
例外の説明となるメッセージとスタックトレースを Servlet のログファイルに出力します。
Servlet ログファイルは通常は event ログですが、名前やタイプは Servlet コンテナによって違います。
message
- エラーや例外を解説する String
throwable
- Throwable
エラーや例外java.lang.String getRealPath(java.lang.String path)
String
オブジェクトで返します。
例えば、"/index.html" というパスが与えられたとするとサーバのファイルシステム上の絶対パスを返します。
そのパスは "http://host/contextPath/index.html" がリクエストされたときに提供するファイルのパスです。
ここで、contextPath というのはこの ServletContext のコンテキストパスを意味しています。
戻り値で得られる実際のパスは Servlet コンテナが動作しているコンピュータやオペレーティングシステムに合わせた形式に変換されます。
パスセパレータも適切な形式になっています。
このメソッドは Servlet コンテナが何かの理由 (コンテンツが .war
アーカイブで提供されているなど) で仮想パスを実際のパスに変換できなかった場合には null
を返します。
path
- 仮想パスを指定する String
String
。
ただし、変換されなかった場合は null
java.lang.String getServerInfo()
Servlet 名/バージョン番号という形式の文字列が返されます。
例えば JavaServer Web Development Kit ならば JavaServer Web Dev Kit/1.0
という文字列が返されます。
Servlet コンテナは名前やバージョン以外に付加的な情報を返すこともあります。
そのような情報は最初の文字列のあとに括弧でくくって JavaServer Web Dev Kit/1.0 (JDK 1.1.6; Windows NT 4.0 x86)
のようになっています。
String
java.lang.String getInitParameter(java.lang.String name)
文字列
を返します。
初期化パラメータはコンテキスト内で有効です。
指定されたパラメータが存在しない場合は null
を返します。
このメソッドを使うと "Web アプリケーション" 全体で有効な設定情報を利用できるようになります。 例えば、ウェブマスターの email アドレスや重要なデータを維持しているシステムの名前などを提供するのに使えます。
name
- 値が要求されるパラメータの名前を表す String
String
ServletConfig.getInitParameter(java.lang.String)
java.util.Enumeration getInitParameterNames()
String
列挙である Enumeration
で返します。
コンテキストに初期化パラメータが無い場合は空の Enumeration
を返します。
String
からなる Enumeration
ServletConfig.getInitParameter(java.lang.String)
java.lang.Object getAttribute(java.lang.String name)
null
を返します。
属性を利用すると Servlet コンテナは Servlet に付加的な情報を与えることができるようになります。
その情報はこのインタフェースにより提供済みのものばかりではありません。
属性の情報については使っているサーバのドキュメントを参照してください。
サポートされている属性の一覧は getAttributeNames
メソッドで取得できます。
属性は java.lang.Object
か何かのサブクラスで返されます。
属性名はパッケージ名のネーミングコンベンションに従うべきです。
java.*
, javax.*
, sun.*
に該当する名前は Java Servlet API 仕様で予約されています。
name
- 属性の名前を指定する String
Object
。
指定された名前に一致する属性が無い場合は null
getAttributeNames()
java.util.Enumeration getAttributeNames()
Enumeration
オブジェクトを返します。
属性値を取得するには属性名を指定して getAttribute(java.lang.String)
メソッドを使ってください。
Enumeration
getAttribute(java.lang.String)
void setAttribute(java.lang.String name, java.lang.Object object)
ServletContext
にイベントリスナーが設定されている場合はコンテナは状況に応じてリスナーに通知します。
値として null が渡された場合、removeAttribute()
を実行したのと同等の結果になります。
属性名はパッケージ名と同じ命名規約に従うべきです。
java.*
, javax.*
, sun.*
に該当する名前は Java Servlet API 仕様で予約されています。
name
- 属性名を指定する String
object
- 属性に結びつける値を意味する Object
。void removeAttribute(java.lang.String name)
getAttribute(java.lang.String)
が実行されると null
を返します。
ServletContext
にイベントリスナーが設定されている場合はコンテナは状況に応じてリスナーに通知します。
name
- 削除する属性の名前を指定する String
java.lang.String getServletContextName()
null
。
|
Mergedoc Translation |
||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |