これを試しましたが、リダイレクトのみのメッセージは表示されません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");
}
このようなメッセージを表示することは可能ですか?もしそうなら、私は間違っていますか?
あなたはおそらくこれをするかもしれません:
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>");
}
Jspにリダイレクトすることもできますが、表示するメッセージを渡すことができます。
request.setAttribute("loginError","Incorrect password");
次に、jspで:
<c:if test="${not empty loginError}">
<script>
window.addEventListener("load",function(){
alert("${loginError}");
}
</script>
</c:if>
空ではない構文により、パラメーターの存在を確認できます
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);
サーブレットから、通常どおりに別のjspにリダイレクトし、jspの「onload」イベントでjavascript関数を呼び出して、必要なアラートを提供します。