データ構造とアルゴリズム論



Similar documents
4.5. < 参 加 表 明 書 を 提 出 する> 調 達 案 件 一 覧 の 表 示 対 象 となる 案 件 を 検 索 し 調 達 案 件 一 覧 に 表 示 させます 参 加 したい 案 件 の 調 達 案 件 名 称 行 - 入 札 参 加 資 格 確 認 申 請 / 技 術 資 料 /

データ構造とアルゴリズム論

データ構造とアルゴリズム論

この 章 では 電 子 入 札 システムをご 利 用 いただくための 事 前 準 備 について 説 明 します 事 前 準 備 と して ID 初 期 パスワードの 確 認 初 期 パスワード 初 期 見 積 用 暗 証 番 号 の 変 更 IC カード 登 録 またはICカード 更 新 を 行 っ

目 次 電 子 申 請 を 使 用 した 申 請 の 流 れ 1ページ 申 請 書 ( 概 算 保 険 料 申 告 書 )の 作 成 2ページ 作 成 した 申 請 書 の 送 信 31ページ 状 況 照 会 電 子 納 付 を 行 う 62ページ 返 送 書 類 の 取 得 75ページ お 問 い

「1 所得税及び復興特別所得税の確定申告書データをお持ちの方」からの更正の請求書・修正申告書作成編

目 次. WEB メールへのログイン.... メール 送 信 手 順.... メール 受 信 手 順 アドレス 帳 の 操 作 手 順 フォルダーの 操 作 手 順 メール 発 信 者 登 録 署 名 登 録 手 順 基 本 的 な 設 定

2 科 学 研 究 費 助 成 事 業 のトップページ 画 面 が 表 示 されます [ 研 究 者 ログイン]をクリック します 掲 載 している 画 面 は 例 示 です 随 時 変 更 されます 3 科 研 費 電 子 申 請 システムの 応 募 者 ログイン 画 面 が 表 示 されます e

4 応 募 者 向 けメニュー 画 面 が 表 示 されます 応 募 者 向 けメニュー 画 面 で [ 交 付 内 定 時 の 手 続 を 行 う] [ 交 付 決 定 後 の 手 続 を 行 う]をクリックします 10

2 課 題 管 理 ( 科 学 研 究 費 補 助 金 ) 画 面 が 表 示 されます 補 助 事 業 期 間 終 了 後 欄 の[ 入 力 ] をクリックします [ 入 力 ]ボタンが 表 示 されていない 場 合 には 所 属 する 研 究 機 関 の 事 務 局 等 へお 問 い 合 わせく

目 次 1. ログイン/ログアウト 1.1 ログインする p ログアウトする p.3 2. 受 講 一 覧 画 面 p.4 3. 授 業 ページの 閲 覧 3.1 授 業 ページへの 遷 移 p 授 業 資 料 を IT s class.からダウンロードする p

年齢別人数計算ツールマニュアル

Microsoft Word - ML_ListManager_10j.doc

目 次 1. Web メールのご 利 用 について Web メール 画 面 のフロー 図 Web メールへのアクセス ログイン 画 面 ログイン 後 (メール 一 覧 画 面 ) 画 面 共 通 項 目

PATENTBOY/Netバージョンアップ説明書(Ver.1.92)

もくじ

PowerPoint プレゼンテーション

オートビズにPayPalを対応させる方法

ご 注 意 (1) 本 書 の 内 容 の 一 部 又 は 全 部 を 無 断 で 転 載 することは 禁 止 されています (2) 本 書 の 内 容 は 将 来 予 告 無 しに 変 更 することがあります (3) 本 書 の 内 容 は 万 全 を 期 して 作 成 しておりますが ご 不 審

データベースS 演習資料

2. 研 究 者 / 評 価 者 情 報 修 正 この 画 面 では 研 究 者 が 自 分 自 身 の 情 報 の 修 正 を 行 います (A) 研 究 者 / 評 価 者 情 報 の 修 正 () 研 究 者 / 評 価 者 情 報 修 正 画 面 を 開 く HOME 画 面 メニューの 研

学校教育法等の一部を改正する法律の施行に伴う文部科学省関係省令の整備に関する省令等について(通知)

本 操 作 説 明 書 について 本 操 作 説 明 書 は 物 品 電 子 調 達 システム 入 札 参 加 資 格 審 査 申 請 についての 操 作 を 説 明 したものです 動 作 環 境 本 アプリケーションは 以 下 の 環 境 にて 動 作 致 します OS 日 本 語 Microso

6 システムを 入 れているパソコンを 入 れ 替 えたいが どうしたらいいのか 元 のパソコンから 新 しいパソコンに 昨 年 度 入 力 データを 移 行 します 手 順 は 次 のとおりです 1 元 のパソコンでシステムを 起 動 して メニュー 画 面 から バックアップ リカバリ を 選

目 次 はじめに キャンパスメールを 利 用 するには キャンパスメール 利 用 申 請 を 行 う アカウント 有 効 化 (アクティベーション)を 行 う メールの 利 用 WEB ブラウザからメールを 利 用

