Javascript jsp用户id验证

Javascript jsp用户id验证,javascript,html,sql,jsp,Javascript,Html,Sql,Jsp,您好,我是JSP新手。我正在为一个项目开发一个客户注册页面。我希望我的用户id是唯一的。因此,我正在发送id,以便在其文本字段的onBlur事件上进行验证。但我收到一个空指针异常。请帮我编写此代码 html代码register.html: <head> <script type="text/javascript"> function OnButton1() { var userid = document.getElementById("user").value; win

您好,我是JSP新手。我正在为一个项目开发一个客户注册页面。我希望我的用户id是唯一的。因此,我正在发送id,以便在其文本字段的onBlur事件上进行验证。但我收到一个空指针异常。请帮我编写此代码

html代码register.html:

<head>

<script type="text/javascript">
function OnButton1()
{
var userid = document.getElementById("user").value;
window.location.replace("register.jsp?userid="+userid);
document.registerform.action = "useridvalidcode.jsp"

    document.registerform.submit();
    return true;
}
    function confirmPass() {
        var pass = document.getElementById("pass").value;
        var confPass = document.getElementById("c_pass").value;
        if(pass != confPass) {          
alert('Wrong confirm password !');
document.getElementById("c_pass").value="";
document.registerform.cpassword.focus();

}   }</script>
</head>

<body bgcolor="#DFBB81" onload="document.registerform.userid.focus();">
<div align="center">
  <table width="1024" border="0">
    <tr>
      <td><jsp:include page="head.jsp"/></td>
    </tr>
    <tr>
      <td height="217" valign="top">
      <form name="registerform" method="post" action="registercode.jsp">
      <table width="563" border="0">
        <tr>
          <td width="19">&nbsp;</td>
          <td width="144"><font color="#990000" size="+2">Register:</font></td>
          <td width="204">&nbsp;</td>
          <td width="168">&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>User Id: </td>
          <td><label></label></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="text" name="userid" id="user" required="required" onblur="return OnButton1();"/></td>
          <td><label></label></td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>Password: </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="password" id="pass" name="password" required="required" /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>Confirm password: </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><label>
         <input type="password" id="c_pass" value="" onblur="confirmPass()" name="cpassword" required="required" />
          </label></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>Email:</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><label>
            <input type="email" name="email" required="required" />
          </label></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>Mobile no: </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>
           <input type="tel" pattern='\d{10}' title="10 digit mobile number format" required="required"  name="mobileno"/>         </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>Address:</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><textarea name="address" rows="5" required="required" style="resize:none"></textarea></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><input type="submit" name="Submit" value="Submit" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="reset" name="Submit2" value="Reset" /></td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
        <tr>
          <td>&nbsp;</td>
          <td><span class="style2">*</span> All fields mandatory </td>
          <td>&nbsp;</td>
          <td>&nbsp;</td>
        </tr>
      </table>
      </form></td>
    </tr>
    <tr>
      <td><jsp:include page="foot.html"/></td>
    </tr>
  </table>
</div>
</body>
</html>
Jsp代码useridvalidcode.Jsp:

<body>
 <%@page import="java.sql.*"%>
 <%
 String userid=request.getParameter("userid");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:pd");
ResultSet rs = null;

Statement st = con.createStatement();
String sql=("select * from register where userid='"+ userid +"'");
st.executeQuery(sql) ;
                int ct = 0;
   while(rs.next())
      {
      ct++; 
      }
   if (ct > 0)
      {
        %><script type="text/javascript"> alert("duplicate"); </script> <%
      }
   else
      {
    %><script type="text/javascript"> alert("new"); </script> <%
      }
rs.close();
st.close();
con.close();
}
catch(Exception e){
out.println(e.toString());
                return ;

}
%>
<script language="javascript">
alert("Successfully regestered");
</script>
<jsp:include page="../page/home.jsp"/>
</body>
</html>
<body>
 <%@page import="java.sql.*"%>
 <%
 String userid=request.getParameter("userid");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:pd");
ResultSet rs = null;

Statement st = con.createStatement();
String sql=("select * from register where userid='"+ userid +"'");
st.executeQuery(sql) ;
                int ct = 0;
   while(rs.next())
      {
      ct++; 
      }
   if (ct > 0)
      {
        %><script type="text/javascript"> alert("duplicate"); </script> <%
      }
   else
      {
    %><script type="text/javascript"> alert("new"); </script> <%
      }
rs.close();
st.close();
con.close();
}
catch(Exception e){
out.println(e.toString());
                return ;

}
%>
<script language="javascript">
alert("Successfully regestered");
</script>
<jsp:include page="../page/home.jsp"/>
</body>
</html>

<body>
 <%@page import="java.sql.*"%>
 <%
 String userid=request.getParameter("userid");
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:pd");
ResultSet rs = null;

Statement st = con.createStatement();
String sql=("select * from register where userid='"+ userid +"'");
st.executeQuery(sql) ;
                int ct = 0;
   while(rs.next())
      {
      ct++; 
      }
   if (ct > 0)
      {
        %><script type="text/javascript"> alert("duplicate"); </script> <%
      }
   else
      {
    %><script type="text/javascript"> alert("new"); </script> <%
      }
rs.close();
st.close();
con.close();
}
catch(Exception e){
out.println(e.toString());
                return ;

}
%>
<script language="javascript">
alert("Successfully regestered");
</script>
<jsp:include page="../page/home.jsp"/>
</body>
</html>

我确信错误来自这里

ResultSet rs = null;
...
while(rs.next())

其中rs始终为null。

发布异常堆栈跟踪会更有帮助。感谢您的建议,但您能否为我提供此代码的解决方案。将st.executeQuerysql更改为rs=st.executeQuerysql;我建议总是检查null if rs=空呜呜声。下一个。。。