Presentation is loading. Please wait.

Presentation is loading. Please wait.

QuestionnairToolの開発 中村太一.

Similar presentations


Presentation on theme: "QuestionnairToolの開発 中村太一."— Presentation transcript:

1 QuestionnairToolの開発 中村太一

2 QuestionnairTool アンケート製作者はWeb上からアンケートを生成(HTML)する。
アンケートの設問、回答は全てDataBaseに登録される。 DB+Servlet+JSPで開発。 「JSPによるWeb開発」翔泳社、の第10章FaqToolを参考 URL: 原書のサポートページ(英語)

3 目的のアンケート 生成するアンケート。 Title ・・・・・ JSPで作られるHTML ・ ・ このアンケートの説明とか ・・
Q1: 設問1 A1:回答(チェックボックス、リスト、TextAreaなど) Q2:設問2 A2:回答(チェックボックス、リスト、TextAreaなど) 生成するアンケート。 JSPで作られるHTML Title ( title ) 作成日時 ( date) 説明 ( comment ) 対象とする回答者 ( target ) 設問と解答の選択肢 (複数) 例 Infoseek

4 回答用Webページ 「プログラム」 <Menu1>アンケート製作者のリストをDataBaseから受け取って選択できるようにする。
どのアンケートに 答えるか選択 Qstnn アンケート に回答 Save 保存、 終了 「回答者」 <Menu1>アンケート製作者の一覧(リンクしてある)から選ぶ。 <Menu2> Menu1で選んだ製作者が作ったアンケートの一覧がリンクつきで表示されるので一つ選ぶ <Qstnn> アンケートに答えて「送信ボタン」を押す。 不備があれば、戻される(不備がある部分がマーキングされる)。 <Save> 無事送信されたことを報告する。 「プログラム」 <Menu1>アンケート製作者のリストをDataBaseから受け取って選択できるようにする。 <Menu2>Menu1で選んだ製作者が作ったアンケートの一覧を表示し、選択させる。 <Qestnn>アンケートの本体。Menu2で選んだアンケートの内容をDetaBaseから受けとってHTMLにする。  送信されたアンケートに不備があった場合、その部分をマーキングしてもう一度表示、このとき以前回答者が入力したデータも入れておく。 <Save>登録されたことの報告とか

5 管理用Webページ <Authentication> 認証用ページ。IDとPasswordで個人を特定する。Table”Users”
<NewAcount> 新規UserだったらIDとPassを決めてもらい Table”Users”に追加する。 <List> Userの製作したアンケートが一覧として表示される。(チェックボックスで選択) 「編集」「新規製作」「結果表示」から選ぶ。 <Edit> 既存のアンケートを修正する。製作用ページには修正されるアンケートのデータが反映されていなければならない。 <NewQstnn> 新しくアンケートを作る。 <Result> 集計結果を表示する。グラフなどを出せるといいかも。 Appletで表示 OR Servletでグラフを生成。 <Save> 変更内容を表示して保存してよいかの確認を求める。 < Authentication > 認証 userの特定 既存User 新規 <NewAcount> 新規User の登録 < List > そのUserの作った アンケートの一覧表示 [結果表示] 「編集」 「新規」 から選ぶ <Edit> 選択した アンケート の編集 <NewQstnn> 新規に製作 <Result> 選択した アンケート の結果を見る <Save> 確認と保存

6 Servlet JSPの制御 JSP A JSP B DB Menu.jsp <Commandパターン>
・JSP上のボタンには、それぞれに対応するCommandオブジェクトがServlet内にあり。 CommandオブジェクトはJSPのフォームデータから受け取った情報を元に、DBやSessionを更新したり、次に行くJSPを決定するなどの機能を提供する。 ・これにより、JSPに次のJSPへのリンクを書かないので独立性がたかまり、管理がしやすくなる。 JSP A JSP B buttonA buttonB Servlet buttonAが押されると 起動するCommandA buttonBが押されると 起動するCommandB DB

