ソースコード(プロジェクトフォルダ)をSドライブにアップロードして提出してください

S:\Java\課題提出\サーバサイド\8章


カーシェアリングの予約サイトを作成します。
7章練習問題の続きですが、ここまで作成済みのコードがない場合、ssjavakadai8_start.war をインポートして始めてください。
参考:インポート手順

問題1 予約情報をセッションスコープに格納し、JSPで使用

7章練習問題で作成したReserveServletでは、フォームから送信されたデータをリクエストスコープに格納して使用しました。

使用するスコープがセッションスコープになるように、ReserveServletとerror.jsp、reserve_comp.jspを変更してください。

reserve_comp.jspにも、ユーザーの入力内容を表示するようにします。

なお、セッション内のデータおよびセッションオブジェクトの破棄は行わなくてよいです。

動作確認はreserve.jspからおこなってください。

実行結果サンプル

問題2 利用者情報登録・変更画面を作成

4章課題で作成した kadai.model.Customer クラスを使用し、利用者情報登録画面、利用者情報変更画面を作成します。

2.1 JavaBeans

kadai.model.Customer クラスを JavaBeans として適切な仕様に変更してください。

また、引数なしコンストラクタ内で全てのフィールドに空文字をセットしてください。

2.2 以下の仕様で利用者情報登録・変更画面を作成してください。

動的Web
プロジェクト名
ssjavakadai
JSP
ファイル名
customer.jsp
URL http://localhost:8080/ssjavakadai/customer.jsp
CSS kadai.css
ページタイトル セッションスコープの属性「customer」がなければ「利用者情報登録」
セッションスコープの属性「customer」があれば「利用者情報変更」
フォームの送信先 CustomerServlet ※このあと問題2.3で作成します
送信方式 POST
仕様詳細
  • 入力フィールドとして、「氏名」「住所」「電話番号」「メールアドレス」を持ち、「送信」ボタンを表示する。(下記画像参照。「ID」は不要)
  • セッションスコープの属性「customer」がなければ、引数なしコンストラクタを使用してCustomerクラスをインスタンス化する。
  • セッションスコープの属性「customer」があれば、セッションから取得した値、なければ空文字が表示されるようにする。
    Customerクラスの仕様をうまく活用すること。
  • hiddenパラメータを使用し、「登録」または「変更」の区分も送信する。(完了画面表示用)

2.3 以下の仕様で利用者情報登録/変更サーブレットを作成してください。

動的Web
プロジェクト名
ssjavakadai
パッケージ名 kadai.servlet
サーブレット
クラス名
CustomerServlet
URL
※実行時は直接アクセスせず、customer.jspから動作させること
http://localhost:8080/ssjavakadai/CustomerServlet
処理内容
  • フォームから送信された氏名、住所、電話番号、メールアドレスを受け取り、Customerクラスのオブジェクトにデータをセットし(IDは空文字)、セッションスコープに属性名「customer」で登録する。
  • hiddenで送信された登録/変更の区分はリクエストスコープに属性名「mode」で登録する 。
  • 登録/変更完了画面「/WEB-INF/jsp/customer_comp.jsp」にフォワードする。

2.4 以下の仕様で利用者情報登録/変更 完了画面を作成してください。

動的Web
プロジェクト名
ssjavakadai
JSPファイル名 customer_comp.jsp
URL
※実行時は直接アクセスせず、customer.jspから動作させること
http://localhost:8080/ssjavakadai/WEB-INF/jsp/customer_comp.jsp
CSS kadai.css
HTMLページタイトル リクエストスコープの属性「mode」の値に応じて「利用者情報登録完了」または「利用者情報変更完了」
使用詳細
  • 登録/変更 完了のメッセージと、セッションに格納されている「氏名」「住所」「電話番号」「メールアドレス」を表示する。(下記画像参照)
  • customer.jspへのリンクを表示する。
実行結果サンプル