Code Bye

为什么后台验证的时候老是不能验证确认密码这一项?

 

每次即便输入正确都是提示“两次密码输入不一致”,我查了下数据库,还会传个空值进去。怎么回事?大神快来帮帮我
register.jsp

 用户名: <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里啊……
后台检验是否已注册就好了
引用 1 楼 u011377803 的回复:

首先第一点,就是不应该在后台进行校验是否一致,应该用js来校验

你的错误在于,你没有对ra设置repassword,后面取出来是空,判断为假,自然向下走了。

很多大神说校验最好是前后台都有啊

引用 2 楼 u011376884 的回复:

用户名和密码的检验应该在jsp里啊……
后台检验是否已注册就好了

没后台校验会不会不安全啊,比如说有的浏览器不支持js的怎么办

10分
引用 4 楼 u012875881 的回复:
Quote: 引用 2 楼 u011376884 的回复:

用户名和密码的检验应该在jsp里啊……
后台检验是否已注册就好了

没后台校验会不会不安全啊,比如说有的浏览器不支持js的怎么办

jsp里校验的是用户输入的是否符合要求(例如:两次密码是否一致、不能为空、特殊字符、长度要求等),
后台判断是否已注册,不放心就把空字符串判断再加上


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明为什么后台验证的时候老是不能验证确认密码这一项?