7 必要なテーブル 1 必要なテーブルは5つ 認証用にアンケート製作者のIDとPassの入っている“Users”
必要なテーブル 1 必要なテーブルは5つ 認証用にアンケート製作者のIDとPassの入っている“Users” アンケートの名前、製作者、製作日時、対象、説明などの入った “Questionnairs” アンケート内の個々の質問を収める “Questions”。 アンケート(個々の質問ではない)回を回答した人の情報、答えたアンケート、日時などを収める“Responces”テーブル 個々の質問の回答を収める“Answers”テーブル。

8 テーブルの構成 Users Questionnairs Responses Questions Answers 名前 型 説明 ID
AutoNo user String 新規製作のときユーザが決める Pass 新規製作のときユーザーが決める Date 登録日時 Questionnairs 名前 説明 ID AutoNo MakerID Int ==Users.ID 製作者のID Title String アンケートのタイトル Target このアンケートに答えるべき人 Commnet コメント、説明 Date 製作日時 Responses 名前 説明 ID AutoNo MakerID Int ==Users.ID Reqstnnr ==Questionnair.ID 答えたアンケート Responder_name String 答えた人の名前 Responder_id 答えた人のID Date 回答日時 Questions 名前 説明 ID AutoNo Parent Int 親 ==Questionnairs.ID Number QuestionNumber 何番目の質問か Question String 質問 opthintype 回答の種類( text, radio, check, menu, list, multiple ) Count 選択肢の数 selections 選択肢の内容 複数はカンマで区切る Answers 名前 説明 ID AutoNo Parent Int 親==Responses.ID Number 何番目か selections String 答え

9 Repository データベースを操作する全てのメソッドを提供 p.264
Tableに対するBeanが5つあるので、Beanごとにクラスを分ける。 必要なmethod:get(単数), get(全て), update, put, remove の5つ UserRepository  のコード Repository UserBean getUser(int id) UserBean[] getAllUsers() QstnnrBean getQstnnr(int id) QstnnrBean[] getAllQstnnr()   ・ ・ 25メソッド QstnnrRepository のコード

10 新規 Authentication (認証) Authentication.jsp Newacount.jsp アンケートの 一覧表示
name pass Ok Pass(確認 MSG:新規登録します name 新規 pass 新規 Ok すでに使われている パスワード違い アンケートの 一覧表示

11 Questionを生成する 下の図はInfoseekのアンケートを見本にしてアンケートの個々の質問(Question)を生成している。 QuestionMaker.jspではJSPのSessionBeanを使ってサーバ上に状態を記憶している。 現在生成中のQuestion その他のQuestion

12 HTMLの生成 JSP(QuestionnairHTML.jsp) Servlet HTML生成例 QnnrViewer.jspの諸要素
SessionBean ・UserBean ・QuestionnairBean -int ID   -int makerID   -String title   -String target   -String comment   -String date ・Vector ( QuestionBean ) -int number -int parent -String question -String optiontype -String[] selections ・その他。 QnnrViewer.jspの諸要素 Title ( title ) 作成日時 ( date) 説明 ( comment ) 対象とする回答者 ( target ) 非表示( id, makerid ) 設問と解答の選択肢 (複数) SessionBeanから HTMLを生成 SessionBeanをロードする Title date, comment, target, JSP側でSessionを読むので特に何もしない でよい。 Q1: 設問1 A1:回答(チェックボックス、TextAreaなど) Q2:設問2 HTML生成例

13 今後の課題 判り易いインターフェース。 セキュリティーを考慮する。
JSP内でfor文やIf文の多用しているので、ラグライブラリなどを使ってロジックと表示を分離させる。 結果を集計して図などを表示するときにどうするか? Servletで図を描画してイメージファイルとしてクライアントに送る。 Appletにデータを渡してクライアント側で図を描画する。 エクセル形式で出力する ・・・など。


Download ppt "QuestionnairToolの開発 中村太一."

Similar presentations


Ads by Google