質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Q&A

解決済

1回答

2466閲覧

jspでリンク先にデータ送信

kk12345

総合スコア3

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

0グッド

1クリップ

投稿2020/05/27 03:12

前提・実現したいこと

検索結果の画面(book_serch.jsp)の
<a href="<%=request.getContextPath()%>/jsp/select/list.jsp">一覧表示に戻る</a>
を押すと、list.jspに戻りデータベースの全件検索の結果を表示したいのですが、何も表示されません。
データが何も送られていないからだと思うのですが、調べてもどうすればいいか分からないので
ご教授お願いします。

※わかりやすいように、jspのソースコードの最初にファイル名と何の処理をしているか
記述しました。実際のソースコードには書いてありません。

該当のソースコード

jsp

1 2index.jsp(ログイン画面) 3 4<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 5<% String errorMsg = (String) request.getAttribute("errorMsg"); %> 6<!DOCTYPE html> 7<html lang="ja"> 8 <head> 9 <meta charset="UTF-8"> 10 <link href="<%=request.getContextPath()%>/css/style.css" rel="stylesheet" type="text/css" /> 11 <title>ログイン画面</title> 12 </head> 13 14 <body> 15 <%@include file="/jsp/common/header.jsp"%> 16 17 <div id="main"> 18 <p>ユーザーIDとパスワードを入力してください。</p> 19 20 <form action="<%=request.getContextPath()%>/login" method="post" > 21 <%if (errorMsg != null ) { %> 22 <p><%= errorMsg %></p> 23 <% } %> 24 ユーザーID:<input type="text" name="bookUserId" ><br> 25 パスワード:<input type="password" name="password"><br> 26 27 <input type="submit" value="ログイン"> 28 </form> 29 </div> 30 31 <%@include file="/jsp/common/footer.jsp"%> 32 </body> 33</html>

servlet

1package jp.co.sss.book.servlet; 2 3import java.io.IOException; 4 5import javax.servlet.ServletException; 6import javax.servlet.annotation.WebServlet; 7import javax.servlet.http.HttpServlet; 8import javax.servlet.http.HttpServletRequest; 9import javax.servlet.http.HttpServletResponse; 10import javax.servlet.http.HttpSession; 11 12import jp.co.sss.book.bean.BookUser; 13import jp.co.sss.book.dao.BookUserDAO; 14 15/** 16 * ログイン用サーブレット 17 * 18 * @author system_shared 19 */ 20@WebServlet(urlPatterns = {"/login"}) 21public class Login extends HttpServlet { 22 23 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 24 25 int idMax = 5; 26 int passwordMax = 16; 27 28 String bookUserId = request.getParameter("bookUserId"); 29 String password = request.getParameter("password"); 30 31 BookUser bookUser = BookUserDAO.findByUserIDAndPassword(bookUserId, password); 32 33 if (bookUserId.length() > idMax || password.length() > passwordMax) { 34 request.setAttribute("errorMsg", "ユーザID、またはパスワードが間違っています"); 35 request.getRequestDispatcher("jsp/index.jsp").forward(request, response); 36 } 37 38 if (bookUser != null) { 39 HttpSession session = request.getSession(); 40 session.setAttribute("bookUser", bookUser); 41 request.getRequestDispatcher("/BookList").forward(request, response); 42 43 } else { 44 request.setAttribute("errorMsg", "ユーザID、またはパスワードが間違っています"); 45 request.getRequestDispatcher("jsp/index.jsp").forward(request, response); 46 } 47 48 } 49} 50

jsp

1 2list.jsp(書籍名、ジャンル検索画面とテーブル全件表示) 3 4<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 5<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 6<%@ page import="jp.co.sss.book.servlet.Login" %> 7<!DOCTYPE html> 8<html lang="ja"> 9 10 <head> 11 <meta charset="UTF-8"> 12 <link href="<%=request.getContextPath()%>/css/style.css" rel="stylesheet" type="text/css" /> 13 <title>書籍一覧画面</title> 14 <%@include file="/jsp/common/header.jsp"%> 15 </head> 16 17 <body> 18 19 <div id="main"> 20 21 <form action="<%=request.getContextPath() %>/BookSerch" method="post"> 22 書籍名:<input type="text" name="bookName"> 23 <input type="submit" value="検索"> 24 </form> 25 26 <form action="<%=request.getContextPath() %>/GenreSerch" method="post"> 27 ジャンル名:<select name="genre"> 28 <option value="1" selected>文学</option> 29 <option value="2">経済</option> 30 <option value="3">技術</option> 31 </select> 32 <input type="submit" value="検索"> 33 </form> 34 35 <table> 36 <tr> 37 <th>書籍ID</th> 38 <th>書籍名</th> 39 <th>著者</th> 40 <th>発行日</th> 41 <th>在庫</th> 42 <th>ジャンル名</th> 43 </tr> 44 45 <c:forEach var="book" items="${bookList}"> 46 <tr> 47 <td><c:out value="${book.bookId}"/></td> 48 <td><c:out value="${book.bookName}" /></td> 49 <td><c:out value="${book.author}" /></td> 50 <td><c:out value="${book.publicationDate}" /></td> 51 <td><c:out value="${book.stock}" /></td> 52 <td><c:out value="${book.genre.genreName}" /></td> 53 </tr> 54 </c:forEach> 55 </table> 56 </div> 57 <%@include file="/jsp/common/footer.jsp"%> 58 </body> 59</html>

java

