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