Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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 在输入错误的用户名和/或密码时,如何将用户从登录控件重定向到错误页面?_Java_Javascript_Html - Fatal编程技术网

Java 在输入错误的用户名和/或密码时,如何将用户从登录控件重定向到错误页面?

Java 在输入错误的用户名和/或密码时,如何将用户从登录控件重定向到错误页面?,java,javascript,html,Java,Javascript,Html,我创建了一个登录表单,当我使用正确的用户名和密码登录时,它工作正常。 当我输入错误的用户名或密码时,我想弹出一条错误消息或错误页面。 这意味着控制器会将给定用户名与数据库中的所有用户名进行比较,如果未找到给定用户名,则应显示错误消息或错误页面 如何使用HTML或JavaScript实现这一点?有没有办法在servlet中创建简单的错误消息?但是我需要重新加载页面 用户名 密码 如果您忘记了密码,请输入您的密码。 SearchServlet.java Login.java 在此之后: Prin

我创建了一个登录表单,当我使用正确的用户名和密码登录时,它工作正常。 当我输入错误的用户名或密码时,我想弹出一条错误消息或错误页面。 这意味着控制器会将给定用户名与数据库中的所有用户名进行比较,如果未找到给定用户名,则应显示错误消息或错误页面

如何使用HTML或JavaScript实现这一点?有没有办法在servlet中创建简单的错误消息?但是我需要重新加载页面


用户名
密码

如果您忘记了密码,请输入您的密码。
SearchServlet.java Login.java 在此之后:

PrintWriter out = response.getWriter();
添加->

if (login == null){
   out.println("<html><body>");
   out.println("<center><h1>Login failed, wrong username or password</h1></center>");
   out.println("</body>");
   out.println("<script type='text/javascript'>");
   out.println("function reload() {");
   out.println("setTimeout(function(){");
   out.println("window.location = '"+request.getContextPath()+"/search';}");
   out.println("}, 5000);");
   out.println("reload();");
   out.println("</script>");
   out.println("</html>");
}
if(登录==null){
out.println(“”);
out.println(“登录失败,用户名或密码错误”);
out.println(“”);
out.println(“”);
println(“函数重载(){”);
println(“setTimeout(function(){”);
println(“window.location=”+request.getContextPath()+“/search';}”);
out.println(“},5000);”;
println(“reload();”);
out.println(“”);
out.println(“”);
}
}

但这是一种不好的身份验证方法,您必须编写自己的授权过滤器,这需要大量的冗余代码,而不是使用web容器身份验证机制,请参见

它很容易覆盖,可以添加自定义登录、添加软登录、角色等内容。

在此之后:

PrintWriter out = response.getWriter();
添加->

if (login == null){
   out.println("<html><body>");
   out.println("<center><h1>Login failed, wrong username or password</h1></center>");
   out.println("</body>");
   out.println("<script type='text/javascript'>");
   out.println("function reload() {");
   out.println("setTimeout(function(){");
   out.println("window.location = '"+request.getContextPath()+"/search';}");
   out.println("}, 5000);");
   out.println("reload();");
   out.println("</script>");
   out.println("</html>");
}
if(登录==null){
out.println(“”);
out.println(“登录失败,用户名或密码错误”);
out.println(“”);
out.println(“”);
println(“函数重载(){”);
println(“setTimeout(function(){”);
println(“window.location=”+request.getContextPath()+“/search';}”);
out.println(“},5000);”;
println(“reload();”);
out.println(“”);
out.println(“”);
}
}

但这是一种不好的身份验证方法,您必须编写自己的授权过滤器,这需要大量的冗余代码,而不是使用web容器身份验证机制,请参见


<>很容易重写,可以添加自定义登录,添加软登录,角色,和类似的东西。

什么是代码>登录< /代码>?你能解释吗?你可能只想考虑使用基于容器的安全性,除非这不是一个选项。您可以配置登录页和登录错误页,以及该方法的其他优点。什么是<代码>登录< /代码>?您能解释一下吗?您可能只想考虑使用基于容器的安全性,除非这不是一个选项。您可以配置登录页面和登录错误页面,以及该方法的其他好处。它正在工作,但我需要随此消息重新加载页面。怎么可能呢?在显示消息后,我请求您重新加载页面,我更新了答案,因此在显示错误后,浏览器将在5秒后重定向到/search servlet。该服务正常工作,但我需要与此消息一起重新加载页面。怎么可能呢?我请求您在显示消息后重新加载页面,我更新了答案,因此在显示错误后,浏览器将在5秒钟后重定向到/search servlet
if (login == null){
   out.println("<html><body>");
   out.println("<center><h1>Login failed, wrong username or password</h1></center>");
   out.println("</body>");
   out.println("<script type='text/javascript'>");
   out.println("function reload() {");
   out.println("setTimeout(function(){");
   out.println("window.location = '"+request.getContextPath()+"/search';}");
   out.println("}, 5000);");
   out.println("reload();");
   out.println("</script>");
   out.println("</html>");
}