初めまして。
現在Javaのサーブレットを勉強しているものです。
前回の質問に続きです。
https://teratail.com/questions/273760#reply-390689
現在、下記のソースコードにて、ドライバを作成して意図的にLogin.javaの例外処理を発生させようとしています。
しかし、どのようなソースコードを書いたドライバで例外処理を発生させればよいかが分かりません。
ちなみにDAOはDBに接続していません。接続していませんが、
request.setAttribute("dbConnectionError", "データベース接続にエラーが発生しました。"); getServletContext().getRequestDispatcher("/errorMessage.jsp").forward(request, response);
を発生させたいと考えています。
もし何か、ご存知の方がいらっしゃいましたら教えていただけると嬉しいです。丸投げに近い質問で申し訳ございません。
どうぞよろしくお願いいたします。
#例外処理を発生させたいソースコード
Login
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 try { 28 29 // Servlet 初期化パラメータ情報 30 String loginid = request.getParameter("loginid"); 31 String userpassword = request.getParameter("userpassword"); 32 33 34 //ユーザーIDまたはパスワードが未入力の時点でlogin.jspにエラーを返す 35 if(loginid == null || userpassword == null) { 36 37 request.setAttribute("loginErrorMessage","入力内容に誤りがあります。"); 38 getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 39 40 } else { 41 42 //ユーザーIDとパスワードの検索 43 UserDAO dao = new UserDAO(); 44 ArrayList<UserDAO> user = dao.selectUser(loginid, userpassword); 45 46 //if (request.getParameter("username") == un){ 47 if (user != null) { 48 49 HttpSession session = request.getSession(); 50 session.setAttribute("user", user); 51 52 53 getServletContext().getRequestDispatcher("/BookManagementListDisp").forward(request, response); 54 55 }else { 56 57 request.setAttribute("loginErrorMessage","入力内容に誤りがあります。"); 58 getServletContext().getRequestDispatcher("/login.jsp").forward(request, response); 59 60 61 } 62 63 } 64 65// DBエラーの場合、エラーメッセージをリクエストに登録し、エラー画面にフォワード 66 }catch(Exception e){ 67 68 request.setAttribute("dbConnectionError", "データベース接続にエラーが発生しました。"); 69 getServletContext().getRequestDispatcher("/errorMessage.jsp").forward(request, response); 70 71 } 72 73} 74 75} 76
#付随するソースコード
DAO
1package dao; 2 3import java.io.Serializable; 4import java.sql.SQLException; 5import java.util.ArrayList; 6 7import exam.LoggerTester; 8 9public class UserDAO implements Serializable { 10 11 //アクセサメソッド 12 private String _loginid; 13 private String _userpassword; 14 private int _admin; 15 private String _name; 16 17 public void setloginid(String loginid) { 18 this._loginid = loginid; 19 } 20 public String getloginid() { 21 return this._loginid; 22 } 23 24 public void setuserpassword(String userpassword) { 25 this._userpassword = userpassword; 26 } 27 public String getuserpassword() { 28 return this._userpassword; 29 } 30 31 public void setadmin(int admin) { 32 this._admin = admin; 33 } 34 public int getadmin() { 35 return this._admin; 36 } 37 38 public void setname(String name) { 39 this._name = name; 40 } 41 public String getname() { 42 return this._name; 43 } 44 45 46 //セットした情報を取得 47 public ArrayList<UserDAO> selectUser(String loginid, String userpassword) 48 throws ClassNotFoundException,SQLException{ 49 50 51 52 if("00014".equals(loginid) && "aiueo".equals(userpassword)) { 53 54 ArrayList<UserDAO> user = new ArrayList<UserDAO>(); 55 56 UserDAO info = new UserDAO(); 57 info.setloginid("00014"); 58 info.setadmin(0); 59 info.setname("aiueo"); 60 61 user.add(info); 62 63 // 戻り値の設定 64 return user; 65 66 67 }else { 68 69 return null; 70 } 71 72} 73} 74コード
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/07 08:07
2020/07/07 08:17
2020/07/07 08:27