每次即便输入正确都是提示“两次密码输入不一致”,我查了下数据库,还会传个空值进去。怎么回事?大神快来帮帮我 用户名: <input type="text" name="username">*用户名不能为空<br> 设置密码:<input type="password" name="password">*密码需设置为4-12个字符<br> 确认密码:<input type="password" name="repassword"><br> <input type="submit" value="提交"> <input type="reset" value="重置"> RegistAction.java的验证方法 public String execute() throws Exception { User user=new User();//注册save()里的参数 //实例化:调用get方法获取表单中username,password,repasword的值 RegisterAction ra=new RegisterAction(); ra.setUsername(username);//保存到对象中 ra.setPassword(password); if(ra.getUsername()==null||"".equals(ra.getUsername())){ message="用户名不能为空,请重新输入!"; return "input"; } if(ra.getPassword()==null||"".equals(ra.getPassword())){ message="密码不能为空,请重新输入!"; return "input"; } if(ra.getRepassword()==null||"".equals(ra.getRepassword())){ message="确认密码不能为空,请重新输入!"; return "input"; } if(!ra.getPassword().equals(ra.getRepassword())) { message="两次密码输入不一致,请重新输入!"; return "input"; } //已运行 if(userDAO.findByName(username)>0){ message="你好,用户名:"+username+"已经注册,请重新选择用户名!"; return "input"; } if(userDAO.save(user)==null){ return "input"; } message="注册成功!"; return "success"; } |
|
5分 |
首先第一点,就是不应该在后台进行校验是否一致,应该用js来校验
你的错误在于,你没有对ra设置repassword,后面取出来是空,判断为假,自然向下走了。 |
5分 |
用户名和密码的检验应该在jsp里啊……
后台检验是否已注册就好了 |
很多大神说校验最好是前后台都有啊 |
|
没后台校验会不会不安全啊,比如说有的浏览器不支持js的怎么办 |
|
10分 |
jsp里校验的是用户输入的是否符合要求(例如:两次密码是否一致、不能为空、特殊字符、长度要求等), |