jFinal写的修改密码的具体实现

来源:互联网 发布:java常见的接口 编辑:程序博客网 时间:2024/04/29 17:28


登陆者更改自己的密码


其实就分两步,第一验证让他验证oldPassword(旧时密码)对了,才能改密码。


[javascript] view plain copy print?
  1. //修改密码  
  2. function editPwd(){  
  3.     var username=$('#loginname').text();//获取用户名  
  4.     //console.log(username);  
  5.     var oldPwd=$('#oldPwd').val();//旧密码  
  6.     var newPwd=$('#newPwd').val();//新密码  
  7.     var checkPwd=$('#checkNewPwd').val();//确认密码  
  8.     if((oldPwd ==null ||oldPwd =="")||(newPwd ==null ||newPwd =="")||(checkPwd ==null ||checkPwd =="")){  
  9.         layer.alert('密码不能为空!',{  
  10.             skin:'layui-layer-molv'//样式类名  
  11.             ,closeBtn:0  
  12.         });  
  13.         return;  
  14.     }     
  15. //  console.log("old="+oldPwd);  
  16. //  console.log("new="+newPwd);  
  17. //  console.log("checknew="+checkPwd);  
  18.     if(newPwd!=checkPwd){  
  19.         layer.alert('两次输入的新密码不一致!',{  
  20.             skin:'layui-layer-molv'//样式类名  
  21.             ,closeBtn:0  
  22.         });  
  23.         return;  
  24.     }  
  25.     var check=checkPassword(checkPwd);//这是一个我写好的方法用来判断密码格式是否正确。  
  26.     if(check==false){  
  27.         layer.alert('密码格式为6-20可带数字、“_”、“.”的字串',{  
  28.             skin:'layui-layer-molv'//样式类名  
  29.             ,closeBtn:0  
  30.         });  
  31.         return;  
  32.     }  
  33.     var strJSON ={"oldPassword":oldPwd,"password":newPwd,"username":username};  
  34.     jQuery.ajax({  
  35.         url:"./admin/editPassword",  
  36.         type:"POST",  
  37.         data:strJSON,  
  38.         async:false,  
  39.         success:function(obj){  
  40.             if(obj.state=="0"){  
  41.                 $('#myModal1').modal('hide');  
  42.                 layer.alert(obj.msg,{  
  43.                     skin:'layui-layer-molv'//样式类名  
  44.                         ,closeBtn:0  
  45.                 });  
  46.             }else{  
  47.                 errorInfo(obj);//这里也是一个封装好的方法  
  48.             }  
  49.         },  
  50.         error:function(){  
  51.             layer.alert('系统错误',{  
  52.                 skin:'layui-layer-molv'//样式类名  
  53.                 ,closeBtn:0  
  54.             });  
  55.         },  
  56.         comlete:function(obj){  
  57.             if(obj.status==200);  
  58.         }  
  59.     });  
  60. }  

errorInfo()和checkPassword()

[javascript] view plain copy print?
  1. //密码验证   
  2. //只能输入6-20可带数字、“_”、“.”的字串   
  3. function checkPassword(str) {  
  4.    var re = /^([a-zA-Z0-9]|[._]){6,19}$/  
  5.    if (re.test(str))   
  6.    {  
  7.        return true;  
  8.    }   
  9.    else   
  10.    {  
  11.        return false;  
  12.    }  
  13. }  
  14.   
  15. //用来插入每个需要判断state状态决定是否重新登录的类里面  
  16. function errorInfo(obj){  
  17.     if(obj.state == "-1"//需要登录  
  18.     {  
  19.         layer.alert(obj.msg, {  
  20.               skin: 'layui-layer-molv' //样式类名  
  21.               ,closeBtn: 0  
  22.               ,shift: 4 //动画类型  
  23.             });  
  24.     }  
  25.         layer.alert(obj.msg, {  
  26.             skin: 'layui-layer-molv' //样式类名  
  27.                 ,closeBtn:0  
  28.           
  29.     });  
  30. }  

Controller

[java] view plain copy print?
  1. //修改密码  
  2. public void editPassword(){  
  3.     String username=getPara("username");  
  4.     //得到username的一条数据  
  5.     List<Admin> list =Admin.dao.queryListByUsername(username);  
  6.     String str=String.valueOf(list.get(0));  
  7.     int one=str.indexOf("password:");  
  8.     int two=str.indexOf(",", one);  
  9.     String pwd=str.substring(one+9, two);  
  10.     //截取出真实密码(pwd)  
  11.     //输入的旧时密码(oldPassword)  
  12.     String oldPassword=getPara("oldPassword");  
  13.     if(pwd.equals(oldPassword)){  
  14.         String password=getPara("password");  
  15.         int num = Admin.dao.editStaffPwd(password, username);  
  16.         if(num==0){  
  17.             this.setAttr("state""FAILED");  
  18.             this.setAttr("msg""修改密码失败!");  
  19.             this.renderJson();  
  20.             return;  
  21.         }else{  
  22.             this.setAttr("state""0");  
  23.             this.setAttr("msg""修改密码成功!");  
  24.             this.renderJson();  
  25.             return;  
  26.         }  
  27.     }else{  
  28.         this.setAttr("state""FAILED");  
  29.         this.setAttr("msg""旧时密码不正确!");  
  30.         this.renderJson();  
  31.         return;  
  32.     }  
  33. }  

model

[java] view plain copy print?
  1. public List<Admin> queryListByUsername(String username) {  
  2.         try{  
  3.             String sql="select * from admin where username=? ";  
  4.             return dao.find(sql,username);  
  5.         }catch(Exception e){  
  6.             e.printStackTrace();  
  7.             return null;  
  8.         }  
  9.     }  

[java] view plain copy print?
  1. public int editStaffPwd(String password, String username){  
  2.     // TODO Auto-generated method stub  
  3.     try {  
  4.         String updatesql = "UPDATE admin set password=? where username=? ";  
  5.         int iRet = Db.update(updatesql, password, username);  
  6.         if (iRet > 0) {  
  7.             return 1;  
  8.         } else {  
  9.             return 0;  
  10.         }  
  11.     } catch (Exception ex) {  
  12.         ex.printStackTrace();  
  13.         return 0;  
  14.     }  
  15. }  

原创粉丝点击