Oracle® Application Expressアプリケーション・ビルダー・ユーザーズ・ガイド リリース4.2 for Oracle Database 12c B71338-03 |
|
前 |
次 |
ページごとに表示されるURLは、Oracle Application Expressの場所、Oracle Application Expressのアドレス、アプリケーションID、ページ番号およびセッションIDを指定します。
アプリケーションIDは各アプリケーションを識別する一意の番号です。同様に、ページ番号はアプリケーション内の各ページを一意に識別します。アプリケーションおよびページには、英数字の別名がある場合もあります。アプリケーションの別名はワークスペース内で一意であり、ページの別名は各アプリケーション内で一意です。アプリケーションを実行する場合、Application Expressエンジンはユーザーのセッション・ステートに対するキーとして機能するセッション番号を生成します。
内容は次のとおりです。
ページごとに表示されるURLは、Oracle Application Expressの場所を指定します。また、Oracle Application Expressのアドレス、アプリケーションID、ページ番号およびセッションIDを指定します。次に例を示します。
http://apex.somewhere.com/pls/apex/f?p=4350:1:220883407765693447
この例の内容は次のとおりです。
apex.somewhere.com
は、サーバーのURLです。
pls
は、mod_plsql
カートリッジを使用するためのインジケータです。
apex
は、データベース・アクセス記述子(DAD)名です。DADにはHTTP Serverからデータベース・サーバーへの接続方法が記述されているため、HTTPリクエストを実行できます。デフォルト値はapex
です。
f?p=
は、Oracle Application Expressによって使用される接頭辞です。
4350
は、コールされているアプリケーションです。
1
は、表示されるアプリケーション内のページです。
220883407765693447
は、セッション番号です。
アプリケーションのページ間にリンクを作成するには、次の構文を使用します。
f?p=App:Page:Session:Request:Debug:ClearCache:itemNames:itemValues:PrinterFriendly
表2-2に、f?p
構文の使用時に指定できる引数を示します。
表2-2 f?p構文の引数
構文 | 説明 |
---|---|
|
アプリケーションIDまたは英数字の別名を指定します。 |
|
ページ番号または英数字の別名を指定します。 |
|
セッションIDを指定します。セッションIDを参照して、セッション番号を渡すことで同じセッション・ステートを保持している他のページへのハイパーテキスト・リンクを作成できます。セッションIDを参照するには、次の構文を使用します。
|
|
|
|
アプリーション処理の詳細を表示します。DEBUGフラグの有効値は、次のとおりです。
このフラグを DEBUGフラグを参照するには、次の構文を使用します。
関連項目: 「アプリケーションのデバッグ」 |
|
キャッシュをクリアします。これによりアイテムの値がNULLに設定されます。 キャッシュされたアイテムを単一のページでクリアするには、数値ページ番号を指定します。キャッシュされたアイテムを複数のページでクリアするには、ページ番号のカンマ区切りのリストを使用します。ページのキャッシュをクリアすると、ページのステートフル・プロセスもリセットされます。個別の値またはカンマ区切りの値には、リセットするコレクション名を追加することや、リクエストされたページにおけるリージョンのページ区切りをリセットするためにキーワード 関連項目: 「セッション・ステートのクリア」 |
|
URLでセッション・ステートを設定するために使用される、カンマで区切られたアイテム名のリストです。 |
|
URLでセッション・ステートを設定するために使用されるアイテム値のリストです。アイテム値にコロンを含めることはできませんが、カンマをバックスラッシュで囲んで指定することは可能です。アイテム値にカンマを渡すには、文字をバックスラッシュで囲んでください。次に例を示します。 \123,45\ |
|
ページを「印刷用」モードでレンダリングするかどうかを決定します。PrinterFriendlyが「はい」に設定されている場合は、ページが「印刷用」モードでレンダリングされます。PrinterFriendlyの値は、リージョンなどの要素をページから削除して印刷される出力を最適化するための条件のレンダリングに使用されます。印刷用プリファレンスを参照するには、次の構文を使用します。 V('PRINTER_FRIENDLY') 参照時は、Application Expressエンジンはタブやナビゲーション・バーを表示しません。すべてのアイテムは、フォーム要素ではなくテキストで表示されます。 |
f?p
構文の動作を理解しておくことが重要です。アプリケーション・ビルダーには、これらの参照を自動的に作成する多くのウィザードが含まれています。ただし、自分で構文を作成する必要がある場合もあります。次の項では、f?p
構文を使用してページをリンクする具体的な場合について説明します。
アプリケーションおよびページの別名は、有効なOracle識別子で構成する必要があります。空白を含めることはできず、また大/小文字は区別されません。次の例では、アプリケーション内から、アプリケーションおよびページの別名を使用してページをコールします。アプリケーションmyapp
のページhome
が実行され、現行のセッションIDが使用されます。
f?p=myapp:home:&APP_SESSION.
アプリケーションの別名は、ワークスペース内で一意である必要があります。異なるワークスペースのアプリケーションに同じアプリケーション別名がある場合は、&c
引数を使用してワークスペース名を指定します。次に例を示します。
f?p=common_alias:home:&APP_SESSION.&c=WORKSPACE_A
ボタンの作成時に、ユーザーがそのボタンをクリックするとリダイレクトされるURLを指定できます。この例では、アプリケーション6000のページ6001が実行され、現行のセッションIDが使用されます。
f?p=6000:6001:&APP_SESSION.
これは、ボタンを使用するための唯一の方法です。この方法は、ページの送信を省略し、そのページ上のハイパーリンクとして機能します。ボタンをクリックしてページを送信することもできます。その方法では、ボタンをクリックすると、処理するページが送信され、フォームが送信された後、セッション・ステートが保存されます。
アプリケーション内のページが公開されていて認証の必要がない場合、セッションIDとしてゼロを使用することで、アプリケーション・ユーザーは容易にページをブックマークできます。
認証の必要がないアプリケーション・ページは、セッションIDがゼロ(単一の数字0
)であるf?p URLを使用してアクセスできます。ブラウザにURLを入力するか、またはセッションIDに0
を含むリンクをクリックしてページをリクエストすると、Application Expressエンジンは新しいセッションIDを割り当て、新しいセッションIDを含むセッションCookieをブラウザに送信します。アプリケーションのパブリック・ページを介してナビゲートすると、パブリック・ページへの生成済リンクすべてにセッションID0
が含まれており、パブリック・ページへのブランチすべてに、表示されているセッションIDに0
を使用する新しいURLが含まれていることがわかります。ただし、Application Expressエンジンは、バックグラウンドでカレント・セッションIDとしてCookieのセッションIDを使用してセッション・ステートを指定します。
カレント・セッションIDを非表示にする場合にこの機能は有効です。セッションIDを非表示にすると、ブックマーク・リンクにセッションIDを含めなくてもページをブックマークできるようになります。さらに優れた点として、セッションIDにゼロを使用すると、実際のセッションIDを検索エンジンから見えないようにします。
アプリケーションのセッションIDとしてゼロを使用するには、ゼロ・セッションIDを含むリンクを1つ以上生成する必要があります。このリンクを使用することでゼロ・セッションIDメカニズムが開始されます。1つの方法として、アプリケーションのホームページでゼロ・セッションIDを含む単一の静的リンクを提供する方法があります。たとえば、通常はページ2へのリンクにf?p=&APP_ID.:2:&APP_SESSION
をコード化するところで、f?p=&APP_ID.:2:0
をコード化します。
Oracleには、f?p構文を使用してアプリケーション・ページにアンカーを生成する際に開発者がPL/SQLを使用するためのユーティリティの機能があります。アプリケーションのPL/SQLでゼロ・セッションIDが要求される可能性のあるf?pアンカーが作成されるたびに、APEX_UTIL.PREPARE_URL
を使用します。詳細は、Oracle Application Express APIリファレンスの「PREPARE_URL」を参照してください。
ゼロ・セッションID機能では、HTMLにアンカーを持つページ(テンプレートやHTMLリージョンなど)がサポートされます。Application Expressエンジンがf?p
アンカーに直面した場合に、ある基準を満たしていると、そのアンカーを認識してセッションIDをゼロに置き換えます。
Application Expressエンジンは、次の状況を検出した場合に、セッションIDコンポーネントをゼロに置き換えます。
現行のアプリケーションの数値ID
次のいずれかのパターン:
すべて大文字またはすべて小文字で表された、現行のアプリケーションの英数字別名にコロンが続き、その後に現行のアプリケーションの公開ページの数値IDが続く
すべて大文字またはすべて小文字で表された、現行のアプリケーションの公開ページの英数字別名にコロンが続き、その後に&APP_SESSION.
または&SESSION.
が続く
ゼロ・セッションIDに置換される候補となるHTMLのパターンには、次のものがあります。
ページ10が公開ページの場合:
"f?p=&APP_ID.:10:&APP_SESSION.
ページ10が公開ページの場合:
"f?p=100:10:&APP_SESSION.
公開ページの別名がhome
の場合:
"f?p=&APP_ID.:home:&APP_SESSION.
公開ページの別名がHOME
の場合:
"f?p=&APP_ID.:HOME:&APP_SESSION.
アプリケーションの別名がPEOPLE
で、公開ページの別名がHOME
の場合:
"f?p=PEOPLE:HOME:&APP_SESSION
これらの例では、アプリケーションがゼロ・セッションIDモードで実行され、ユーザーが公開ユーザーである場合に、パターン&APP_SESSION.
(または&SESSION.
(非表示))がゼロに置き換えられます。次のPL/SQL式がtrueの場合に、ユーザーは公開ユーザーであるとみなされます。
:app_user in ('nobody','HTMLDB_PUBLIC_USER','PUBLIC_USER','ANONYMOUS','APEX_PUBLIC_USER')"
ヒント: Application Expressエンジンによって準備されていないリンクでは、ユーザーがアプリケーションへ認証されていない場合およびOracle Application Expressのゼロ・セッションID機能を使用している場合、セッションIDにゼロを返す、APP_SESSION_VISIBLE 組込み置換を使用します。「APP_SESSION_VISIBLE」を参照してください。 |