我有一个带有登录 servlet 的登录页面,如果用户输入错误的凭据,则会发出警报:
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<script type=\"text/javascript\">");
out.println("alert('User or password incorrect, please try again');");
out.println("</script>");
out.println("</head>");
out.println("</html>");
警报工作正常,但警报后,它给出一个带有链接的空白页面:
http://localhost:8080/AWSCustomerJavaWebFinal/LoginServlet
对此可能的解决方案是什么,以便在警报之后,页面保留在login.jsp上或在警报之后转发到login.jsp,而不是前进到登录servlet,我尝试了请求调度程序,但随后它没有显示警报并再次移至login.jsp。
最佳答案
基本思想是,当您将表单发布到 servlet 时,servlet 将验证数据。如果失败,servlet 将向 session 添加一个属性并重定向回 jsp 页面,否则它将重定向到主页
在所有情况下,JSP都会检查此 session 属性,如果不存在,则表示正常(首先尝试登录),否则表示之前已尝试过但失败,并且会显示错误。
如果您确实想要警报,请使用此 session 属性的值设置一个隐藏字段(带有 html id)。 Javascript(onLoad/ready)将检查此 html 元素并在必要时显示警报。
关于javascript - 来自 servlet 的警报返回空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34194274/