ここまで準備が整ったら、JSPのソースファイルを作成します。既に述べたように、ユーザーIDとパスワードの入力を求め、認証されたらページを表示するという、至ってシンプルな構造です。
- キャッシュの禁止~head.jsp -
ブラウザがキャッシュを有効にしていると、キャッシュされた保護ページが表示されてしまう場合があります。そのため、保護するすべてのページの先頭でキャッシュを無効にしておかなければなりません。
そこでリスト5のようなJSPファイル(head.jsp)を作り、これをすべてのページの先頭で取り込むようにします。
リスト5:キャッシュを無効にする~head.jsp
- セッション情報の表示~showinfo.jsp -
ここでは、リスト6のようなセッション情報を表示するJSPファイルを用意し、セッションがどのように管理されるかを見ることにします。
このファイルは、セッション情報を表示したいファイル(index.jsp、whatsnew.jsp、logout.jsp)の最後に取り込みます。
リスト6:セッション情報の表示~showinfo.jsp
- トップページ~index.jsp -
保護された領域のトップページです。先頭でhead.jsp、最後尾でshowinfo.jspをincludeしています。
それ以外は通常のHTMLデータで、whatsnew.jspとlogout.jspへのリンクが設定されているだけです。
このページは保護されているため、アクセスするとログインページ(login.jsp)が表示されます。そこでユーザーが正しく認証されれば、このページが表示されます。
リスト7:トップページ~index.jsp
- 新着情報~whatsnew.jsp -
このページもログインしなければ参照できません。既に認証が終わっていれば、トップページ(index.jsp)からリンクをたどって表示できますが、ブラウザで直接このページのURLを指定した場合は、ログインページ(login.jsp)が表示されます。
index.jspと同じように、先頭でhead.jsp、最後尾でshowinfo.jspをincludeしています。
リスト8:新着情報~whatsnew.jsp
- ログインページ~login.jsp -
ここでも先頭でhead.jsp、最後尾でshowinfo.jspをincludeしています。
後は、FORMタグを使ってログイン用のテキストボックスとsubmitボタンを配したユーザーインターフェイスを作っています。
FORMタグのmethodオプションで“POST”、actionオプションで“j_security_check”を指定すれば、テキストボックスに入力された値がサーバーへ送られ、サーバー側でデータベースの値に基づいた認証が行われます。
リスト9:ログインページ~login.jsp
画面1:ログインページでユーザーIDとパスワードを入力する
- ログアウト処理~logout.jsp -
確立しているセッションは、sessionオブジェクトのinvalidateで無効にします。
続いて
response.sendRedirect("index.jsp");
としてトップページ(index.jsp)にリダイレクトしています。この時点では既にセッションは無効となっているので、再度ログインページ(login.jsp)が表示されます。
リスト10:ログアウト処理~logout.jsp
- エラー表示~error.jsp -
パスワードの入力ミスなどでログインできなかった場合に、このページが表示されます。単にエラー情報を表示しているだけです。
リスト11:エラー表示~error.jsp
SQLによるテーブル生成 create文を使えば、SQLでテーブルが生成できます。
リスト12は、Tomcatのドキュメントに記載されているMySqlのためのテーブル生成用SQLのソースです。データ型の表記はDBMSごとに異なっている場合が多いので、注意してください。
リスト12:ユーザー管理用テーブルを生成するためのSQL |
|
|
|