<%@ page language="java" import="java.util.Date,java.sql.*,java.text.*" contentType="text/html;charset=gb2312" %>
<html>
<body>
<script type="text/javascript">
var reg=/[^A-Za-z0-9_]/g;
var reg2=/[^A-Za-z0-9]/g;
function validate(){
if(register.username.value==""){
alert("用户名不能为空!");
return;
}
if(reg.test(register.username.value)){
alert("用户名只能为数字字母下划线!");
return;
}
if(register.password.value==""){
alert("密码不能为空!");
return;
}
if(reg2.test(register.password.value)){
alert("密码只能为数字字母!");
return;
}
if(register.rpassword.value!=register.password.value){
alert("两次输入密码不一样!");
return;
}
register.submit();
}
</script>
<form name="register"  method="post">
    This is a register page.<br>
&nbsp;用户名:<input name="username" type="text">用户名只能为字母,数字,下划线组成<br>
设置密码:<input name="password" type="password">请输入由数字和字母组成的密码<br>
重复密码:<input name="rpassword" type="password">请重复密码<br>
<input type="button" value="注册" onClick="validate()">
</form>
<% 
String username=request.getParameter("uesrname");
String password=request.getParameter("password");
if(username!=null && password!=null){ 
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql","root","dudu10203");
Statement stat=conn.createStatement();
String sql="INSERT INTO users(username,password) VALUES('"+username+"','"+password+"')";
stat.executeUpdate(sql);
stat.close();
conn.close();
}
%>
</body>
</html>运行网页后无论账号密码是什么都无法写入数据库中,后来发现request的时候获取的是空值!但是想不到问题所在,求大神解救!在线等

解决方案 »

  1.   

    表单没有提交吧,from里没有ation,在当前页面好像不能获取。你写个servlet试试,把表单提交到servlet再获取
      

  2.   

    用户名:<input name="username" type="text">用户名只能为字母,数字,下划线组成<br>  与 String username=request.getParameter("uesrname"); 的参数不一样,到底是username还是uesrname
      

  3.   

    为何你要在一张页面把所有的操作都做完了, 首先你的form的action没写,那么它怎么知道往哪里提交呢?
    第二,习惯要从现在开始养成,建议写成两张网页,一张发送,一张接收
      

  4.   

    form加个action属性,值为当前页的地址,接收的username写错了
      

  5.   

    ACTION写好,在写个SERVLET 或者DAO层不就好了?
      

  6.   

    我也是新手,我猜是页面运行的时候链接数据库就执行了,所以你的数据还没来得及写,数据库那段代码就执行了,所以是空的,建议1楼的说法写个sevelet,具体怎么写我不会。打下酱油赚点分
      

  7.   

    很明显,表单是username,而后台接受的时候是uesrname,参数不一样。
      

  8.   

    request 是一个端发送请求,把参数放进request中的,你在目标处才能获取到。你使用js,操作form来submit数据能不能提交我不知道,但是请求肯定没发送,你form表单数据传送去哪里也没给出来吧