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(); } }