1 / 13

QuestionnairTool の開発

QuestionnairTool の開発 . 中村太一. QuestionnairTool. アンケート製作者は Web 上からアンケートを生成( HTML )する。 アンケート回答者は Web 上からアンケートに回答する アンケートの設問、回答は全て DataBase に登録される。 DB+Servlet+JSP で開発。

ira
Download Presentation

QuestionnairTool の開発

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. QuestionnairToolの開発 中村太一

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

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

  4. Menu 1アンケートの製作者を選択 Menu 2 どのアンケートに答えるか選択 Qstnn アンケート に回答 Save保存、終了 回答用Webページ • 「回答者」 • <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で表示 ORServletでグラフを生成。 <Save>変更内容を表示して保存してよいかの確認を求める。 < Authentication > 認証userの特定 新規 <NewAcount> 新規Userの登録 既存User < List > そのUserの作ったアンケートの一覧表示 [結果表示] 「編集」 「新規」 から選ぶ <Edit> 選択したアンケートの編集 <NewQstnn>新規に製作 <Result> 選択したアンケートの結果を見る <Save> 確認と保存

  6. JSPの制御 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” • アンケートの名前、製作者、製作日時、対象、説明などの入った “Questionnairs” • アンケート内の個々の質問を収める “Questions”。 • アンケート(個々の質問ではない)回を回答した人の情報、答えたアンケート、日時などを収める“Responces”テーブル • 個々の質問の回答を収める“Answers”テーブル。

  8. Users テーブルの構成 Questionnairs Responses Questions Answers

  9. Repository データベースを操作する全てのメソッドを提供 p.264Repository データベースを操作する全てのメソッドを提供 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. MSG:新規登録します name pass Pass(確認 Ok Authentication (認証) Authentication.jsp Newacount.jsp name 新規 pass 新規 Ok すでに使われている パスワード違い アンケートの一覧表示

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

  12. HTMLの生成 JSP(QuestionnairHTML.jsp) Servlet SessionBean ・UserBean ・QuestionnairBean -int ID -int makerID -String title -String target -String comment -String date ・Vector( QuestionBean ) -int ID -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にデータを渡してクライアント側で図を描画する。 • エクセル形式で出力する ・・・など。

More Related