我开发了一个登录页面,其中用户 id 和最小密码长度验证由 JavaScript 完成,并且我有一个连接到 DB 并验证用户的 servlet。有人可以告诉我身份验证失败时如何在同一登录页面中显示消息吗?
问问题
32460 次
5 回答
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>
于 2012-07-06T04:41:30.067 回答
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>
从我上面的代码。
于 2012-07-06T05:47:24.133 回答
1
在你的 web.xml 中放这个
<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
}
请享用
于 2012-07-06T05:59:53.987 回答
0
if(/*something fails*/){
alert("Login fails!");
}
于 2012-07-06T04:34:54.950 回答
0
在 Servlet 中打印 JavaScript。
警报消息:
System.out.println("<script>alert('Login fail.')</script>");
再次重定向到登录页面:
System.out.println("<script>window.location='loginUrl'</script>");
于 2012-07-06T04:43:31.717 回答