web-dev-qa-db-ja.com

サーブレットからjspにアラートを表示してから、別のjspにリダイレクトするにはどうすればよいですか?

これを試しましたが、リダイレクトのみのメッセージは表示されませんlogin.jsp

<form method="post" action="Login_Servlet" >
  <input name="idUsuario" type="text"/>
  <input  name="password" type="password" />
  <button type="submit">Entrar</button>
</form>

Login_Servlet

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String userid= request.getParameter("idUser");        
String password = request.getParameter("password");
Login_Service login_Service = new Login_Service();
boolean result = login_Servicio.aut(userid, password);
Usuario user = login_Servicio.getUsuariosByUsuario(userid);
    if(result == true){
       request.getSession().setAttribute("user", user);            
       response.sendRedirect("vistas/Inicio.jsp");
    }
     else{
       out.println("<script type=\"text/javascript\">");
       out.println("alert('User or password incorrect');");
       out.println("</script>");
       response.sendRedirect("index.jsp");    
    }

このようなメッセージを表示することは可能ですか?もしそうなら、私は間違っていますか?

3
Xaul Omar Tobar

あなたはおそらくこれをするかもしれません:

else
{
   out.println("<script type=\"text/javascript\">");
   out.println("alert('User or password incorrect');");
   out.println("location='index.jsp';");
   out.println("</script>");
}

編集:20th 2018年3月08:19IST

[〜#〜]または[〜#〜]jsを使用せずに

else {
   out.println("<meta http-equiv='refresh' content='3;URL=index.jsp'>");//redirects after 3 seconds
   out.println("<p style='color:red;'>User or password incorrect!</p>");
}
13
user2575725

Jspにリダイレクトすることもできますが、表示するメッセージを渡すことができます。

request.setAttribute("loginError","Incorrect password");

次に、jspで:

 <c:if test="${not empty loginError}">
    <script>
    window.addEventListener("load",function(){
         alert("${loginError}");
    }
    </script>
</c:if>

空ではない構文により、パラメーターの存在を確認できます

2
Si Kelly
response.setContentType("text/html");
PrintWriter pw=response.getWriter();
pw.println("<script type=\"text/javascript\">");
pw.println("alert('Invalid Username or Password');");
pw.println("</script>");
RequestDispatcher rd=request.getRequestDispatcher("userlogin.jsp");
rd.include(request, response);
1
Raju Irale

サーブレットから、通常どおりに別のjspにリダイレクトし、jspの「onload」イベントでjavascript関数を呼び出して、必要なアラートを提供します。

0
Hemant Rai