DetailServlet.java
[ファイル] DetailServlet.java
[挿入場所] JSPファイルへの遷移処理前
// 入力データの文字コードの指定
request.setCharacterEncoding("UTF-8");
// GET送信データ(ISBN番号)の取得
String isbn = request.getParameter("isbn");
// データベースアクセス用オブジェクトの生成
BookDAO objDao = new BookDAO();
// 指定したISBN番号の書籍データを取得する命令を呼び出し、戻り値を取得する
Book book = objDao.selectByIsbn(isbn);
// 書籍データをリクエストスコープに格納
request.setAttribute("keyBook", book);
detail.jsp
[ファイル] detail.jsp
[挿入場所] <!DOCTYPE html>
の前
<%
// リクエストスコープから書籍データを取得
Book book = (Book)request.getAttribute("keyBook");
%>
[ファイル] detail.jsp
[挿入場所] 書籍情報の<table>
タグと入れ替える
<table>
<tr>
<th>ISBN</th>
<td><%=book.getIsbn()%></td>
</tr>
<tr>
<th>TITLE</th>
<td><%=book.getTitle()%></td>
</tr>
<tr>
<th>価格</th>
<td><%=book.getPrice()%>円</td>
</tr>
</table>
BookDAO.java
[ファイル] BookDAO.java
[挿入場所] selectAll関数の後ろ
/**
* 引数のISBNを基にDBの書籍情報を格納するbookinfoテーブルから該当書籍データの検索をおこなう関数
*
* @param isbn 検索対象のISBN
*
* @return 検索結果の書籍情報のBookオブジェクト
*
* @throws IllegalStateException 関数内部で例外が発生した場合
*/
public Book selectByIsbn(String isbn) {
try {
// DB接続
connect();
// 指定されたISBN番号の書籍データを取得するSQL文を用意
String sql = "SELECT * FROM bookinfo WHERE isbn='" + isbn + "'";
// SQL文を発行し、結果セットを取得
ResultSet rs = executeQuery(sql);
// 書籍データ格納用のBookオブジェクトを生成
Book book = new Book();
// 結果セットから書籍データを取得
if (rs.next()) {
book.setIsbn(rs.getString("isbn"));
book.setTitle(rs.getString("title"));
book.setPrice(rs.getInt("price"));
}
// 呼び出し元へ書籍データを返す
return book;
} catch (Exception e) {
throw new IllegalStateException(e);
} finally {
// DB接続解除
disconnect();
}
}