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

登陆者更改自己的密码


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


//修改密码
function editPwd(){
	var username=$('#loginname').text();//获取用户名
	//console.log(username);
	var oldPwd=$('#oldPwd').val();//旧密码
	var newPwd=$('#newPwd').val();//新密码
	var checkPwd=$('#checkNewPwd').val();//确认密码
	if((oldPwd ==null ||oldPwd =="")||(newPwd ==null ||newPwd =="")||(checkPwd ==null ||checkPwd =="")){
		layer.alert('密码不能为空!',{
			skin:'layui-layer-molv'//样式类名
			,closeBtn:0
		});
		return;
	}	
//	console.log("old="+oldPwd);
//	console.log("new="+newPwd);
//	console.log("checknew="+checkPwd);
	if(newPwd!=checkPwd){
		layer.alert('两次输入的新密码不一致!',{
			skin:'layui-layer-molv'//样式类名
			,closeBtn:0
		});
		return;
	}
	var check=checkPassword(checkPwd);//这是一个我写好的方法用来判断密码格式是否正确。
	if(check==false){
		layer.alert('密码格式为6-20可带数字、“_”、“.”的字串',{
			skin:'layui-layer-molv'//样式类名
			,closeBtn:0
		});
		return;
	}
	var strJSON ={"oldPassword":oldPwd,"password":newPwd,"username":username};
	jQuery.ajax({
		url:"./admin/editPassword",
		type:"POST",
		data:strJSON,
		async:false,
		success:function(obj){
			if(obj.state=="0"){
				$('#myModal1').modal('hide');
				layer.alert(obj.msg,{
					skin:'layui-layer-molv'//样式类名
						,closeBtn:0
				});
			}else{
				errorInfo(obj);//这里也是一个封装好的方法
			}
		},
		error:function(){
			layer.alert('系统错误',{
				skin:'layui-layer-molv'//样式类名
				,closeBtn:0
			});
		},
		comlete:function(obj){
			if(obj.status==200);
		}
	});
}

errorInfo()和checkPassword()

//密码验证 
//只能输入6-20可带数字、“_”、“.”的字串 
function checkPassword(str) {
   var re = /^([a-zA-Z0-9]|[._]){6,19}$/
   if (re.test(str)) 
   {
       return true;
   } 
   else 
   {
       return false;
   }
}

//用来插入每个需要判断state状态决定是否重新登录的类里面
function errorInfo(obj){
	if(obj.state == "-1") //需要登录
	{
		layer.alert(obj.msg, {
  			  skin: 'layui-layer-molv' //样式类名
  			  ,closeBtn: 0
  			  ,shift: 4 //动画类型
  			});
	}
		layer.alert(obj.msg, {
			skin: 'layui-layer-molv' //样式类名
				,closeBtn:0
		
	});
}

Controller

	//修改密码
	public void editPassword(){
		String username=getPara("username");
		//得到username的一条数据
		List<Admin> list =Admin.dao.queryListByUsername(username);
		String str=String.valueOf(list.get(0));
		int one=str.indexOf("password:");
		int two=str.indexOf(",", one);
		String pwd=str.substring(one+9, two);
		//截取出真实密码(pwd)
		//输入的旧时密码(oldPassword)
		String oldPassword=getPara("oldPassword");
		if(pwd.equals(oldPassword)){
			String password=getPara("password");
			int num = Admin.dao.editStaffPwd(password, username);
			if(num==0){
				this.setAttr("state", "FAILED");
				this.setAttr("msg", "修改密码失败!");
				this.renderJson();
				return;
			}else{
				this.setAttr("state", "0");
				this.setAttr("msg", "修改密码成功!");
				this.renderJson();
				return;
			}
		}else{
			this.setAttr("state", "FAILED");
			this.setAttr("msg", "旧时密码不正确!");
			this.renderJson();
			return;
		}
	}

model

public List<Admin> queryListByUsername(String username) {
		try{
			String sql="select * from admin where username=? ";
			return dao.find(sql,username);
		}catch(Exception e){
			e.printStackTrace();
			return null;
		}
	}

	public int editStaffPwd(String password, String username){
		// TODO Auto-generated method stub
		try {
			String updatesql = "UPDATE admin set password=? where username=? ";
			int iRet = Db.update(updatesql, password, username);
			if (iRet > 0) {
				return 1;
			} else {
				return 0;
			}
		} catch (Exception ex) {
			ex.printStackTrace();
			return 0;
		}
	}


















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值