こんにちは。
現在Servletの学習をしているものです。
現在、ServletにてDAOで例外処理(データベースエラーが発生した、など)が起きた時にそれをサーブレット側のログ出力で確認できたらと考えています。
サーブレット側に、DAOで発生した例外処理を受け取り、何かしらのログを出力させられるソースコードを記述できたらと考えているのですが何か良いアイデアのある方いらっしゃいますでしょうか。
拙い質問でございますので、質問に対する修正も大歓迎です。
どうぞよろしくお願いいたします。
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> 16 17<div class="header"> 18 19<div class="header_logo_font"> 20<p>書籍管理システムログイン</p> 21</div> 22</div> 23 24<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>
Servlet
1package exam; 2 3import java.io.IOException; 4import java.util.ArrayList; 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; 11import javax.servlet.http.HttpSession; 12 13import dao.UserDAO; 14 15@WebServlet("/Login") 16public class Login extends HttpServlet { 17 18 public void doPost(HttpServletRequest request, HttpServletResponse response) 19 throws ServletException, IOException { 20 21 22 23 LoggerTester lt = new LoggerTester(); 24 25 lt.outActionLog("Login", "処理開始"); 26 27 28 // Servlet 初期化パラメータ情報 29 String loginid = request.getParameter("loginid"); 30 String userpassword = request.getParameter("userpassword"); 31 32 33 //ユーザーIDまたはパスワードが未入力の時点でlogin.jspにエラーを返す 34 if(loginid == null || userpassword == null) { 35 36 request.setAttribute("loginErrorMessage","入力内容に誤りがあります。"); 37 getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 38 39 } else { 40 41 //ユーザーIDとパスワードの検索 42 UserDAO dao = new UserDAO(); 43 ArrayList<UserDAO> user = dao.selectUser(loginid, userpassword); 44 45 //if (request.getParameter("username") == un){ 46 if (user != null) { 47 48 HttpSession session = request.getSession(); 49 session.setAttribute("user", user); 50 51 52 getServletContext().getRequestDispatcher("/BookManagementListDisp").forward(request, response); 53 54 }else { 55 56 request.setAttribute("loginErrorMessage","入力内容に誤りがあります。"); 57 getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 58 59 60 } 61 62 } 63 64 65} 66 67} 68
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}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/25 01:02