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

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

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

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

servlet

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

Q&A

解決済

1回答

936閲覧

ログインが成功しているにもかかわらず、DAOにて取得した情報がログとして出力されない

ypk

総合スコア80

JSP

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

Java

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

サーブレット

サーブレット(Servlets)とはウェブやアプリケーションサーバー上に動くプログラムのことであり、ウェブブラウザや他のHTTPクライエントとデータベースやHTTPサーバー上のアプリケーションの中間層としての働きをします。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

servlet

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

0グッド

0クリップ

投稿2020/06/30 06:16

編集2020/06/30 06:28

初めまして。
現在サーブレットの学習をしているものです。

login.jspを実行し、以下のユーザーIDとパスワード

・ユーザーID:000014
・パスワード:aaaaaa

を入力してログインボタンを押下したのち、BookManagementListDisp.javaに遷移しログにDAOにセットした以下の情報を出力したいと思っています。

info.setloginid("000014"); info.setadmin(1); info.setname("tarou");

ログにて、DAOにて取得したユーザーIDと管理者フラグ、そしてユーザー名を出力したいと考えているのですが、どういうわけかログの出力が以下のようになってしまいます。

#現在の私のログ

情報: モジュール名:UserDAO.java メッセージ : userで取得したユーザーID:null [火 6月 30 14:58:11 JST 2020]
情報: モジュール名:UserDAO.java メッセージ : userで取得した管理者フラグ :0 [火 6月 30 14:58:11 JST 2020]
情報: モジュール名:UserDAO.java メッセージ : userで取得したユーザー名 :null [火 6月 30 14:58:11 JST 2020]

イメージ説明

#出力したいログ

情報: モジュール名:UserDAO.java メッセージ : userで取得したユーザーID:000014 [火 6月 30 14:58:11 JST 2020]
情報: モジュール名:UserDAO.java メッセージ : userで取得した管理者フラグ :1 [火 6月 30 14:58:11 JST 2020]
情報: モジュール名:UserDAO.java メッセージ : userで取得したユーザー名 :tarou [火 6月 30 14:58:11 JST 2020]

以下、私のソースコードです。
もし何か、気になる箇所などございましたら教えていただけると嬉しいです。

どうぞよろしくお願いいたします。

#現在の私のソースコード

DAO

