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

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

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

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

サーブレット

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

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

5233閲覧

取得したセッション情報をログとして出力させたい

ypk

総合スコア80

JSP

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

サーブレット

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

セッション

Sessionはクライアントがサーバに送ったすべてのリクエストのことを指します。

ログイン

ログインは、ユーザーがコンピューターシステムにアクセスするプロセスの事を呼びます。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2020/06/30 00:19

編集2020/06/30 00:57

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

現在、Login.javaにて、ログインの成功時にEclipseのコンソールにUserDAOにて取得した情報を出力させたいと考えています。

出力させたい情報は以下の通りです。

DAO

1 info.setloginid("000014");//loginidの値 2 info.setadmin(0);//管理者フラグの値 3 info.setname("tarou");//名前 4 5上記3つの情報をセッション変数userに格納し、それをLogin.javaにて「上記3つの情報を取得できている」ということをログで示したいと考えています

イメージとしては、以下の写真のように

イメージ説明

outActionLog メソッドに、ログに出力したい内容を引数として渡すことで、ログ出力ができたらと考えています。

しかし、取得したセッション情報を、ログにどうやって出力をすればよいのかがわかりません。

どなたかお力を貸していただけると嬉しいです。

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

▼過去の質問
https://teratail.com/questions/273094

Login

errorMessage

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4<% request.setCharacterEncoding("UTF-8"); %> 5<% String dbConnectionError = (String)request.getAttribute("dbConnectionError"); %> 6 7 8<!DOCTYPE html> 9<html> 10<head> 11<meta charset="UTF-8"> 12<title>Insert title here</title> 13</head> 14<body> 15 16 <% if(dbConnectionError != null){ %> 17 <p><font color="red"><%= dbConnectionError %></font></p> 18 <%} %> 19 20</body> 21</html>

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_logo_font"> 18<p>書籍管理システムログイン</p> 19</div> 20</div> 2122<hr> 23</header> 24 <body> 25 26 <% 27 LoggerTester lt = new LoggerTester(); 28 lt.outActionLog("login.jsp", "処理開始"); 29 %> 30 31 <div class="body"> 32 <div class="content"> 33 <div align="center"> 34 <table border="0"> 35 <form action="Login" method="POST"> 36 37 <div class="break"> 38 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 39 </div> 40 41 <div class="break"> 42 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 43 </div> 44 45 <center> 46 <% if(loginErrorMessage != null){ %> 47 <p><font color="red"><%= loginErrorMessage %></font></p> 48 <%} %> 49 </center> 50 <div class="break"> 51 <font color="#fff">空欄作成のために使用。画面に映りません。</font> 52 </div> 53 54 <p>ユーザーID 55 <input class="center" type="text" name="user_id" value="" size="24"> 56 <p>パスワード 57 <input class="center" type="password" name="password" value="" size="24"> 58 <br><br> 59 <input class="login" type="submit" name="login" value="ログイン"></div> 60 61 62 </form> 63 </table> 64 65 </div> 66 </div> 67 </div> 68 </body> 69 70<footer> 71<hr> 72 73</div> 74</html>

DAO

1package dao; 2 3import java.io.Serializable; 4import java.sql.SQLException; 5 6public class UserDAO implements Serializable { 7 8 //アクセサメソッド 9 private String _loginid; 10 private String _userpassword; 11 private int _admin; 12 private String _name; 13 14 public void setloginid(String loginid) { 15 this._loginid = loginid; 16 } 17 public String getloginid() { 18 return this._loginid; 19 } 20 21 public void setuserpassword(String userpassword) { 22 this._userpassword = userpassword; 23 } 24 public String getuserpassword() { 25 return this._userpassword; 26 } 27 28 public void setadmin(int admin) { 29 this._admin = admin; 30 } 31 public int getadmin() { 32 return this._admin; 33 } 34 35 public void setname(String name) { 36 this._userpassword = name; 37 } 38 public String getname() { 39 return this._name; 40 } 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) && "aaaaa".equals(userpassword)) { 51 52 ArrayList<UserDAO> user = new ArrayList<UserDAO>(); 53 54 UserDAO info = new UserDAO(); 55 info.setloginid("000014"); 56 info.setadmin(0); 57 info.setname("tarou"); 58 user.add(info); 59 60 // 戻り値の設定 61 return user; 62 63 64 }else { 65 66 return null; 67 68}

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

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

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

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

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

dodox86

2020/06/30 00:36

「ログを出力」とは、どこに出力されたいのでしょう。標準エラー出力?(たいてい、WEBサーバーのエラーログ)、データベース?、ローカルのファイル? log4jを使って、とか? 様々な出力先、方法があります。
ypk

2020/06/30 00:59

ご指摘ありがとうございます。 ご提示いただいた中ですと、今回私が出力をしたい場所は標準エラー出力に該当すると思います。outActionLog メソッドに、ログに出力したい内容を引数として渡すことで、ログ出力がEclipseの写真のコンソールのようにログの出力ができたらと思いました。
dodox86

2020/06/30 02:15

Eclipseのコンソールは分かりませんが、標準エラー出力であれば、 System.err.println("標準エラー出力に出したい文字列"); で出てくると思います。サーブレットであればたいていエラーログに出力される内容です。
ypk

2020/06/30 02:39

ありがとうございます。 やってみます
guest

回答1

0

ベストアンサー

サーブレットには標準で log(出力する文字列) や log(出力する文字列, throwable)の機能がありますので、こちらを使うことも可能かと。

(logメソッドは サーブレットの親クラスである GenericServlet に実装されています )

logメソッドをそのまま使うと、出力したサーブレットクラス名が必ず出ますので、それを回避する場合は、

java

1getServletContext().log(...)

が使えます。

ただしいずれもサーブレット(ないしはJSP)のみで使えるものです。

投稿2020/06/30 03:55

A-pZ

総合スコア12011

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

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

ypk

2020/06/30 04:19

ありがとうございます。 log("user"); というソースコードを追加した結果、 情報: exam.Login: user [火 6月 30 13:14:40 JST 2020] というログがコンソールに出力されました。 なお、私の認識では、このuserには以下のセッション情報が格納されているものと認識しています。 info.setloginid("000014"); info.setadmin(0); info.setname("tarou"); つまり、userの中身である、「上記3つの情報が格納されている」ということがログの出力で確認ができると嬉しいのですが、そういったことは可能でしょうか。可能でしたらどのようにすればよいのでしょうか。 お手数をおかけしますが、どうぞよろしくお願いいたします。
A-pZ

2020/06/30 12:46

logの中身には文字列を格納しますので、log(user)とした場合は、UserクラスがtoString()にて出力したい内容を記述します。なお、EclipseなどのIDEからtoString()メソッドを自動生成した方が間違いはありません。
ypk

2020/07/01 02:09

ご丁寧にありがとうございます。 どうぞよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問