您好我是 JSP 的新手。我正在开发一个项目的客户注册页面。我希望我的用户ID是唯一的。所以我发送了的验证ID onBlur 它的textfield事件。但我得到一个空指针异常。请帮我这个代码。
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"> </td>
<td width="144"><font color="#990000" size="+2">Register:</font></td>
<td width="204"> </td>
<td width="168"> </td>
</tr>
<tr>
<td> </td>
<td>User Id: </td>
<td><label></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="text" name="userid" id="user" required="required" onblur="return OnButton1();"/></td>
<td><label></label></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Password: </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="password" id="pass" name="password" required="required" /></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Confirm password: </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="password" id="c_pass" value="" onblur="confirmPass()" name="cpassword" required="required" />
</label></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Email:</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="email" name="email" required="required" />
</label></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Mobile no: </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>
<input type="tel" pattern='\d{10}' title="10 digit mobile number format" required="required" name="mobileno"/> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td>Address:</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><textarea name="address" rows="5" required="required" style="resize:none"></textarea></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Submit" />
<input type="reset" name="Submit2" value="Reset" /></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><span class="style2">*</span> All fields mandatory </td>
<td> </td>
<td> </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>
答案 0 :(得分:2)
我确信错误来自这里。
ResultSet rs = null;
...
while(rs.next())
其中rs始终为null。