问题一:注册时专业班级和邮箱为空时他不能检测,直接就显示注册成功了
问题二:注册填写专业班级和邮箱时,数据库里显示的是空 
问题三:在adduser页面里  如果把注释掉的这部分
String username = request.getParameter("username");
//username = new String(username.getBytes("ISO-8859-1"));
String password = request.getParameter("password");
//password = new String(password.getBytes("ISO-8859-1")); 
        String profession = request.getParameter("profession");
        //profession = new String(profession.getBytes("ISO-8859-1")); 
String email = request.getParameter("email");   
//email = new String(email.getBytes("ISO-8859-1")); 返回的话,后台有空指针错误注册代码如下:
<script language="javascript">
function checkform(){
if (form1.username.value.length<3|| form1.username.value.length>10){
alert("用户名长度必须为3~10位!");
form1.username.focus();
return false;
}
if (form1.password.value.length<5|| form1.password.value.length>15){
alert("密码长度必须为5~15位!");
form1.password.focus();
return false;
}
if (form1.password.value!=form1.passwordconfirm.value){
alert("确认密码不相符!");
form1.passwordconfirm.focus();
return false;
}
if (form1.profession.value=""){
alert("请输入专业班级!");
form1.profession.focus();
return false;
}
if (form1.email.value=""){
alert("请输入正确的电子邮箱!");
form1.email.focus();
return false;
}
return true;
}
</script><form id="form1" name="form1" method="post" action="adduser.jsp" onSubmit="return checkform()">
  <div align="center">
    <table width="505" height="458" border="1">
      <tr>
        <td width="495" height="452" background="file:///F|/Dreamwaver/E/photo/green.jpg"><div align="center">
          <table width="200" border="0">
            <tr>
              <td height="25"><div align="center" class="STYLE11">会员注册</div></td>
            </tr>
          </table>
        </div>
          <table width="436" height="234" border="0" align="center">
            <tr>
              <td width="216" height="47"><span class="STYLE10">用 户 名:</span></td>
              <td width="210"><label></label>
                  <input name="username" type="text" size="30" maxlength="20" /></td>
            </tr>
            <tr>
              <td height="42"><p class="STYLE10">密&nbsp&nbsp&nbsp&nbsp码:</p>
              </td>
              <td><input name="password" type="password" size="30" maxlength="20" /></td>
            </tr>
            <tr>
              <td height="41"><span class="STYLE10">确认密码:</span></td>
              <td><input name="passwordconfirm" type="password" size="30" maxlength="20" /></td>
            </tr>            <tr>
              <td height="42"><span class="STYLE10">专业班级:</span></td>
              <td><input name="profession" type="text" size="30" maxlength="30" /></td>
            </tr>            <tr>
              <td height="42"><span class="STYLE10">电子邮箱:</span></td>
              <td><input name="email" type="text" size="30" maxlength="20" /></td>
            </tr>
          </table>
          <p align="center">
            <input name="Submit" type="submit" class="STYLE10" value="注册"  />
            <input name="reset" type="reset" class="STYLE10" value="重填" />

解决方案 »

  1.   

    问题1:js非空效验,没做好。
    问题2:页面的数据没有传到后台去。(小脚本项目吧?javaBeen是不是没接收到。)
    问题3:由于问题1引起的问题三,获取的是空值,转码肯定抛出空异常。
      

  2.   


    我这个不是用javaBean做的  具体代码如下:
    Class.forName(DBDRIVER) ; 
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;//建立与数据库的连接 
                stmt=conn.createStatement();  
                String sql="select * from huiyuan where username='"+username+"'";         
    rs=stmt.executeQuery(sql);  
    if(rs.next()){
    %>
        <script language="javascript">
         alert("此用户名已经存在,请重新注册!")
         history.go(-1);
        </script>
    <% 
    }else{
    String str = "INSERT INTO huiyuan VALUES('"+username+"','"+password+"','"+profession+"','"+email+"')";
    stmt.executeUpdate(str);
    %>
            <script language="javascript">
         alert("注册成功!")
        location.herf="login.jsp";
        </script>
    <% 
    }
    rs.close();
    stmt.close();
    conn.close();
    麻烦帮我看下具体是怎么回事么  如何解决   谢谢 
      

  3.   

    好像是这样的啊:
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS) ;//建立与数据库的连接  
      String sql="select * from huiyuan where username='"+username+"'";   
      stmt=conn.createStatement(sql);   
    rs=stmt.executeQuery();   
      

  4.   

    条件判断错误“=” ==> "=="if(form1.profession.value=""){
    }
    ==>
    if(form1.profession.value==""){
    }
      

  5.   

    由于你第一个JS问题,引起下面两个问题的错误。
    你js判断是否为空用“=”,应该是“==”。你那样相当于把空字符串赋值给“专业班级”和“邮箱”。按逻辑执行下来,即使你在提交之前两个属性不为空的,当点击提交执行到相关判断的js时,“=”符号已经把两个属性的值给替换成“”的了。所以你在adduser页面用一个空的对象来转码故报错。所以数据两个字段为空(没转码情况下)。
      

  6.   

    建议你使用JQuery中的validate插件来进行验证,这样代码可以简单很多!