<4D F736F F D2091E F18CB48D C481698E7B90DD8F9590AC89DB816A2E646F63>

返還同意書作成支援 操作説明書

<4D F736F F D F4390B3208A948C E7189BB8CE F F8C668DDA97702E646F63>

入 札 参 加 資 格 申 請 システム 操 作 マニュアル 入 札 参 加 資 格 の 資 格 有 効 ( 変 更 ) 日 を 迎 えると 追 加 届 の 登 録 ができるようになります ( 入 札 参 加 資 格 申 請 の 定 時 受 付 では いずれかの 申 請 先 団 体 から 入 札 参

<4D F736F F D20819C B78AFA95DB91538C7689E68DEC90AC289

Microsoft PowerPoint _リビジョンアップ案内_最終.pptx

Taro-データ公安委員会相互協力事

PowerPoint プレゼンテーション

一 括 登 録 方 法 一 括 登 録 をするには 予 め 専 用 の CSV ファイルを 作 成 する 必 要 があります 普 段 エクセルファイルで 管 理 をされている 方 は, 以 下 の 3 列 のみのデータとなるようにデータを 加 工 して CSV ファイルとして 保 存 して 下 さ

Microsoft PowerPoint - 04_H26material_practice_No3-3.pptx

e-Gov電子申請システムを利用した

(Microsoft PowerPoint - Ver12\203o\201[\203W\203\207\203\223\203A\203b\203v\216\221\227\277.ppt)

富士山チェックリスト

PowerPoint プレゼンテーション

特別徴収封入送付作業について

PowerPoint プレゼンテーション

Microsoft Word - 第3章.doc

< 目 次 > 8. 雇 用 保 険 高 年 齢 雇 用 継 続 給 付 27 ( 育 児 休 業 給 付 介 護 休 業 給 付 ) 8.1 高 年 齢 雇 用 継 続 給 付 画 面 のマイナンバー 設 定 高 年 齢 雇 用 継 続 給 付 の 電 子 申 請 高


WEBメールシステム 操作手順書

Microsoft Word - Active.doc

 

Memo

2 / 11 ページ 第 5 講 ビジネスメールの 作 法 Active! Mail を 起 動 し ログインしておきましょう 5-1 ビジネスメールのルールとマナー ビジネスメールのルールとマナーを 確 認 しましょう 宛 先 やCC BCCを 使 い 分 ける 本 文 の 内 容 が 一 目 で

平成22年12月27日

1. 概 要 Webで 申 込 みした 手 続 きの 内 容 とNEXIでの 手 続 状 況 を Web 申 込 状 況 一 覧 で 確 認 することができます また 各 種 手 続 きにおいて 申 込 みを 完 了 せずに 保 存 状 態 にした 手 続 きを この 一 覧 から 再 開 すること

Gmail 利用者ガイド

第1回

(1)1オールゼロ 記 録 ケース 厚 生 年 金 期 間 A B 及 びCに 係 る 旧 厚 生 年 金 保 険 法 の 老 齢 年 金 ( 以 下 旧 厚 老 という )の 受 給 者 に 時 効 特 例 法 施 行 後 厚 生 年 金 期 間 Dが 判 明 した Bは 事 業 所 記 号 が

H28記入説明書(納付金・調整金)8

スライド 1

PowerPoint Presentation

TIPS - 棚 割 りを 開 始 するまで Liteを 起 動 し 企 業 情 報 の 追 加 を 行 い 棚 割 を 行 う 企 業 の 追 加 をして 下 さい 企 業 情 報 の 追 加 時 に エラーメッセージが 表 示 された 場 合 別 途 TIPS トラブルが 発 生 した 場 合

目 次 1 ログインする 1 2 研 修 情 報 を 登 録 する 2 step1 登 録 フォームに 入 力 する 2 step2 プレビューで 入 力 内 容 を 確 認 する 18 step3 下 書 き 保 存 する 20 step4 登 録 する 21 step5 管 理 者 による 承

研究者情報データベース

平成27年度大学改革推進等補助金(大学改革推進事業)交付申請書等作成・提出要領

2. 事 務 連 絡 者 用 メニュー (1) 登 録 変 更 申 請 委 員 会 メンバー メンバー 個 人 情 報 企 業 情 報 の 変 更 および JIRA 会 員 を 退 会 する 場 合 こ のメニューから 各 種 申 請 を 行 います 申 請 後 変 更 内 容 を JIRA 事 務

~モバイルを知る~ 日常生活とモバイルコンピューティング

<4D F736F F D E71905C90BF91808DEC8CA48F4389EF8E9197BF82542E646F63>

養 老 保 険 の 減 額 払 済 保 険 への 変 更 1. 設 例 会 社 が 役 員 を 被 保 険 者 とし 死 亡 保 険 金 及 び 満 期 保 険 金 のいずれも 会 社 を 受 取 人 とする 養 老 保 険 に 加 入 してい る 場 合 を 解 説 します 資 金 繰 りの 都

PowerPoint プレゼンテーション

目 次 1.はじめに 1-1. はじめに 2. 操 作 2-1. 概 要 2-2. 操 作 方 法 ( 調 査 依 頼 の 確 認 ) 2-3. 操 作 方 法 ( 回 答 登 録 ) 2-4. 操 作 方 法 (ワークシート 出 力 ) 2-5. 操 作 方 法 (ワークシート 取 込 ) 3.

5-2 一 般 ユーザー 用 :メール 2 送 信 者 のリンクをクリックすると 受 信 メールの 内 容 を 見 ることができます 受 信 メール 内 容 画 面 項 目 送 信 者 宛 先 CC 本 文 (テキスト) 本 文 (HTML) メールアドレスのリンクをクリックするとアドレス 帳 へ

あいち電子調達共同システム

入札方式別操作

平成17年度高知県県産材利用推進事業費補助金交付要綱

Microsoft Word - 2.doc

おすすめページ

( 注 変 更 申 請 で 対 象 となる 項 目 と 郵 送 書 類 についての 詳 細 は 下 表 を 参 照 してください 東 京 電 子 自 治 体 共 同 運 営 電 子 調 達 サービス 6. 変 更 申 請 物 品 買 入 れ 等 変 更 申 請 項 目 及 び 郵 送 書 類 等 一

公営住宅法施行令の一部を改正する政令―公営住宅法施行令例規整備*

前 書 き 広 域 機 関 システム System for Organization for Cross-regional Coordination of Transmission Operators(OCCTO) rev: 商 標 類 Windows Office Excel

5-2.操作説明書(支店連携)_xlsx

パソコンバンクWeb21 操作マニュアル[導入・事前設定編]

学校法人日本医科大学利益相反マネジメント規程

(Microsoft Word - Excel\211\236\227p2\217\315.docx)

2016 年 度 情 報 リテラシー 三 科 目 合 計 の 算 出 関 数 を 用 いて 各 教 科 の 平 均 点 と 最 高 点 を 求 めることにする この2つの 計 算 は [ホーム]タブのコマ ンドにも 用 意 されているが 今 回 は 関 数 として 作 成 する まず 表 に 三 科

医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート - 目 次 - < 第 1 章 > 共 通 事 項 説 明 医 療 費 自 己 負 担 額 支 払 明 細 書 入 力 シート 目 次 1.1 本 システムの 注 意 点 入 力 項 目 について 基 本 情

PowerPoint プレゼンテーション

<4D F736F F D20819C486F70658F6F93588ED297708AC7979D89E696CA837D836A B E A2E646F63>

1-2 新 規 CPD 会 員 登 録 の 申 請 から 登 録 までの 手 順 当 協 会 CPDシステムを 利 用 するためには 当 協 会 ホームページトップ 画 面 より CPD 事 務 局 へ のCPD 会 員 登 録 が 必 要 です CPD 会 員 登 録 が 完 了 すると 登 録

<4D F736F F D204D46834E A6D92E8905C8D905F93B193FC819593FA8E9F95D C5292E646F63>

Q1-7 決 済 手 数 料 とは 何 ですか A1-7 決 済 手 数 料 は クレジットカードによる 納 付 を 行 う 際 に 納 税 者 の 皆 様 に 御 負 担 いた だく 手 数 料 で 1 件 ごとにかかります 御 負 担 いただく 手 数 料 は 納 付 額 1 万 円 までは 5

参 考 1 無 線 局 情 報 入 力 支 援 ( 基 地 局 と 固 定 局 の 事 項 書 のみに 対 応 ) 無 線 局 情 報 入 力 支 援 機 能 とは 過 去 に 申 請 したデータをダウンロードし 無 線 局 インターネット 申 請 アプリケーション で 利 用 できる 便 利 な

<4D F736F F F696E74202D D382E982B382C68AF1958D8BE090A C98AD682B782E B83678C8B89CA81698CF6955C A2E >

Microsoft Word - 不正アクセス行為の禁止等に関する法律等に基づく公安

Ⅰ 校 外 における 研 修 の 留 意 点 1 校 外 における 研 修 のコマ 数 の 考 え ア) 午 前 午 後 の 講 座 は 0.5 日 (0.5 コマ) イ) 全 日 の 講 座 は 1.0 日 (1.0 コマ) 2 校 外 における 研 修 として 選 択 できない 講 座 研 修

Microsoft Word - 311Tools_END

接 支 払 制 度 を 活 用 するか 意 思 を 確 認 する 確 認 に 当 たっては 次 の 各 号 に 掲 げる 事 項 について 書 面 により 世 帯 主 の 合 意 を 得 て 代 理 契 約 を 締 結 するものとする (1) 医 療 機 関 等 が 本 市 に 対 し 世 帯 主

購買ポータルサイトyOASIS簡易説明書 b

~モバイルを知る~ 日常生活とモバイルコンピューティング

シラバスの作成と管理用Webシステムの開発

目 次 はじめに.... デジカメからの 画 像 取 込 画 像 情 報 の 登 録 部 位 の 設 定 目 的 の 設 定 目 的 の 追 加 画 像 情 報 の 登 録 ( 備 考 の 設 定 ) 備 考

Microsoft Word - ★HP版平成27年度検査の結果

データ構造とアルゴリズム論

Taro-1-14A記載例.jtd

Transcription:

第 7 章.サーブレット 間 の 連 携 学 習 のねらい 1 Web アプリケーションの 処 理 を サーブレット JSP そして HTML ファイルによる 処 理 分 担 あるいは 連 携 によって 実 現 する 仕 組 みを フォワード(forward) インクルー ド(include)およびリダイレクト(redirect)の 活 用 方 法 を 通 じて 学 習 する 2 また リクエスト 属 性 のやりとりも 学 習 する < 先 週 の 復 習 > 講 義 で 示 された 基 礎 課 題 7-1 に 解 答 して 下 さい 7-1.フォワード(forward)による 処 理 の 受 け 渡 し 基 礎 課 題 6-6 では 男 女 の 性 別 を 選 択 すると それぞれの 専 用 ページを 表 示 するという Web アプリケーションを 作 成 しました そこでは 男 性 女 性 専 用 ページをサーブレット で 直 接 記 述 しましたが その 内 容 が 複 雑 になって 来 ると それぞれのページを 記 述 する( 専 用 の){サーブレット JSP HTML ファイルを 呼 び 出 して 表 示 させた 方 が 見 通 しが 良 くなります ここでは そのやり 方 を 学 習 しましょう 処 理 の 流 れをイメージとして 表 す と 次 のようになります forward 男 性 専 用 ページの 表 示 性 別 の 選 択 (JSP) リクエスト 表 示 の 振 り 分 け (サーブレット) (サーブレット JSP HTML 文 書 ) 女 性 専 用 ページの 表 示 forward (サーブレット JSP HTML 文 書 ) 以 下 の 手 順 にしたがって この Web アプリケーションを 作 成 しましょう 87

1 radiobutton.jsp を 次 のように 修 正 し radiobutton2.jsp と 別 名 保 管 してください 下 線 部 が 修 正 箇 所 です <%@page contenttype="text/html; charset=windows-31j"%> <HTML> <radiobutton2.jsp> <BODY> <H2>ラジオボタンからの 入 力 </H2> あなたは 男 性 ですか 女 性 ですか?<br> <FORM ACTION="../RadioButtonServlet2" METHOD="POST"> <INPUT TYPE="RADIO" NAME="Sex" VALUE="Dansei"> 男 性 <INPUT TYPE="RADIO" NAME="Sex" VALUE="Josei"> 女 性 <br> <INPUT TYPE="SUBMIT" VALUE=" 送 信 "> <INPUT TYPE="RESET"> </FORM> </BODY> </HTML> 2 次 に RadioButtonServlet.java を 次 のように 修 正 して RadioButtonServlet2.java と 別 名 保 管 してください import javax.servlet.requestdispatcher; <RadioButtonServlet2.java> 1RequestDispatcher クラスをインポート public class RadioButtonServlet2 extends HttpServlet { String Sex=request.getParameter("Sex"); RequestDispatcher dispatcher; 2 RequestDispatcher クラスのオ if(sex.equals("dansei")) { ブジェクトを dispatcher と 命 名 request.getrequestdispatcher("/danseiservlet"); else { 3 getrequestdispatcher メソッドの 引 数 には 処 理 を 割 り 当 てるサーブレットのパス 名 を 指 定 する request.getrequestdispatcher("/joseiservlet"); dispatcher.forward(request, response); 4 forward()メソッドにより 3で 指 定 したサーブレットへ 処 理 が 移 る 88

3 上 で 呼 び 出 される DanseiServlet.java を 次 の よ う に 作 成 し て く だ さ い RadioButtonServlet.java を 別 名 保 管 して 修 正 すると 便 利 です import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; <DanseiServlet.java> public class DanseiServlet extends HttpServlet { response.setcontenttype("text/html;charset=windows-31j"); PrintWriter out=response.getwriter(); out.println("<html>"); out.println("<head>"); out.println("<title> 男 性 専 用 ページ</TITLE>"); out.println("</head>"); out.println("<body>"); out.println("<h2> 男 性 専 用 ページ</H2>"); out.println("ようこそ 男 性 専 用 のページへ"); out.println("<body>"); out.println("</html>"); 4 上 の DanseiServlet.java を 別 名 保 管 して JoseiServlet.java を 作 成 してくださ い 変 更 点 は 次 の 通 りです クラス 名 を DanseiServlet JoseiServlet へ 変 更 男 性 専 用 の 表 示 部 分 を 女 性 専 用 へ 変 更 (3 箇 所 ) 5 最 後 に web.xml に 次 ページのように 追 加 してください < 補 足 > RequestDispatcher クラスの dispatch とは 派 遣 する という 意 味 の 単 語 です プロ グラミングでは( 処 理 を) 割 り 当 てるという 意 味 で 使 われます まさに 処 理 を 他 のサーブ レットや JSP に 割 り 当 てるために 用 意 されているのが このクラスです 89

<web.xml> <web-app> 追 加 部 分 のみを 記 述 <servlet> <servlet-name>radiobuttonservlet2</servlet-name> <servlet-class>input.radiobuttonservlet2</servlet-class> </servlet> <servlet> <servlet-name>danseiservlet</servlet-name> <servlet-class>input.danseiservlet</servlet-class> </servlet> <servlet> <servlet-name>joseiservlet</servlet-name> <servlet-class>input.joseiservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>radiobuttonservlet2</servlet-name> <url-pattern>/radiobuttonservlet2</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>danseiservlet</servlet-name> <url-pattern>/danseiservlet</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>joseiservlet</servlet-name> <url-pattern>/joseiservlet</url-pattern> </servlet-mapping> </web-app> 基 礎 課 題 7-2 作 成 したら 動 作 を 確 認 してください radiobutton2.jsp に 接 続 し 例 えば 女 性 を 選 択 した 場 合 次 のように 表 示 されま す このとき URL に 注 目 してください 処 理 が 割 り 当 てられた /JoseiServlet ではなく /RadioButtonServlet2 の ままになっているはずです 処 理 を JoseiServlet に 割 り 当 てたのはサーバ 側 の 処 理 なので クライアント(ブラウザ)から 見 ると /RadioButtonServlet2 に 接 続 されたままに なっています この 点 を 確 認 したら 動 作 を 確 認 しました と 記 述 して 提 出 して 下 さい 90

処 理 を 転 送 する(forward する)のは サーブレットだけではなく JSP に 対 しても 行 え ます 上 と 同 じ 処 理 を 今 度 は JSP を 転 送 先 として 行 ってみましょう 以 下 の 手 順 にしたが って 作 成 してください 1 RadioButtonServlet2.java を 次 のように 修 正 します 下 線 部 が 修 正 箇 所 です <RadioButtonServlet2.java> public class RadioButtonServlet2 extends HttpServlet { String Sex=request.getParameter("Sex"); RequestDispatcher dispatcher; if(sex.equals("dansei")) { request.getrequestdispatcher("/input/dansei.jsp"); else { request.getrequestdispatcher("/input/josei.jsp"); dispatcher.forward(request, response); 2 input ディレクト 内 に 次 の dansei.jsp を 作 成 します radiobutton2.jsp を 別 名 保 管 して 修 正 しても 結 構 です <dansei.jsp> <%@page contenttype="text/html; charset=windows-31j"%> <HTML> <HEAD> <TITLE> 男 性 専 用 ページ</TITLE> </HEAD> <BODY> <H2> 男 性 専 用 ページ</H2> ようこそ 男 性 専 用 ページへ </BODY> </HTML> 3 dansei.jsp を 別 名 保 管 して josei.jsp を 作 成 します 修 正 内 容 は 男 性 専 用 ペー 91

ジ という 部 分 を 女 性 専 用 ページ に 変 更 することです 基 礎 課 題 7-3 作 成 したら 表 示 結 果 を 確 認 して 下 さい 表 示 結 果 を 確 認 したら 正 常 に 表 示 されました と 記 述 して 提 出 して 下 さい 7-2.リクエスト 属 性 の 追 加 前 節 では 入 力 パラメータを 受 け 取 ったサーブレットでは 出 力 表 示 の 処 理 をサーブレ ットあるいは JSP に 割 り 当 てる という 作 業 のみを 行 っていました 本 節 では サーブレ ットにおいて 新 たな 情 報 (データ)を 付 加 してから 処 理 を 割 り 当 てる 方 法 を 学 習 します 作 成 するのは 次 のような Web アプリケーションです 性 別 と 共 に 年 齢 を 入 力 する 成 年 未 成 年 に 関 するメッセージが 加 わる 以 下 の 手 順 にしたがって 基 礎 課 題 7-3 で 作 成 した Web アプリケーションを 修 正 し この Web アプリケーションを 作 成 してください 1 radiobutton2.jsp を 修 正 して radiobutton3.jsp として 別 名 保 管 してください 下 線 部 が 修 正 箇 所 です <%@page contenttype="text/html; charset=windows-31j"%> <HTML> <BODY> <H2>ラジオボタンからの 入 力 </H2> 性 別 を 選 び 年 齢 を 入 力 して 下 さい<br> <FORM ACTION="../RadioButtonServlet3" METHOD="POST"> <INPUT TYPE="RADIO" NAME="Sex" VALUE="Dansei"> 男 性 <INPUT TYPE="RADIO" NAME="Sex" VALUE="Josei"> 女 性 <br> 年 齢 <INPUT TYPE="TEXT" NAME="Age" ><br> <INPUT TYPE="SUBMIT" VALUE=" 送 信 "> <INPUT TYPE="RESET"> </FORM> </BODY> </HTML> 92

2 RadioButtonServlet2.java を 次 のように 修 正 して RadioButtonServlet3.java として 別 名 保 管 してください 下 線 部 と 枠 線 部 が 修 正 および 挿 入 箇 所 です <RadioButtonServlet3.java> public class RadioButtonServlet3 extends HttpServlet { String Sex=request.getParameter("Sex"); 挿 入 部 分 int Age=Integer.parseInt(request.getParameter("Age")); String Message=""; if(age>=20) { Message="あなたは 成 年 ですね "; else { Message="あなたは 未 成 年 ですね "; 下 の 解 説 参 照 request.setattribute("agemessage", Message); 解 説 RequestDispatcher dispatcher; if(sex.equals("dansei")) { request.getrequestdispatcher("/input/dansei3.jsp"); else { request.getrequestdispatcher("/input/josei3.jsp"); dispatcher.forward(request, response); setattribute( データ 名,データの 値 )という 形 式 で request にデータを 登 録 できます Attribute は 属 性 という 意 味 です ですから setattribute()によって request に 登 録 されているデータをリクエスト 属 性 と 言 います 93

3 dansei.jsp を 次 のように 修 正 して dansei3.jsp として 別 名 保 管 してください <%@page contenttype="text/html; charset=windows-31j"%> <HTML> <HEAD> <TITLE> 男 性 専 用 ページ</TITLE> </HEAD> <BODY> <H2> 男 性 専 用 ページ</H2> ようこそ 男 性 専 用 ページへ<br> <% String Message=(String) request.getattribute("agemessage"); %> <%= Message %> この 形 で AgeMassage というリクエスト </BODY> </HTML> 型 キャストが 必 要 今 の 場 合 は 文 字 列 型 へ 属 性 を 受 け 取 る <dansei3.jsp> 挿 入 部 分 4 dansei3.jsp を 修 正 して josei3.jsp として 別 名 保 管 してください 修 正 内 容 は 男 性 専 用 ページ の 部 分 を 女 性 専 用 ページ へ 変 更 することです 5 最 後 に web.xml に 次 のように RadioButtonServlet3 関 連 部 分 を 加 えます <web.xml> <web-app> 追 加 部 分 のみを 記 述 <servlet> <servlet-name>radiobuttonservlet3</servlet-name> <servlet-class>input.radiobuttonservlet3</servlet-class> </servlet> <servlet-mapping> <servlet-name>radiobuttonservlet3</servlet-name> <url-pattern>/radiobuttonservlet3</url-pattern> </servlet-mapping> </web-app> 基 礎 課 題 7-4 作 成 したら 表 示 結 果 を 確 認 して 下 さい 表 示 結 果 を 確 認 したら 正 常 に 表 示 されました と 記 述 して 提 出 して 下 さい 94

リクエスト 属 性 の 受 け 渡 しは サーブレットに 対 しても 行 えます そこで 確 認 のため に 今 度 はサーブレットへリクエスト 属 性 を 渡 しましょう 以 下 の 手 順 にしたがって 基 礎 課 題 7-4 で 作 成 した Web アプリケーションを 修 正 する 形 で 作 成 してください 1 RadioButtonServlet3.java を 次 のように 修 正 してください 下 線 部 が 修 正 箇 所 です <RadioButtonServlet3.java> public class RadioButtonServlet3 extends HttpServlet { String Sex=request.getParameter("Sex"); int Age=Integer.parseInt(request.getParameter("Age")); String Message=""; if(age>=20) { Message="あなたは 成 年 ですね "; else { Message="あなたは 未 成 年 ですね "; request.setattribute("agemessage", Message); RequestDispatcher dispatcher; if(sex.equals("dansei")) { request.getrequestdispatcher("/danseiservlet3"); else { request.getrequestdispatcher("/joseiservlet3"); dispatcher.forward(request, response); 2 次 のように DanseiServlet.java を 次 のように 修 正 して DanseiServlet3.java と 別 名 保 管 してください 下 線 部 と 枠 線 部 が 挿 入 箇 所 です getattribute()メソッド の 用 い 方 は JSP の 場 合 と 同 様 ですから 意 味 は 分 かると 思 います 95

<DanseiServlet3.java> public class DanseiServlet3 extends HttpServlet { response.setcontenttype("text/html;charset=windows-31j"); String AgeMessage= (String)request.getAttribute("AgeMessage"); PrintWriter out=response.getwriter(); out.println("<html>"); out.println("<head>"); out.println("<title> 男 性 専 用 ページ</TITLE>"); out.println("</head>"); out.println("<body>"); out.println("<h2> 男 性 専 用 ページ</H2>"); out.println("ようこそ 男 性 専 用 のページへ<br>"); out.println(agemessage); out.println("<body>"); out.println("</html>"); 3 DanseiServlet3.java を 修 正 して JoseiServlet3.java と 別 名 保 管 してください 修 正 は 男 性 専 用 ページ と 記 述 している 部 分 を 女 性 専 用 ページ に 変 更 する 事 で す 4 最 後 に web.xml に 次 ページのように Danseiservlet3 および JoseiServlet3 に 関 する 記 述 を 加 えてください 基 礎 課 題 7-5 作 成 したら 表 示 結 果 を 確 認 して 下 さい 表 示 結 果 を 確 認 したら 正 常 に 表 示 されました と 記 述 して 提 出 して 下 さい 96

<web.xml> <web-app> 追 加 部 分 のみを 記 述 <servlet> <servlet-name>danseiservlet3</servlet-name> <servlet-class>input.danseiservlet3</servlet-class> </servlet> <servlet> <servlet-name>joseiservlet3</servlet-name> <servlet-class>input.joseiservlet3</servlet-class> </servlet> <servlet-mapping> <servlet-name>danseiservlet3</servlet-name> <url-pattern>/danseiservlet3</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>joseiservlet3</servlet-name> <url-pattern>/joseiservlet3</url-pattern> </servlet-mapping> </web-app> 7-3.インクルード(include)の 利 用 前 節 まで 学 習 したフォワード(forward)では 結 果 の 出 力 を 全 て 他 のサーブレットや JSP に 委 ねていました ところが 場 合 によっては 処 理 を 委 ねたサーブレット(JSP)と 分 担 して 呼 び 出 し 元 のサーブレットでも 結 果 の 出 力 を 行 いたい 場 合 があります そのような 場 合 フォワード(forward)ではなく インクルード(include)メソッドを 用 います 本 節 ではその 例 を 学 習 しましょう 作 成 する Web アプリケーションの 動 作 は 次 の 通 りです インクルード 先 で 表 示 インクルード 元 で 表 示 97

以 下 の 手 順 にしたがって Web アプリケーションを 作 成 してください 1 RadioButtonServlet3.java を 次 のように 修 正 してください 下 線 部 が 修 正 あるいは 挿 入 箇 所 です <RadioButtonServlet3.java> public class RadioButtonServlet3 extends HttpServlet { response.setcontenttype("text/html;charset=windows-31j"); String Sex=request.getParameter("Sex"); int Age=Integer.parseInt(request.getParameter("Age")); String Message=""; if(age>=20) { Message="あなたは 成 年 ですね "; else { Message="あなたは 未 成 年 ですね "; request.setattribute("agemessage", Message); RequestDispatcher dispatcher; if(sex.equals("dansei")) { request.getrequestdispatcher("/danseiservlet3"); else { request.getrequestdispatcher("/joseiservlet3"); forward()を include()に 変 更 dispatcher.include(request, response); PrintWriter out=response.getwriter(); out.println("<p> 規 約 を 守 って 本 ページを 利 用 して 下 さい </p>"); include()にすると 転 送 先 の 出 力 結 果 にこ こでの 表 示 結 果 を 加 える 事 が 可 能 になる 基 礎 課 題 7-6 作 成 したら 表 示 結 果 を 確 認 して 下 さい 規 約 を 守 って というメッセージが 新 たに 表 示 されたことを 確 認 したら 正 常 に 表 示 されました と 記 述 して 提 出 して 下 さい 98

7-4.リダイレクト(redirect)の 利 用 多 くの Web サイトでは URL が 変 更 になった 場 合 に それとは 知 らずにユーザが 旧 URL に 接 続 した 時 に 自 動 的 に 新 URL に 誘 導 するようになっています このときには リ ダイレクト(redirect)というメソッドが 用 いられています forward()メソッドでも 画 面 を 移 動 させることができますが 少 し 仕 組 みが 異 なります そこで 以 下 に forward()メソッ ドとの 違 いを 整 理 しておきましょう 1 p.90 の 基 礎 課 題 7-2 で 確 認 したように forward()メソッドの 場 合 は 転 送 先 の URL がクライアント(ブラウザ)に 表 示 されません 2 一 方 redirect()メソッドではクライアント(ブラウザ)を 所 定 のアドレスに 誘 導 する ので URL に 転 送 先 URL が 表 示 されます 3 また forward()メソッドを 用 いた 場 合 は request 属 性 や 入 力 パラメータを 転 送 先 に 引 き 継 ぐことができますが リダイレクトは 一 切 引 き 継 ぎません 4 したがって そのようなデータを 引 き 継 ぐ 必 要 のない 状 況 で 画 面 遷 移 を 行 いたい 場 合 に redirect()メソッドを 用 います 本 節 では redirect()メソッドを 用 いる 例 として 次 のように 入 会 資 格 のないユーザの 場 合 利 用 できない 旨 を 告 げるお 断 りのページに 誘 導 する 場 合 を 考 えましょう ここでは 会 員 資 格 を 男 女 共 に 13 年 齢 <60 としています リダイレクト 先 が 表 示 される 次 の 手 順 にしたがって この Web アプリケーションを 作 成 してください 1 RadioButtonServlet3.java を 次 ページのように 修 正 してください 枠 線 部 が 新 たに 挿 入 した 部 分 です ポイントは 次 の 通 りです redirect()メソッドは response オブジェクトに 所 属 しており redirect( 移 動 先 URL)の 形 で 用 います request.getcontextpath()メソッドは Web アプリケーションのルートパス を 求 めるメソッドです( 今 の 場 合 は /WebAppli ) 99

<RadioButtonServlet3.java> public class RadioButtonServlet3 extends HttpServlet { response.setcontenttype("text/html;charset=windows-31j"); String Sex=request.getParameter("Sex"); int Age=Integer.parseInt(request.getParameter("Age")); if(age<13 Age>=60) { response.sendredirect( request.getcontextpath()+"/input/warn.html" ); String Message=""; 挿 入 部 分 dispatcher.include(request, response); PrintWriter out=response.getwriter(); out.println("<p> 規 約 を 守 って 本 ページを 利 用 して 下 さい </p>"); 2 input フォルダ 内 に 次 のように Warn.html を 作 成 してください 以 前 に 作 成 し た JSP を 別 名 保 管 して 修 正 しても 結 構 です <HTML> <HEAD> <TITLE> 会 員 資 格 審 査 のページ</TITLE> </HEAD> <BODY> 申 し 訳 ありません あなたには 会 員 資 格 がありません </BODY> </HTML> <Warn.html> 基 礎 課 題 7-7 作 成 したら 表 示 結 果 を 確 認 して 下 さい 会 員 資 格 を 満 たしていない 年 齢 を 入 力 した 場 合 に p.99 のようなお 断 りのページが 出 ること そして URL がリダイレクト 先 になっている ことを 確 認 してください 確 認 したら 正 常 に 表 示 されました と 記 述 して 提 出 して 下 さい 100

7-5. 応 用 課 題 応 用 課 題 7-A - 基 礎 課 題 7-7 の 改 良 基 礎 課 題 7-7 で 作 成 した Web アプリケーシ ョンは 入 力 パラメータに 対 するチェックを 行 っ ていません そのため 最 初 の 画 面 で 次 のように 性 別 を 選 ばない あるいは 年 齢 を 記 入 せずに[ 送 信 ]ボタンをクリックすると エラーが 生 じてし まいます そこで きちんと 入 力 しなかった 場 合 は エラー 画 面 に 跳 んで 再 入 力 を 促 すように RadioButtonServlet3.java を 改 良 しましょう 作 成 する Web アプリケーションの 動 作 内 容 は 次 の 通 りです 101

1 RadioButtonServlet3.java を 次 のように 修 正 します 枠 線 部 は 追 加 部 分 です <RadioButtonServlet3.java> public class RadioButtonServlet3 extends HttpServlet { response.setcontenttype("text/html;charset=windows-31j"); String Sex=request.getParameter("Sex"); RequestDispatcher dispatcher2; String Error=""; lengh()メソッドは 文 字 列 の 長 さを 返 します この 値 が 0 の 場 合 は 文 字 列 が 空 っぽと いうことです if( Sex==null ) { 性 別 を 選 んでいない 場 合 のメッセージ Error=" 性 別 を 選 択 して 下 さい <br>"; if(request.getparameter("age").length()==0 ) { Error=Error+" 年 齢 を 入 力 して 下 さい "; 年 齢 を 入 力 していなかった 場 合 のメッセージ if(error.length()>0) { エラーメッセージが 存 在 する 場 合 の 処 理 request.setattribute("errmessage", Error); dispatcher2= request.getrequestdispatcher("/input/error.jsp"); dispatcher2.forward(request, response); else { エラーメッセージが 存 在 しない 場 合 の 処 理 従 来 の 処 理 int Age=Integer.parseInt(request.getParameter("Age")); if(age<13 Age>=60) { response.sendredirect( request.getcontextpath()+"/input/warn.html"); String Message=""; out.println("<p> 規 約 を 守 って 本 ページを 利 用 して 下 さい </p>"); 102

2 エラーメッセージを 表 示 する JSP error.jsp を input フォルダ 内 に 作 成 します <%@page contenttype="text/html; charset=windows-31j"%> <HTML> <HEAD> <error.jsp> <TITLE>エラーメッセージ</TITLE> </HEAD> <BODY> <H2>エラーメッセージ</H2> 入 力 エラーがあります <br> <p> <% String Error=(String) request.getattribute("errmessage"); %> <%= Error %> </p> もう 一 度 入 力 し 直 して 下 さい <A HREF="<%=request.getContextPath()%>/input/radiobutton3.jsp"> 入 力 ページ</A> </BODY> </HTML> 作 成 したら A) 性 別 を 選 んでない 場 合 ( 年 齢 は 入 力 ) B) 年 齢 を 入 力 していない 場 合 ( 性 別 は 選 択 ) C) 性 別 年 齢 いずれも 入 力 していない 場 合 の3つのケースについて 結 果 を 表 示 したブラウザ 画 面 のハードコピーをとり それぞれ Ouyou7_A_1.gif Ouyou7_A_2.gif Ouyou7_A_3.gif という 名 称 で 保 管 して 提 出 してください 103