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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

servlet

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

解決済

【jsp&Servlet】DBから取得しているはずの値が表示されない

nyan_engineer
nyan_engineer

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

servlet

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

1回答

0評価

0クリップ

4095閲覧

投稿2018/11/01 12:44

編集2022/01/12 10:58

#はじめに
いつもお世話になっております。
現在、jsp/Servlet/MySQLを使って
ログイン機能を持つ社員管理リストを作成しています。

MySQL8.0
Tomcat7

#困ったこと
ServletでDBから値を取得し、jspに投げて表示させたいのですが
値が出てきません。。(エラーはなく、問題なくページ遷移できています)

#皆様にお聞きしたいこと
なぜ表示されないのか、ご教授願いたいです。
作成したDaoクラス、Beansクラス、Servletクラス、Jspファイルを載せておきます。
宜しくお願い致します。

EmployeeListServlet

package servlet; import java.io.IOException; import java.util.List; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import model.EmployeeList; import model.GetEmployeeListLogic; /** * Servlet implementation class LoginServlet */ @WebServlet("/EmployeeListServlet") public class EmployeeListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //社員リストを取得して、リクエストスコープに保存 GetEmployeeListLogic getEmployeeListLogic = new GetEmployeeListLogic(); List<EmployeeList> employeeList = getEmployeeListLogic.execute(); request.setAttribute("employeeList", employeeList); //フォワード RequestDispatcher dispatcher = request.getRequestDispatcher("/WEB-INF/jsp/loginOK.jsp"); dispatcher.forward(request, response); } }

EmployeeListDao

package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import model.EmployeeList; public class EmployeeListDAO { private final String DRIVER_NAME = "com.mysql.jdbc.Driver"; private final String JDBC_URL = "jdbc:mysql://localhost:3306/kadai?characterEncoding=UTF-8&serverTimezone=JST&useSSL=false"; private final String DB_USER = "root"; private final String DB_PASS = "naoto7010"; Connection conn = null; List<EmployeeList> empList = new ArrayList<EmployeeList>(); public List<EmployeeList> findAll(){ //ドライバの読み込み try { Class.forName(DRIVER_NAME); conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS); String sql = "SELECT EMPLOYEE_ID, NAME, NAME_HIRAGANA FROM EMPLOYEE_INFO"; PreparedStatement pStmt = conn.prepareStatement(sql); //SELECTを実行 ResultSet rs = pStmt.executeQuery(); //SELECT文の結果をArrayListに格納 while(rs.next()) { int employee_id = rs.getInt("EMPLOYEE_ID"); String name = rs.getString("NAME"); String name_hiragana = rs.getString("NAME_HIRAGANA"); EmployeeList employeeList = new EmployeeList(employee_id,name,name_hiragana) ; empList.add(employeeList); } }catch(SQLException e){ e.printStackTrace(); }catch(ClassNotFoundException e) { e.printStackTrace(); }finally { //データベース切断 if(conn != null) { try { conn.close(); }catch(SQLException e) { e.printStackTrace(); return null; } } } return empList; } }

GetEmployeeListLogic

package model; import java.util.List; import dao.EmployeeListDAO; public class GetEmployeeListLogic { public List<EmployeeList> execute(){ EmployeeListDAO dao = new EmployeeListDAO(); List<EmployeeList> employeeList = dao.findAll(); return employeeList; } }

EmployeeList

package model; import java.io.Serializable; public class EmployeeList implements Serializable{ private int employee_id; private String name; private String name_hiragana; public EmployeeList() { } public EmployeeList(int employee_id, String name, String name_hiragana) { this.employee_id = employee_id; this.name = name; this.name_hiragana = name_hiragana; } public int getNumber() { return employee_id; } public String getName() { return name; } public String getName_hiragana() { return name_hiragana; } public void setNumber(int employee_id) { this.employee_id = employee_id; } public void setName(String name) { this.name = name; } public void setName_hiragana(String name_hiragana) { this.name_hiragana = name_hiragana; } }

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>社員データ</title> </head> <body> 社員データを表示 <br> <table> <tr> <th>No</th> <th>名前</th> <th>ひらがな</th> </tr> <c:forEach items="${empList}" var="empList"> <tr> <td><c:out value="${empList.employee_id}" /></td> <td><c:out value="${empList.name}" /></td> <td><c:out value="${empList.name_hiragana}" /></td> </tr> </c:forEach> </table> </body> </html>

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

m.ts10806
m.ts10806

2018/11/01 13:25

jspのコードも記載してください。またサーブレット側のコードでList<EmployeeList>がきちんと想定通りの情報が受け取れているかはデバッグされましたか?
nyan_engineer
nyan_engineer

2018/11/01 13:42

コード記載しました。失礼いたしました。情報は受け取れております。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

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

Java

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

servlet

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