我开发了一个登录页面,其中用户id和minmum密码长度验证由JavaScript完成,我有一个连接到DB并验证用户的servlet。有人可以告诉我如何在身份验证失败时在同一个登录页面中显示消息吗?
答案 0 :(得分:2)
HTML(将其放在页面的HTML中,其中应显示错误消息):
<span id="login_failed"></span>
JavaScript的:
<script type="text/javascript">
var login_success = false; /* set this to true if the login was a success */
if(login_success == false)
{
document.getElementById("login_failed").innerHTML = "Login Failed.";
}
else
{
window.location = "http://www.yourpage.com/login_success.html";
}
</script>
答案 1 :(得分:2)
从servlet发送登录失败的标志值,如下所示。
request.setAttribute("loginResult", true);
现在在JSP中获取此值。其默认值为false。如果是真的那么显示错误信息。
<%
if(request.getAttribute("loginResult") != null && request.getAttribute("loginResult") == "true"){
%>
<p style="color:red"> Login Failed. Please try again. </p>
<%
}
%>
对于Javascript调用一个函数来显示错误,而不是上面代码中的<p style="color:red"> Login Failed. Please try again. </p>
。
答案 2 :(得分:1)
把这个
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login.jsp?loginerror=100</form-error-page>
</form-login-config>
</login-config>
现在在你的login.jsp中输入这个javascript来读取loginerror参数并将其命名为ondocument.ready(onload())
function gup()
{
var name = 'loginerror';
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
//here you don't have login errors
else
//here you have login error
}
享受
答案 3 :(得分:0)
if(/*something fails*/){
alert("Login fails!");
}
答案 4 :(得分:0)
在Servlet中打印JavaScript。
警告信息:
System.out.println("<script>alert('Login fail.')</script>");
再次重定向到登录页面:
System.out.println("<script>window.location='loginUrl'</script>");