javascript - 来自 servlet 的警报返回空白页

标签 javascript java jsp servlets

我有一个带有登录 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/

相关文章:

javascript - 图片路径问题

JavaHTTPServer 在 (html) 按钮上单击获取 (html) 文本框的内容

java - 尝试为 LWJGL 运行此 java 测试命令时,我做错了什么?

java - TeamCity:此处不允许使用脚本元素 jsp:declaration、jsp:expression、jsp:scriptlet

jsp - Tomcat 吞下 SQLException

html - 如何在页面加载后将 html 数据和文本输出到页面。之前没有

javascript - 将元素添加到 DOM 后,它不会运行相同的功能

javascript - 通过angularjs登录时MVC更新 ` __RequestVerificationToken` token

java - 如何在Worklight的客户端代码上使用java?

java - Netbeans 平台应用程序中的 FileChooserBuilder 丢失?