Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数据库到jsp视图页的用户名和密码验证_Java_Javascript_Jsp_Servlets - Fatal编程技术网

Java 从数据库到jsp视图页的用户名和密码验证

Java 从数据库到jsp视图页的用户名和密码验证,java,javascript,jsp,servlets,Java,Javascript,Jsp,Servlets,如果从数据库检索到的用户名和密码不正确,那么我希望在jsp页面本身上显示错误,而不是重新定向到另一个页面 现在,如果用户名和密码无效,我将显示来自验证servlet的消息。如何使用javascript或任何其他工具在前端向jsp视图显示消息 以下是我的登入表格: <form id="loginform" class="form-horizontal" name="myForm" method="POST" action="ValidateLoginServlet2.do" onSubmit

如果从数据库检索到的用户名和密码不正确,那么我希望在jsp页面本身上显示错误,而不是重新定向到另一个页面

现在,如果用户名和密码无效,我将显示来自验证servlet的消息。如何使用javascript或任何其他工具在前端向jsp视图显示消息

以下是我的登入表格:

<form id="loginform" class="form-horizontal" name="myForm" method="POST" action="ValidateLoginServlet2.do" onSubmit="return validateLogin()">
    <input type="text" class="form-control" name="uname" placeholder="username">                                        
    <input id="login-password" type="password" class="form-control" name="pwd" placeholder="password">
    <input type="submit" value="Login" href="#" class="btn btn-success" />
</form>

在验证登录servlet的else部分,输入以下代码:

if(result.next()){
    response.sendRedirect("LoginSuccessful.jsp");
}
else{
  HttpSession session = request.getSession();
  session.setAttribute("wrong_uname_pass", "1");
  response.sendRedirect("index.jsp");
}
并将下面的代码放在index.jsp的第一部分(或者您的登录表单在哪里)


警报(“错误的用户名或密码”);
您可以使用
元素显示从
servlet请求中获得的错误消息,以下是JSP页面:

<form id="loginform" class="form-horizontal" name="myForm" method="POST" action="ValidateLoginServlet2.do" onSubmit="return validateLogin()">
    <input type="text" class="form-control" name="uname" placeholder="username">                                        
    <input id="login-password" type="password" class="form-control" name="pwd" placeholder="password">
    <input type="submit" value="Login" href="#" class="btn btn-success" />
    <span style="color:red;">${errMsg}</span>
</form>
为了防止在成功登录的if块中的下一次登录时显示相同的错误,您可以按如下方式重置
ErrMsg

if(result.next()) {
    response.sendRedirect("LoginSuccessful.jsp");
}else{
    request.setAttribute("errMsg", "username and password are incorrect");
    // The following will keep you in the login page
    RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
    rd.forward(request, response); 
}
request.setAttribute("errMsg", "");

我真的希望您在将这些密码存储在数据库中或与DB值进行比较之前对它们进行加密…它们必须加密吗?如果是,那怎么办?。你能给我一个提示或链接吗。谢谢,如果客户端浏览器中禁用了cookie怎么办?我按你说的那样尝试了,但它不起作用:/代码的第二部分到哪里去了?它必须在脚本标记中,对吗?@kittu是的,它必须在脚本标记中,请现在检查答案。如您所述,其他部分将被重新定向到登录页面,但是视图上没有显示错误消息page@kittu那么,只需尝试一下
${errMsg}
而不必像这样:
${errMsg}
if(result.next()) {
    response.sendRedirect("LoginSuccessful.jsp");
}else{
    request.setAttribute("errMsg", "username and password are incorrect");
    // The following will keep you in the login page
    RequestDispatcher rd = request.getRequestDispatcher("/login.jsp");
    rd.forward(request, response); 
}
request.setAttribute("errMsg", "");