GlassFishからアプローチするJava~入門編~
第7回「Webアプリケーションの作成 JDBCレルムで認証実現」
複数のユーザが同時に買い物ができるように実装する
ダウンロード サンプルコード (17.6 KB)
実現手順
芋焼酎酒店で複数のユーザーが利用できるようにするために、以下の手順で実現します。
- JDBCレルムの実現のためにユーザー情報とグループ情報を持ったテーブルを作成
- JDBCレルムで上記テーブルを使用することをGlassFishの管理ツールで定義
- デプロメント・ディスクリプタ(web.xml、sun-web.xml)の変更
- ログインJSPを作成
- 各Servletで買い物かごを識別するためにセッションのユーザーidを使用
JDBCレルムのためのテーブルを作成
ユーザーテーブルを作成
ユーザーテーブルは既に作成しています。ただし、パスワードに相当する部分がないためパスワード(pwd)のみ追加します。復習になりますが、テーブルを変更したい場合、MySQL Workbenchで[SQL Development]-[Open Connection to start Querying]-[imoshop_01](ご自身で作成されたコネクション)をダブルクリック、[Overview]-[imoshop]-[users](第6回では[user]と命名しましたが、既にmysqlスキーマに同名のテーブルがあり混乱するため改名しました)を選択し右クリックします。[Alter Table]を選択すると図1のような画面が表示されます。
下の方にある[Columns]タブを選択すると図2のような画面が表示されます。「first_name」の下をクリックすると入力可能になります。そこに「pwd」と入力します(「password」はデータベースの予約語である場合があるため避けるべきだという意見を参考にしました)。
テーブルの最後に追加しましたが、位置を変更したい場合、追加した項目を右クリックし[Move Up]または[Move Down]をクリックして位置を調整します。筆者もuser_idの下にpwdを置きたいため、[Move Up]で図3のように移動させました。
グループテーブルを作成
ユーザーとグループ(groups)は本来、多対多の関係にあるように設計した方が柔軟な作りにはなります。ここではグループテーブルにgroup_idとユーザーテーブルのuser_idを定義します。本来であれば、T字型ER手法で言う対照表を作成し、VIEWを定義する必要があるため、正確にはグループテーブルの定義にはなっていません。ここではグループidだけ管理することとし、対照表に相当するものをグループテーブルと呼んでいます。ちなみにVIEWを定義した場合、図9のユーザーテーブルとグループテーブルは同じVIEWを指定することになります。テーブルを指定しなければならないように思えますが、VIEWを指定してもエラーにはなりません。
では、グループテーブル(groups)を作成します。[MySQL Workbench]-[SQL Development]-[Open Connection to start Querying]-[imoshop_01]をダブルクリックし、[Overview]-[imoshop]を選択します。[Tables]の下の[Add Table]をダブルクリックすると図4のような画面が表示されます。Nameに「groups」と入力し、[Columns]タブをクリックします。
そのあとの設定は今まで説明してきたとおりです。設定後は図5のような画面になります。
この記事は参考になりましたか?
- GlassFishからアプローチするJava連載記事一覧
-
- GlassFishからアプローチするJava~入門編~ 第7回「Webアプリケーションの作...
- GlassFishからアプローチするJava~入門編~ 第6回「Webアプリケーションの作...
- GlassFishからアプローチするJava~入門編~ 第5回「Webアプリケーションの作...
- この記事の著者
-
川久保 智晴(カワクボ トモハル)
haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP, C#, JavaScriptなども一時期は業...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア





