ヘッダーをスキップ
Oracle Fusion Middleware PL/SQL Web Toolkitリファレンス
11gリリース1(11.1.1)
B56250-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

3 owa_cookieパッケージ

owa_cookieパッケージには、HTTPのCookieをクライアントのブラウザに送信したり、ブラウザから取得したりするサブプログラムが含まれています。Cookieは、HTTPコール間で状態を保持するためにブラウザに送信される隠ぺいされた文字列です。状態は、クライアントのセッションが確立されている間のみ、または有効期限が指定されている場合は有効期限まで保持されます。システムの日付は、owa_customパッケージで指定されている情報に従って計算されます。

3.1 サマリー

owa_cookie.cookieデータ型: Cookieの名前/値ペアを格納するデータ型です。

owa_cookie.getファンクション: 指定したCookieの値を取得します。

owa_cookie.get_allプロシージャ: Cookieのすべての名前/値ペアを取得します。

owa_cookie.removeプロシージャ: 指定したCookieを削除します。

owa_cookie.sendプロシージャ: HTTPヘッダーにSet-Cookie行を追加します。


注意:

HTTPヘッダーはすべて英語で記述する必要があります。ヘッダーをデータベースから生成する場合は、ヘッダーが英語で作成されていることを確認してください。

3.2 owa_cookie.cookieデータ型

HTTP標準ではCookie名のオーバーロードが認められている(つまり、同じCookie名に複数の値を関連付けることができる)ので、このデータ型は、特定のCookie名と関連付けられている値をすべて保持するPL/SQL RECORDです。

vc_arr型は、table of varchar2(4000) index by binary_integerです。

表3-1にowa_cookie.cookieデータ型のプロパティを示します。

表3-1 owa_cookie.cookieデータ型

プロパティ 定義

構文:

type cookie is RECORD (
   name           varchar2(4000),
   vals           vc_arr,
   num_vals       integer);

戻り値:

なし


3.3 owa_cookie.getファンクション

指定したCookieに関連する値が返されます。値はowa_cookie.cookieデータ型で返されます。

表3-2にowa_cookie.getファンクションのプロパティを示します。

表3-2 owa_cookie.getファンクション

プロパティ 定義

構文:

owa_cookie.get(name in varchar2) return cookie;

パラメータ:

name: Cookieの名前。

戻り値:

owa_cookie.cookieデータ型


3.4 owa_cookie.get_allプロシージャ

クライアントのブラウザからすべてのCookie名とその値が返されます。値は、ブラウザから送信された順序で示されます。

表3-3にowa_cookie.get_allプロシージャのプロパティを示します。

表3-3 owa_cookie.get_allプロシージャ

プロパティ 定義

構文:

owa_cookie.get_all(
   names          out      vc_arr,
   vals           out      vc_arr,
   num_vals       out      integer);

パラメータ:

names: Cookieの名前。

vals: Cookieの値。

num_vals: Cookieの名前/値ペアの数。

実行結果:

受信した順序での名前と値の配列、および組合せの数。


3.5 owa_cookie.removeプロシージャ

HTTPヘッダーのSet-Cookie行のexpiresフィールドを01-Jan-1990に設定することで、強制的にCookieを有効期限切れにします。このプロシージャは、HTTPヘッダーのコンテキスト内でコールされる必要があります。

表3-4にowa_cookie.removeプロシージャのプロパティを示します。

表3-4 owa_cookie.removeプロシージャ

プロパティ 定義

構文:

owa_cookie.remove(
   name           in       varchar2,
   val            in       varchar2,
   path           in       varchar2   DEFAULT NULL);

パラメータ:

name: 有効期限切れにするCookieの名前。

value: Cookieの値。

path: 現在は使用されていない。

実行結果:

Set-Cookie: <name>=<value> expires=01-JAN-1990


3.6 owa_cookie.sendプロシージャ

Cookieをクライアントに送信するSet-Cookie行を生成します。このプロシージャは、HTTPヘッダーのコンテキスト内で使用する必要があります。

表3-5にowa_cookie.sendプロシージャのプロパティを示します。

表3-5 owa_cookie.sendプロシージャ

プロパティ 定義

構文:

owa_cookie.send(
   name           in       varchar2,
   value          in       varchar2,
   expires        in       date       DEFAULT NULL,
   path           in       varchar2   DEFAULT NULL,
   domain         in       varchar2   DEFAULT NULL,
   secure         in       varchar2   DEFAULT NULL),
   httponly       in       varchar2   DEFAULT NULL),

パラメータ:

name: Cookieの名前。

value: Cookieの値。

expires: Cookieの有効期限が切れる日付。

path: pathフィールドの値。

domain: domainフィールドの値。

secure: このパラメータの値がNULLでない場合は、secureフィールドが行に追加される。

httponly: このパラメータの値がNULLでない場合は、HttpOnlyフィールドが行に追加される。

実行結果:

Set-Cookie: <name>=<value> expires=<expires> path=<path> domain=<domain> secure HttpOnly



注意:

HTTPOnly Cookieの詳細は、http://msdn.microsoft.com/en-us/default.aspxで「Mitigating Cross-site Scripting With HTTP-only Cookies」の項を参照してください。