練習問題

13.8 練習問題

 本章で習った内容をもとに練習問題を解いてください。

問1 次の仕様をもとにデータベースのデータを画面に表示するプログラムを作成しなさい。

画面遷移

実行結果

アプリケーション構成

プログラム仕様
 ①Practice1301servletへアクセスすることで、登録されたデータのIDと名前の情報を一覧画面で表示する。
 ②一覧画面のID情報をクリックすることで、そのIDに関する全てのデータを表示する詳細画面に遷移する。
 ③各サーブレット内で提供されたDTOクラスDAOクラスを利用し、一覧、及び詳細のデータを取得する。
 ④取得されたデータはリクエストスコープへ登録し、JSPへ画面遷移する。
 ⑤PracticeDaoクラスには全てのデータを取得する以下の3つのメソッドを定義する。

 ・ public static Connection getConnection() :データベース接続を行うメソッド
 ・ public ArrayList<PracticeInfo> selectAll() :全てのデータを取得するメソッド
 ・ public PracticeInfo selectById(String id) :1件のデータを取得するメソッド

ソースコード

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch13exercise
③ 名前 :PracticeDao

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch13exercise
③ 名前 :Practice1301Servlet
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :http://localhost:8080/web_basic/Practice1301Servlet

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch13exercise
③ 名前 :PracticeInfo

➢ web.xml
<servlet>
	<servlet-name>Practice1301ServletMapping</servlet-name>
	<servlet-class>ch13exercise.Practice1301Servlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>Practice1301ServletMapping</servlet-name>
	<url-pattern>/Practice1301Servlet</url-pattern>
</servlet-mapping>

① 親フォルダの入力または選択 :web_basic/view/ch13exercise
② ファイル名 :practice1301.jsp
③ アクセスURL :Practice1301servlet.javaからの画面遷移でアクセスされる

① ソース・フォルダ :web_basic/WEB-INF/src
② パッケージ :ch13exercise
③ 名前 :Practice1302Servlet
④ スーパークラス :javax.servlet.http.HttpServlet
⑤ アクセスURL :practice1301.jspからの画面遷移でアクセスされる

➢ web.xml
<servlet>
	<servlet-name>Practice1302ServletMapping</servlet-name>
	<servlet-class>ch13exercise.Practice1302Servlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>Practice1302ServletMapping</servlet-name>
	<url-pattern>/Practice1302Servlet</url-pattern>
</servlet-mapping>

① 親フォルダの入力または選択 :web_basic/view/ch13exercise
② ファイル名 :practice1302.jsp
③ アクセスURL :Practice1302Servletからの画面遷移でアクセスされる

データベース定義

【データベース作成用SQL文】
   CREATE DATABASE practice_web_db;

【テーブル作成用SQL文】
   CREATE TABLE practice_table(
   id VARCHAR(10) PRIMARY KEY,
   name VARCHAR(100),
   price INTEGER,
   author VARCHAR(100),
   comment text
   );

【サンプルデータ登録用SQL文】
   INSERT INTO practice_table VALUES('00001','Javaの本',1500,'ボブ','簡単なJavaのテキストです');
   INSERT INTO practice_table VALUES('00002','サーブレットの本',2000,'ジョン','簡単なサーブレットのテキストです');
   INSERT INTO practice_table VALUES('00003','JSPの本',1000,'ジョン','簡単なJSPのテキストです');


NEXT>> 13.9 練習問題 解答