デフォルトでは、JRun は JSP 内で使用するいくつかの暗黙的 JSP オブジェクトを作成します。これらの JSP オブジェクトは、JSP 仕様、Java サーブレット API、またはコア Java ライブラリによって定義されたオブジェクトのインスタンスです。これらのオブジェクトには、どの JSP からもアクセスできます。オブジェクトへのアクセスとは、オブジェクトメソッドを呼び出して、これらのメソッドに保管されているデータにアクセスすることです。
次の表で、各 JSP オブジェクトを説明し、それらのオブジェクトに対応するサーブレット API オブジェクトのタイプを定義します。
JSP オブジェクトは、Java サーブレット API からオブジェクトとして実装されます。JSP オブジェクトにより、これらの Java サーブレット API オブジェクトにアクセスするための簡易メカニズムが使用できます。
各オブジェクトとそのメソッドの詳細については、Java サーブレット API の HTML バージョンのドキュメントを参照してください。JSP オブジェクト名ではなく、表にリストされている Java サーブレット API オブジェクトタイプを使用します。
オブジェクトを作成しないように JSP に明示的に指示しないかぎり、JRun によって JSP が呼び出されると、前のセクションの表にリストされているすべての JSP オブジェクトが作成されます。たとえば、page
ディレクティブの session
属性を false に設定できます。この場合、JRun はそのページの session オブジェクトをインスタンス化しません。
メモ: セッショントラッキングを有効にした場合だけ、session オブジェクトが作成されます。exception オブジェクトが作成されるのは、JSP で page
ディレクティブを使用して、isErrorPage
を true に設定している場合だけです。詳細については、 「page ディレクティブ」 を参照してください。
JSP オブジェクトを JSP で呼び出すときは、次のシンタックスを使用します。
object_name.<メソッド>(<変数…>)
このオブジェクトのメソッドを呼び出す前に、オブジェクトをインスタンス化する必要はありません。オブジェクトはすべて page スコープです。つまり現在のページのステートメントからアクセスできます。
application オブジェクト使用すると、指定されたアプリケーションのすべてのユーザー間で情報を共有できます。アプリケーション内のどの JSP からも、application オブジェクトにアクセスできます。J2EE では、JSP ベースのアプリケーションは、仮想ディレクトリとそのサブディレクトリにあるすべての .jsp ファイルとして定義されます。
次の表で、application オブジェクトの一般的なメソッドを説明します。
次の例では、application オブジェクトに 2 つのパラメータを設定します。
<%
application.setAttribute("appName", "Application Object Example"); application.setAttribute("counter","0"); %>
次の例に示すように、このアプリケーションのこれ以降のページで、これらの設定にアクセスできます。
<HTML><BODY>
<h2>Display the default application settings</h2> <% String appName = (String) application.getAttribute("appName"); String counter = (String) application.getAttribute("counter"); %> このアプリケーションの名前: "<%= appName %>"<BR> The counter value = <%= counter %> </BODY></HTML>
application オブジェクトの初期化パラメータを設定できます。クライアントが最初にアプリケーションをリクエストしたときに、JRun は初期化パラメータを application オブジェクトに書き込みます。パラメータにアクセスするには、application.getInitParameter
メソッドを使用します。
一般的なテクニックは、次の例に示すように、データソースの名前を初期化パラメータとして web.xml ファイル内に設定することです。
<web-app>
... <context-param> <param-name>datasourcename</param-name> <param-value>fred</param-value> </context-param> ... </web-app>
次の例では、アプリケーション全体の初期化パラメータにアクセスします。
...
<% String ds = (String)application.getInitParameter("datasource"); %> try { DataSource ds = (DataSource) application.lookup(ds); dbConnection = ds.getConnection(); ... } ...
初期化パラメータへのアクセスの詳細については、 「初期化パラメータの使用」 を参照してください。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
config オブジェクトは、サーブレットが初期化されるときに、設定情報をサーブレットに渡します。サーブレットがアクセスできる設定情報は、初期化パラメータを表す名前/値のペアのセットと、サーブレットが実行されているコンテキストを表す ServletContext オブジェクトです。
次の表で、config オブジェクトの一般的なメソッドを説明します。
メソッド |
説明 |
---|---|
getInitParameter (String name) |
初期化パラメータの値を返します。パラメータが存在 しない場合は、null を返します。 |
getInitParameterNames |
各サーブレットの初期化パラメータ名を返します。 |
getServletName |
サーブレット名を返します。 |
初期化パラメータへのアクセスの詳細については、 「初期化パラメータの使用」 を参照してください。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
exception オブジェクトはすべてのエラーと例外を表します。page
ディレクティブの isErrorPage
属性を使用して、エラーページとして宣言したページ上の exception オブジェクトにアクセスできます。
次の表で、exception オブジェクトの一般的なメソッドを説明します。
メソッド |
説明 |
---|---|
getMessage |
エラーメッセージが含まれている文字列を返します。 |
printStackTrace |
標準エラーに exception オブジェクトとそのバックトレースを書き込みます。 |
toString |
exception オブジェクトについて説明した文字列を 返します。 |
exception オブジェクト使用の詳細については、 「エラーの処理」 を参照してください。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
out オブジェクトは、JSP の出力ストリームに書き込みを行うオブジェクトを定義します。
次の表で、out オブジェクトの一般的なメソッドを説明します。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
pageContext オブジェクトは、JSP にローカルな情報を保管します。各 JSP には、ユーザーがページに入ったときに JRun によって作成される JSP 自体の pageContext オブジェクトがあり、ユーザーがそのページを離れたときに、このオブジェクトは JRun によって破棄されます。pageContext オブジェクトのメソッドを使用して、JSP の情報にアクセスしたり、他のアクションを実行できます。
次の表で、pageContext オブジェクトの一般的なメソッドを説明します。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
request オブジェクトは、HTTP リクエスト中にクライアントから Web サーバに渡される値を取り出します。
次の表で、request オブジェクトの一般的なメソッドを説明します。
JSP request オブジェクトを使用して、HTTP リクエストの一部としてクライアントから JSP に送信されたデータにアクセスします。たとえば、リクエストには HTML フォームから JSP に渡されたデータを含めることができます。フォーム データは HTTP リクエストの名前/値のペアとして JSP に送信されます。この情報にアクセスするには、request オブジェクトとそのメソッドを使用します。
また、パラメータをそのページのリクエスト URL の一部として JSP に渡すこともできます。たとえば、次の URL を使用して、JSP をリクエストし、そのリクエストと併せて 2 つのパラメータを渡すことができます。
http://localhost/my.jsp?fName=Bob&lName=Smith
次の例に示すように、request.getParameter
メソッドを使用して、フォームまたはリクエスト URL から JSP に渡されたパラメータを取得します。
<%
String firstName = request.getParameter("fName"); String lastName = request.getParameter("lName"); out.println("Welcome " + firstName + " " + lastName); %>
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。
response オブジェクトはデータをクライアントに送信します。
次の表で、response オブジェクトの一般的なメソッドをリストします。
session オブジェクトは、特定のユーザーセッションに関する情報を保管します。デフォルトでは、JRun は Cookie を使用してセッションをトラッキングしますが、URL リライティングまたは非表示フォームフィールド、またはカスタムメソッドを使用して、セッションをトラッキングできます。Cookie 自体には、サーバサイドの session オブジェクトへのリクエストに一致する ID 番号 (セッション ID と呼ばれます) だけが含まれています。URL リライティングまたは非表示フォームフィールドを使用した場合、セッション ID は Cookie の値としてではなく、追加パス情報またはフォームフィールドとして渡されます。
ユーザーがアプリケーション内で別のページに移動しても、session オブジェクトに保管された変数は破棄されず、ユーザーセッションが継続している間は、保持されます。クライアントがリクエストでセッション ID を送り続けているかぎり、JRun はそのクライアントのユーザー特有のセッションデータにアクセスできます。
まだセッションを開始していないユーザーからアプリケーションのページがリクエストされた場合、JRun は session オブジェクトを作成します。セッションが期限切れになった場合や放棄された場合は、Web サーバにより session オブジェクトが廃棄されます。セッション使用の詳細については、 「セッションの操作」 を参照してください。
次の表は、session オブジェクトの一般的なメソッドをリストします。
ある JSP が session オブジェクトに情報を書き込み、その後、クライアントからリクエストされた別の JSP がそれにアクセスできます。たとえば、ユーザーのショッピングカートに ID を割り当てておくと、クライアントがカートの内容を追加、削除、または修正したときにはいつでも、Web サイトからショッピングカートに関する情報にアクセスできます。この ID を session オブジェクトに保管できます。
次の例では、session オブジェクトに属性を設定します。
<%
String firstName = request.getParameter("fName"); String lastName = request.getParameter("lName"); session.setAttribute("fName", firstName); session.setAttribute("lName", lastName); out.println("Welcome " + firstName + " " + lastName); %>
次の例に示すように、同じセッション内の別の JSP がこの属性にアクセスできます。
<%
String firstName = (String) session.getAttribute("fName"); String lastName = (String) session.getAttribute("lName"); out.println("あなたの注文は準備できました。" + firstName + " " + lastName); %>
getAttribute
がタイプ java.lang.Object
のオブジェクトを返すので、getAttribute
の戻り値をキャストする必要があります。キャストは、getAttribute
から返されたオブジェクトをデスティネーションの形式 (この場合は文字列) に変換します。
サンプルの JSP を表示するには、samples JRun サーバを起動し、ブラウザで
http://localhost:8200/techniques を開きます。