ユーザーの追加

ユーザーの追加を行えるようにしてみます。管理権限があるユーザーがログインした場合に、スケジュール画面を表示した時に「ユーザー追加」画面へのリンクを表示するようにしてみます。

具体的には「MonthView」サーブレットが表示された時にセッション変数に保存されているロールの値を調べ、管理者であった場合にはリンクを表示するようにします。

作成したサーブレットは次の通りです。

MonthView8.java [HTMLで表示]

「MonthView」サーブレットから呼び出されるユーザー追加用「NewUser」サーブレットは、ユーザー名、パスワード、権限、の3つを入力できるようになっています。入力後にデータベースへの入力処理を行う「CreateUserCheck」サーブレットをフォームから呼び出せるようにしています。

作成したサーブレットは次の通りです。

NewUser1.java [HTMLで表示]

「CreateUserCheck」サーブレットでは実際にデータベースへ登録を行います。登録後は続けてユーザーの追加を行えるように「NewUser」サーブレットを再度呼び出すようにしています。

作成したサーブレットは次の通りです。

CreateUserCheck1.java [HTMLで表示]

コンパイルして作成されたクラスファイルを「(root)\WEB-INF\classes\」ディレクトリに配置します。

D:\servlet-sample
   |
   +--schedule
       |
       +-- (top.html)
       |
       +-- WEB-INF
       |    |
       |    +-- classes
       |          |
       |          +-- (MonthView8.class)
       |          |
       |          +-- (NewSchedule6.class)
       |          |
       |          +-- (ScheduleInsert3.class)
       |          |
       |          +-- (ScheduleView2.class)
       |          |
       |          +-- (EditSchedule2.class)
       |          |
       |          +-- (ScheduleUpdate1.class)
       |          |
       |          +-- (DeleteCheck2.class)
       |          |
       |          +-- (ScheduleDelete1.class)
       |          |
       |          +-- (LoginPage1.class)
       |          |
       |          +-- (AuthFilter1.class)
       |          |
       |          +-- (LoginCheck1.class)
       |          |
       |          +-- (NewUser1.class)
       |          |
       |          +-- (CreateUserCheck1.class)
       |
       +-- img

また作成したサーブレットを呼び出せるように「web.xml」を次のように書き換えます。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

  <filter>
    <filter-name>AuthFilter</filter-name>
    <filter-class>AuthFilter1</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/MonthView</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/NewSchedule</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/ScheduleInsert</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/ScheduleView</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/EditSchedule</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/ScheduleUpdate</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/DeleteCheck</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/ScheduleDelete</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/NewUSer</url-pattern>
  </filter-mapping>

  <filter-mapping>
    <filter-name>AuthFilter</filter-name>
    <url-pattern>/CreateUserCheck</url-pattern>
  </filter-mapping>

  <servlet>
    <servlet-name>MonthView</servlet-name>
    <servlet-class>MonthView8</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>MonthView</servlet-name>
    <url-pattern>/MonthView</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>NewSchedule</servlet-name>
    <servlet-class>NewSchedule6</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>NewSchedule</servlet-name>
    <url-pattern>/NewSchedule</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>ScheduleInsert</servlet-name>
    <servlet-class>ScheduleInsert3</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ScheduleInsert</servlet-name>
    <url-pattern>/ScheduleInsert</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>ScheduleView</servlet-name>
    <servlet-class>ScheduleView2</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ScheduleView</servlet-name>
    <url-pattern>/ScheduleView</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>EditSchedule</servlet-name>
    <servlet-class>EditSchedule2</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>EditSchedule</servlet-name>
    <url-pattern>/EditSchedule</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>ScheduleUpdate</servlet-name>
    <servlet-class>ScheduleUpdate1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ScheduleUpdate</servlet-name>
    <url-pattern>/ScheduleUpdate</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>DeleteCheck</servlet-name>
    <servlet-class>DeleteCheck2</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>DeleteCheck</servlet-name>
    <url-pattern>/DeleteCheck</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>ScheduleDelete</servlet-name>
    <servlet-class>ScheduleDelete1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>ScheduleDelete</servlet-name>
    <url-pattern>/ScheduleDelete</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>LoginPage</servlet-name>
    <servlet-class>LoginPage1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginPage</servlet-name>
    <url-pattern>/LoginPage</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>LoginCheck</servlet-name>
    <servlet-class>LoginCheck1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginCheck</servlet-name>
    <url-pattern>/LoginCheck</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>NewUser</servlet-name>
    <servlet-class>NewUser1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>NewUser</servlet-name>
    <url-pattern>/NewUser</url-pattern>
  </servlet-mapping>

  <servlet>
    <servlet-name>CreateUserCheck</servlet-name>
    <servlet-class>CreateUserCheck1</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CreateUserCheck</servlet-name>
    <url-pattern>/CreateUserCheck</url-pattern>
  </servlet-mapping>
</web-app>

それではブラウザで「http://localhost:8080/schedule/MonthView」へアクセスします。するとまずログイン画面が表示されます。

スケジュール管理

管理者権限がある「root/root」でログインします。すると次のように月間スケジュール一覧が表示され、一番上に「ユーザーの追加」へのリンクが表示されます。

スケジュール管理

「ユーザーの追加」をクリックして下さい。次のようにユーザー追加用のフォームが表示されます。

スケジュール管理

ではユーザー名「suzuki」、パスワード「suzuki」、権限「一般」でユーザーを作成してみます。下記のように入力をしたら「create」ボタンをクリックして下さい。

スケジュール管理

ユーザーの追加が無事成功した場合は、続けて追加できるように同じ画面が再度表示されます。

スケジュール管理

ではいったんブラウザを閉じて再度「http://localhost:8080/schedule/MonthView」へアクセスします。するとまずログイン画面が表示されますので先ほど追加した「suzuki/suzuki」でログインしてみます。

スケジュール管理

無事「suzuki」でログインが出来ました。スケジュールはログインしたユーザーのものだけを表示するようになっていますので、作成したばかりのユーザーでログインした場合はスケジュールは何もありません。

スケジュール管理

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。