ログイン失敗時に、メッセージをアラートで表示させたい

実現したいこと

ログイン画面でIDとパスワードを入力し、ログインボタンを押した際、IDかパスワードに誤りがあった場合、「IDかパスワードが間違っています」とアラートで表示させたいです。(誤りがある場合は画面は遷移しません。=ログイン画面のまま)
IDとパスワードはデータベースで照合する形です。
サーブレット、JSP、HTML、JavaScriptを使ってこれを実現させたいです。

発生している問題・分からないこと

「ログイン画面でIDとパスワードを入力し、ログインボタンを押すと、IDとパスワードがデータベースと照合され、誤りがある場合は画面遷移しない。」という設定はできたのですが、その際に「IDかパスワードが間違っています」というアラートを表示させることができません。

該当のソースコード

LoginServlet

1package servlet; 2 3import java.io.IOException; 4 5import javax.servlet.RequestDispatcher; 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 model.Login; 14import model.LoginLogic; 15 16@WebServlet("/LoginServlet") 17public class LoginServlet extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 20 protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ 21 //フォワード 22 RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/login.jsp"); 23 dispatcher.forward(request, response); 24 } 25 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 26 //リクエストパラメータの取得 27 request.setCharacterEncoding("UTF-8"); 28 String shain_id = request.getParameter("shain_id"); 29 String password = request.getParameter("password"); 30 31 //ログイン処理の実行 32 Login login = new Login(shain_id,password); 33 LoginLogic bo = new LoginLogic(); 34 boolean result = bo.execute(login); 35 36 //ログイン処理の成功、失敗によって処理を分岐 37 if(result) {//ログイン成功 38 //セッションスコープにIDを保存 39 HttpSession session = request.getSession();//セッションスコープの取得 40 session.setAttribute("shain_id", shain_id); 41 42 session.setAttribute("errorMsg", "IDかパスワードが間違っています。"); 43 44 //フォワード 45 RequestDispatcher dispatcher = request.getRequestDispatcher("WEB-INF/list.jsp"); 46 dispatcher.forward(request, response); 47 }else{//ログイン失敗 48 49 //リダイレクトでログイン画面(トップ)まで戻る 50 response.sendRedirect("LoginServlet"); 51 52 } 53 } 54}

login.jsp

login.js

試したこと・調べたこと

上記の詳細・結果

調べたところ、サーブレットに「session.setAttribute("errorMsg", "IDかパスワードが間違っています。");」と書き、JSPで「<span class="label label-danger">${message}</span>」と書き、この文章を取得するというやり方が出てきたので、外部にあるJavaScriptファイルに自分なりにアレンジして、

else if(inputCode.value != true || inputPw.value != true){
alert(errorMsg);
}

と書いてみましたがアラートは表示されず、JSPに直接

<span>${message}</span>

とも書いてみましたがメッセージも表示させることができませんでした。

補足

外部JavaScriptファイルに書いてアラートとして表示させる、というやり方はありますでしょうか?もしあればそちらのやり方を教えていただけると助かります。無いようでしたら他のやり方を教えていただきたいです。
拙い説明ですが、何卒よろしくお願いいたします。

コメントを投稿

0 コメント