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

}