演習 3.5: クライアント・サイドとサーバー・サイドの妥当性検査の比較
前の演習では、妥当性検査規則を Web ページのフィールドに適用する方法を学習しました。これらの妥当性検査規則は、サーバー・サイド の妥当性検査規則でした。サーバー・サイドの妥当性検査規則は、アプリケーション・サーバーによって評価されます。クライアント・サイド の妥当性検査規則は、
クライアント・ブラウザーによって評価されます。サーバー・サイドの妥当性検査は、データ・ドリブンまたは複雑な規則により適しており、クライアント・サイドの妥当性検査は、単純な妥当性検査規則の場合にサーバー処理時間を節約することができます。
この演習では、UpdateSession.jsp ページに、単純なクライアント・サイドの妥当性検査規則を追加します。この妥当性検査規則は Javascript でコード化されています。EGL と違い JavaScript は、ケース・センシティブ
言語です。そのため、この演習でコードを挿入する際には、この演習からコードをコピーして貼り付けるか、
または示されているとおりに正確に入力してください。
ページへのクライアント・サイド Javascript の追加
この演習では、クイック編集ビューを使用して、パスワード・フィールドの妥当性を検査するクライアント・サイド Javascript をページに追加します。クライアント・サイド・コードや Javascript コードを Web ページに追加する方法は他にもありますが、妥当性検査規則のような小規模のコードの場合には、この方法が便利です。
- UpdateSession.jsp ページを開く。
- UpdateSession.jsp ページで、パスワード入力フィールド (その横のテキスト・ラベルと間違えないでください) をクリックする。この入力フィールドには {EGLpassword} というテキストが表示されています。このテキストは、フィールドが PageHandler 内の userSession レコードの EGL 変数 password にバインドされることを示しています。
- パスワード・フィールドを選択したら、クイック編集ビューを開く。通常、クイック編集ビューは、ワークベンチの下部にあります。クイック編集ビューが見つからない場合は、「ウィンドウ」>「ビューの表示」>「クイック編集」をクリックすると開きます。
- クイック編集ビューの左側で、「onblur」をクリックする。
- クイック編集ビューの右側に、以下に示されているとおりに正確にコードを挿入する。
if (thisObj.value == "password")
{
alert("Your password can not be the word 'password'.");
thisObj.select();
thisObj.focus();
return false;
}
以下は、ここで挿入したコードに関する技術面での注釈です。
- クイック編集ビューの左側に、選択した入力フィールドに関連したイベントが表示されます。この場合は、onblur イベントを選択しました。このイベントは、選択した入力フィールドからフォーカスが外れると実行されます。
- この Javascript の if 文は、EGL の if 文と同様の働きをします。
- コード thisObj.value は、入力フィールドに入力されたテキストを表します。このテキストがストリング「password」である場合、if 文内のコードが実行されます。
- alert 文は、「Your password can not be the word 'password'.」というテキストが入っているメッセージ・ボックスを開きます。
- コード thisObj.select(); および thisObj.focus(); は、ブラウザーのフォーカスをパスワード・フィールドに送信します。これによって、ユーザーは、有効なパスワードをフィールドに即時に入力することができます。
クイック編集ビューは次のようになります。

- ページを保管する。
- UpdateSession.jsp ページをサーバーで実行する。
- Web ブラウザーでページが開いたら、パスワード・フィールド以外の各フィールドに有効な情報を入力する。
- パスワード・フィールドに、ワード password を入力する。
- 「Write to session object」をクリックする。
ウィンドウが開き、「Your password can not be the word 'password'.」というメッセージが表示されます。
- 「OK」をクリックして、有効なパスワードを入力する。
- 「Write to session object」ボタンをクリックする。ページが正常に動作します。
この演習では、クライアント・サイドの妥当性検査の単純な例を 1 つ見てきました。ご使用のアプリケーションでは、クライアント・サイドの妥当性検査、サーバー・サイドの妥当性検査、あるいはその両方を組み合わせて使用する必要があると思われます。アプリケーションの詳細に応じて、使用する処理タイプが異なります。
『演習 3.6: リモート・ロジックの呼び出し』に進んでください。