1package dao; 2 3import java.io.Serializable; 4import java.sql.SQLException; 5import java.util.ArrayList; 6 7public class UserDAO implements Serializable { 8 9 //アクセサメソッド 10 private String _loginid; 11 private String _userpassword; 12 private int _admin; 13 private String _name; 14 15 public void setloginid(String loginid) { 16 this._loginid = loginid; 17 } 18 public String getloginid() { 19 return this._loginid; 20 } 21 22 public void setuserpassword(String userpassword) { 23 this._userpassword = userpassword; 24 } 25 public String getuserpassword() { 26 return this._userpassword; 27 } 28 29 public void setadmin(int admin) { 30 this._admin = admin; 31 } 32 public int getadmin() { 33 return this._admin; 34 } 35 36 public void setname(String name) { 37 this._name = name; 38 } 39 public String getname() { 40 return this._name; 41 } 42 43 44 //セットした情報を取得 45 public ArrayList<UserDAO> selectUser(String loginid, String userpassword) 46 throws ClassNotFoundException,SQLException{ 47 48 49 50 if("000014".equals(loginid) && "aaaaaa".equals(userpassword)) { 51 52 ArrayList<UserDAO> user = new ArrayList<UserDAO>(); 53 54 UserDAO info = new UserDAO(); 55 info.setloginid("000014"); 56 info.setadmin(1); 57 info.setname("tarou"); 58 59 user.add(info); 60 61 // 戻り値の設定 62 return user; 63 64 65 }else { 66 67 return null; 68 } 69 70} 71}

JSP

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ page import="exam.LoggerTester" %> 4<% request.setCharacterEncoding("UTF-8"); %> 5<% String loginErrorMessage = (String)request.getAttribute("loginErrorMessage"); %> 6<!DOCTYPE html> 7<html> 8 <head> 9 <meta charset="UTF-8"> 10 <title>書籍管理システム-<ログイン></title> 11 <link rel="stylesheet" href="header.css"> 12 </head> 13 14<div class="container"> 15 <header> 1617<div class="header"> 18 19<div class="header_logo_font"> 20<p>書籍管理システムログイン</p> 21</div> 22</div> 2324<hr> 25</header> 26 <body> 27 28 <% 29 LoggerTester lt = new LoggerTester(); 30 lt.outActionLog("login.jsp", "処理開始"); 31 %> 32 33 <div class="body"> 34 <div class="content"> 35 <div align="center"> 36 <table border="0"> 37 <form action="Login" method="POST"> 38 39 <div class="break"> 40 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 41 </div> 42 43 <div class="break"> 44 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 45 </div> 46 47 <center> 48 <% if(loginErrorMessage != null){ %> 49 <p><font color="red"><%= loginErrorMessage %></font></p> 50 <%} %> 51 </center> 52 <div class="break"> 53 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 54 </div> 55 56 <p>ユーザーID 57 <input class="center" type="text" name="loginid" value="" size="24"> 58 <p>パスワード 59 <input class="center" type="password" name="userpassword" value="" size="24"> 60 <br><br> 61 <input class="login" type="submit" name="login" value="ログイン"></div> 62 63 64 </form> 65 </table> 66 67 </div> 68 </div> 69 </div> 70 </body> 71 72</div> 73</html>

Login

BookManagementListDisp

1package exam; 2 3import java.io.IOException; 4import java.io.PrintWriter; 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 dao.UserDAO; 13 14@WebServlet("/BookManagementListDisp") 15 16public class BookManagementListDisp extends HttpServlet { 17 public void doPost(HttpServletRequest request, HttpServletResponse response) 18 throws ServletException, IOException { 19 20 21 22 LoggerTester lt = new LoggerTester(); 23 24 25// リクエストで受け取る文字列符号化方式を指定 26 request.setCharacterEncoding("UTF-8"); 27 28 response.setContentType("text/html; charset=UTF-8"); 29 30 PrintWriter out = response.getWriter(); 31 32 UserDAO user = new UserDAO(); 33 34 //MemberBeanのgetterの呼び出し、値の取得 35 String loginid = user.getloginid(); 36 int admin = user.getadmin(); 37 String name = user.getname(); 38 39 lt.outActionLog("UserDAO.java", "userで取得したユーザーID:"+loginid); 40 lt.outActionLog("UserDAO.java", "userで取得した管理者フラグ :"+admin); 41 lt.outActionLog("UserDAO.java", "userで取得したユーザー名 :"+name); 42 43 44 out.println("BookManagementListDispの遷移に成功しました"); 45 46} 47 48}

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

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

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

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

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

guest

回答1

0

ベストアンサー

UserDAO user = new UserDAO(); //MemberBeanのgetterの呼び出し、値の取得 String loginid = user.getloginid(); int admin = user.getadmin(); String name = user.getname();

この取得では当然ですが、何が問題ですか?
設定したインスタンスで出力してください

投稿2020/06/30 06:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ypk

2020/06/30 06:31

ご回答ありがとうございます。 知識不足で申し訳ないのですが、 >設定したインスタンスで出力してください という箇所について、もう少し詳しく教えていただくことは可能でしょうか? どうぞよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2020/06/30 06:34

> session.setAttribute("user", user); set してるのだから get してやればいいだけ
dodox86

2020/06/30 06:38 編集

根本的な部分の理解をされていない(あるいは誤解している)恐れが。UserDAO user = new UserDAO(); では、UserDAOのコンストラクタでインスタンスの生成をしただけです。
ypk

2020/06/30 06:47 編集

皆さんありがとうございます。 UserDAO user = new UserDAO(); //MemberBeanのgetterの呼び出し、値の取得 String loginid = user.getloginid(); int admin = user.getadmin(); String name = user.getname(); の部分を HttpSession session = request.getSession(); List<UserDAO> user = (List<UserDAO>session.getAttribute("user")); と書き換えてみました。 こういう意味でしょうか、、、、? ちなみにこのままだと、赤波線が出てきてしまいます。 お手数をおかけしますが、引き続きよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2020/06/30 06:50

List<UserDAO> は UserDAO ではなく List ですから・・・ Listから取り出すか UserDAO で設定する等対応しましょう
ypk

2020/06/30 06:57

package exam; import java.io.IOException; import java.io.PrintWriter; import java.util.List; 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 javax.servlet.http.HttpSession; import dao.UserDAO; @WebServlet("/BookManagementListDisp") public class BookManagementListDisp extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { LoggerTester lt = new LoggerTester(); // リクエストで受け取る文字列符号化方式を指定 request.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); List<UserDAO> user = (List<UserDAO>)session.getAttribute("user"); for(UserDAO u : user) { lt.outActionLog("UserDAO.java", "userで取得したユーザーID:"+u.getloginid()); lt.outActionLog("UserDAO.java", "userで取得した管理者フラグ :"+u.getadmin()); lt.outActionLog("UserDAO.java", "userで取得したユーザー名 :"+u.getname()); } out.println("BookManagementListDispの遷移に成功しました"); } } ---- BookManagementListDisp.javaを上記のように記述してみたところ、無事にログが出力されました。ありがとうございました。今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問