在login.jsp中输入用户名,密码之后,点击登录按钮,跳入loginServlet。如果数据库中没有该用户,返回到login.jsp,弹出一个层,显示"用户名或密码为空"。在loginServlet里如果没查到用户,我这样写:session.setAttribute("error", "ri"),这样存一个值用于在页面上判断。login.jsp页面如下:<script type="text/javascript">
function error()
{
document.getElementById('showErro').style.display = "block";
}
</script>  <%
    if(session.getAttribute("error") != null)
    {
   //我想实现是的是,如果 error 值不是空的,就调用JS代码里的error()方法,让层显示出来。请问大家            这个该如何实现 ? 有没有更好的方法实现这个功能?
    }
   %>
 
  <form action="loginServlet" method="post" name="loginForm">
    <table border="" align="center" cellspacing="">
<tr>
          <td>用户名:
          <input type="text" height="18" name="loginName" size="25">
          </td>
        </tr>        <tr>  
          <td>密   码:
          <input type="password" height="18" name="loginPass" size="25">
          </td>
        </tr>          <tr align="center">
         <td>
                 <!-- 跳回登录页面之后要显示的就是这个层 -->              
          <div style="display: none" id="showErro">
            <font size="-1" color="red"> 用户名或密码不正确 </font>
          </div>         </td>
        </tr>
       
        <tr>
           <td colspan="2" align="center">
             <input type="submit" value="登录">
             <input type="reset" value="重置">
           </td>
        </tr>       
    </table>
  </form>

解决方案 »

  1.   

    <%
    String error = request.getSession.getAttribute("error");
    %>
    ...
    <script language="javascript">
    var error = <%=error %>;function showError(){
        if(error != ""){
            error();
        }
    }function error()
    {
        document.getElementById('showErro').style.display = "block";
    }
    ...
    </script>
    <body onload="showError();">
    ...
    </body>
      

  2.   


    var error = <%=error %>;
    这里报错“无法解析error”
      

  3.   

    <%
    String error = request.getSession.getAttribute("error");
    error = error == null ? "" : error;
    %>
      

  4.   

    Ajax,登录的Ajax例子就像Hello world一样普及了...
      

  5.   

    这么简单的问题用什么AJAX啊,简单问题复杂化
      

  6.   


    // 登陆ajax校验数据合法性
        function onLogin(strName, strPass){
            errorLogin.hide(); // 隐藏验证信息
            var url = 'login.do?'
                    + 'username='
                    + strName
                    + '&password='
                    + strPass;
                    
             $.get(url, null, callback);
        
        }
        
        // 设置错误信息
        function callback(data){
            var strBlnBack  = data.substr(0, 5);        if (strBlnBack == "false"){//登录失败
                    errorLogin.show(); 
            }else {//成功,跳转。

                window.location="index.jsp";
            }
        }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    String name = request.getParameter("username");
    String pwd = request.getParameter("password");
    /*上面,你可以写你自己的验证,这段代码是返回的信息,用来判断登录是否成功*/
    PrintWriter objPrintWriter = response.getWriter();
    //登录失败就写入false,否则就写别的,随便你,前台返回的时候你要根据这个串进行判断
    StringBuffer sbBack = new StringBuffer("false");
    objPrintWriter.print(sbBack);
    objPrintWriter.close();


    }
      

  7.   


    function showError(){
      if(error != ""){
      error();
      }
    }这里 调用 error()方法的时候报错"缺少函数"...
      

  8.   

    var error = "<%=error %>";
    还有
    函数名不要和变量名一样;error到底是什么