使用 servlet 在登录页面本身中显示密码错误消息
Display password error message in login page itself using servlet
我想在登录页面的特定<div>
中显示用户名或密码不正确的消息。
这是我的登录.html代码。
<div class="wrapper">
<form class="form-signin" method="POST" action="j_security_check">
<h2 class="form-signin-heading text-center" id="head">Login</h2>
<input type="text" class="form-control" id="txtuser" name="j_username" placeholder="Username" required="required" />
<input type="password" class="form-control" id="txtuser" name="j_password" placeholder="Password" required="required"/>
<div id="error"></div>
<button class="btn btn-lg btn-default btn-block login1" id="txtuser" type="submit"><span class="glyphicon glyphicon-log-in"></span> Login</button>
</form>
</div>
这是我的 servlet 代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
RequestDispatcher rd=request.getRequestDispatcher("/login.html");
out.println("<script>");
out.println("document.getElementById('error').innerText=Sorry UserName or Password Error");
out.println("</script>");
rd.include(request, response);
}
消息未显示在登录文件的<div id="error">
中
我找到了答案。它正在工作
这是我的 JSP
<%
String login_msg=(String)request.getAttribute("error");
if(login_msg!=null)
out.println("<font color=red size=4px>"+login_msg+"</font>");
%>
这是我的仆人
request.setAttribute("error","Invalid Username or Password");
RequestDispatcher rd=request.getRequestDispatcher("/login.jsp");
rd.include(request, response);
只需将请求中的错误消息设置为属性,如果它不为 null,则显示错误div。
Servlet:
request.setAttribute("error","Invalid Username/password");
登录.jsp:
使用 JSTL 和 EL 访问 JSP 中的请求属性。您可以使用<c:if>
来测试错误消息。
<c:if test="${not empty requestScope.error}">
<!-- Show the error div with message-->
</c:if>
使用隐式对象requestScope
从请求范围获取属性。
如果您只想使用HTML,请尝试一下。这不是一个好方法,但您可以创建两个单独的HTML页面进行登录.html然后login_error.html然后在出现任何错误时重定向到login_error.html。
request.getRequestDispatcher("/login_error.html");
试试这个:
request.getRequestDispatcher("signin.html").include(request, response);
out.println("<script>document.getElementById('error').innerHTML='Sorry UserName or Password'; </script>");
不要忘记对字符串使用单引号。
只需移动
rd.include(request, response);
在您的打印语句之前,它应该可以工作。这是因为您希望脚本在定义div 后执行。
相关文章:
- angular js密码强度显示问题
- 如何在html中将密码字段显示为秒后的星号
- 使用Plaid Link显示自定义用户名和密码模式对话框
- 密码模糊事件未显示
- 在ASP.NET MVC 4中显示密码复选框
- HTML:密码字段中的HTML5占位符属性问题 - 显示正常文本
- 密码确认验证未按预期显示
- 在表单中显示密码不匹配或其强度的错误消息
- 输入字段的默认值“密码”,显示它
- 使用 servlet 在登录页面本身中显示密码错误消息
- 将显示密码的解决方案转变为安全的解决方案
- 当用户单击“显示链接”时,显示密码,再次单击时将其隐藏
- 显示密码jQuery插件更改密码字段的长度
- Html/JS在Blur/Focus之后的输入中显示密码
- 对象保持显示密码,我试图隐藏它
- 如何显示密码在明文密码输入字段时,标签被用作值
- 如何改进我的脚本不显示密码字段与用户名字段
- 用户登录时总是显示“密码无效”;在MEAN中出现错误
- 重置密码显示密码重置,但当尝试再次登录它不工作
- 如何在 Java 脚本上显示密码文本框的默认文本