【问题标题】:How to show alert in a jsp from a servlet and then redirect to another jsp?如何在来自 servlet 的 jsp 中显示警报,然后重定向到另一个 jsp?
【发布时间】:2014-06-12 04:55:08
【问题描述】:

我试过了,但不显示仅重定向的消息 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");    
    }

是否可以显示这样的消息?如果是这样,我做错了吗?

【问题讨论】:

  • 您声明了 login_Service 但使用了 login_servicio,这是不是打错字了?
  • 本身就是一个错误我去发了 没事boolean result = login_Service.aut(userid, password);Usuario user = login_Service.getUsuariosByUsuario(userid);

标签: java jsp servlets alert


【解决方案1】:

你可能会这样做:

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

已编辑:2018 年 3 月 20 日 IST 08:19

不使用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>");
}

【讨论】:

  • 我会尝试这种方式,如果我不这样做,我会尝试使用 ajax,但现在的问题是我如何重定向到另一个 jsp 以具有相同的行为我会尝试这种方式,如果我不这样做我将尝试使用 ajax 但现在的问题是我如何重定向到另一个 jsp 以具有相同的行为 response.sendRedirec();
【解决方案2】:

您可以重定向到您的 jsp,但传递要显示的消息:

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

然后在jsp中:

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

非空语法允许检查参数是否存在

【讨论】:

  • 我必须说我不认为用户真的喜欢一直有警报,可能最好在页面上显示一条消息。
【解决方案3】:
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);

【讨论】:

    【解决方案4】:

    像你一样从 Servlet 重定向到另一个 jsp,然后在 jsp“onload”事件上调用一个 javascript 函数,它会给你你需要的警报.....

    【讨论】:

    • 所以我得到了它,但是如果有人重新加载页面或再次给我返回并且消息应该不再出现
    猜你喜欢
    • 1970-01-01
    • 2012-08-29
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多