0

我开发了一个登录页面,其中用户 id 和最小密码长度验证由 JavaScript 完成,并且我有一个连接到 DB 并验证用户的 servlet。有人可以告诉我身份验证失败时如何在同一登录页面中显示消息吗?

4

5 回答 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 回答