1package jp.co.sss.book.dao; 2 3import java.sql.Connection; 4import java.sql.PreparedStatement; 5import java.sql.ResultSet; 6import java.sql.SQLException; 7import java.util.ArrayList; 8import java.util.List; 9 10import jp.co.sss.book.bean.Book; 11import jp.co.sss.book.bean.Genre; 12 13public class BookListDao { 14 15 public static List<Book> findAll(){ 16 17 Connection con = null; 18 PreparedStatement ps = null; 19 ResultSet rs = null; 20 21 List<Book> bookList = new ArrayList<Book>(); 22 23 try { 24 con = DBManager.getConnection(); 25 26 String sql = "SELECT * FROM book b INNER JOIN genre g ON b.genre_id = g.genre_id ORDER BY b.BOOK_ID"; 27 ps = con.prepareStatement(sql); 28 rs = ps.executeQuery(); 29 while(rs.next()) { 30 Book book = new Book(); 31 book.setBookId(rs.getInt("book_id")); 32 book.setBookName(rs.getString("book_name")); 33 book.setAuthor(rs.getString("author")); 34 book.setPublicationDate(rs.getDate("publication_date")); 35 book.setStock(rs.getInt("stock")); 36 37 Genre genre = new Genre(); 38 genre.setGenreId(rs.getInt("genre_id")); 39 genre.setGenreName(rs.getString("genre_name")); 40 41 book.setGenre(genre); 42 bookList.add(book); 43 } 44 }catch (SQLException e) { 45 e.printStackTrace(); 46 } finally { 47 DBManager.close(rs); 48 DBManager.close(ps); 49 DBManager.close(con); 50 } 51 return bookList; 52 } 53} 54

jsp

1 2book_serch.jsp(書籍名検索の結果表示) 3 4<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 5<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 6<%@ page import="jp.co.sss.book.bean.Book" %> 7<%@ page import="jp.co.sss.book.servlet.BookSerch" %> 8<% String errorMsg = (String) request.getAttribute("errorMsg"); %> 9<!DOCTYPE html> 10<html lang="ja"> 11 <head> 12 <meta charset="UTF-8"> 13 <link href="<%=request.getContextPath()%>/css/style.css" rel="stylesheet" type="text/css" /> 14 <title>書籍一覧画面</title> 15 </head> 16 17 <body> 18 <%@include file="/jsp/common/header.jsp"%> 19 20 <form action="<%=request.getContextPath() %>/BookSerch" method="post"> 21 書籍名:<input type="text" name="bookName"> 22 <input type="submit" value="検索"> 23 </form> 24 25 <form action="<%=request.getContextPath() %>/GenreSerch" method="post"> 26 ジャンル名:<select name="genre"> 27 <option value="1" selected>文学</option> 28 <option value="2">経済</option> 29 <option value="3">技術</option> 30 </select> 31 <input type="submit" value="検索"> 32 </form> 33 34 <div id="main"> 35 <table> 36 <tr> 37 <th>書籍ID</th> 38 <th>書籍名</th> 39 <th>筆者</th> 40 <th>発行日</th> 41 <th>在庫</th> 42 <th>ジャンル</th> 43 </tr> 44 45 <c:forEach var="book" items="${bookSerch}"> 46 <tr> 47 <td><c:out value="${book.bookId}" /></td> 48 <td><c:out value="${book.bookName}" /></td> 49 <td><c:out value="${book.author}" /></td> 50 <td><c:out value="${book.publicationDate}" /></td> 51 <td><c:out value="${book.stock}" /></td> 52 <td><c:out value="${book.genre.genreName}" /></td> 53 54 </tr> 55 </c:forEach> 56 </table> 57 <%if ( errorMsg != null ) { %> 58 <p class="error"><%= errorMsg %></p> 59 <% } %> 60 <a href="<%=request.getContextPath()%>/jsp/select/list.jsp">一覧表示に戻る</a> 61 </div> 62 <%@include file="/jsp/common/footer.jsp"%> 63 </body> 64</html>

servlet

1package jp.co.sss.book.servlet; 2 3import java.io.IOException; 4import java.util.List; 5 6import javax.servlet.ServletException; 7import javax.servlet.annotation.WebServlet; 8import javax.servlet.http.HttpServlet; 9import javax.servlet.http.HttpServletRequest; 10import javax.servlet.http.HttpServletResponse; 11 12import jp.co.sss.book.bean.Book; 13import jp.co.sss.book.dao.BookSerchDao; 14 15 16@WebServlet("/BookSerch") 17public class BookSerch extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 21 22 String bookName = (String)request.getParameter("bookName"); 23 24 List<Book> bookSerch = BookSerchDao.findByBookName(bookName); 25 26 if (bookSerch.isEmpty()){ 27 request.setAttribute("errorMsg", "該当する書籍は存在しません"); 28 request.getRequestDispatcher("/jsp/select/book_serch.jsp").forward(request, response); 29 return; 30 }else { 31 32 request.setAttribute("bookSerch", bookSerch); 33 } request.getRequestDispatcher("/jsp/select/book_serch.jsp").forward(request, response); 34 } 35}

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

はずしてたらごめんなさい。

list.jsp 自体では、データベースの検索をしていないように見受けられるので

java

1List<Book> bookList = BookSerchDao.findAll(); 2request.setAttribute("bookList", bookList); 3request.getRequestDispatcher("/jsp/select/list.jsp").forward(request, response);

を行うような Servlet を介す必要があるのではないでしょうか?

※エラー処理は省略しています。

投稿2020/05/28 22:20

Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問