从Servlet显示错误消息到JSP页面,而无需重新加载页面

时间:2018-10-23 19:32:14

标签: java html validation jsp servlets

我在JSP文档上有一个用于用户登录的HTML表单,并将用户的输入发送到Servlet,针对数据库检查密码,然后将用户重定向到新页面(如果正确)或在屏幕上显示错误消息页面“密码错误”不正确。 我希望错误消息与“密码”输入字段下方的表单显示在同一页面上。我已经尝试过下面的代码,但是它仍然将我重定向到一个新页面,在该页面中仅显示“错误密码”消息。 还有其他方法吗? 预先谢谢你。

// SERVLET CODE

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

            //Some code to check if the password matches the one in the DB and redirects to another page.

                } else {

                String text = "Incorrect Password!";

               response.setContentType("text/plain"); 
               response.setCharacterEncoding("UTF-8"); 
               response.getWriter().write(text); 


                }

            }

        }

// JSP页面

<!DOCTYPE html>
<html>
<head>
 <script>
$('#sButton').click(function() {
       $.post('UserServlet', function(responseText) {
              $('#msg').text(responseText);   
           });
     });
 </script>
<title>User Log in</title>
<%@ include file="PageHeader.html" %>
</head>
<body>
<form action = "SomeServlet" method="POST">
<h3 >Enter detailsto Sign In</h3><br>
Email: <input type="text" name="email" required><br>
Password: <input type="password" name="password" required><br>
<input type="submit" name="submit" value="Sign in">
<div style="color:red" id="msg"></div>
</form>
</body>
</html>

根据我的理解,该错误消息应该出现在同一页面上,但是它只会打开一个新页面,仅显示该消息,而不显示html表单。

0 个答案:

没有答案