note_cloud--修改密码功能

来源:互联网 发布:詹姆斯2017季后赛数据 编辑:程序博客网 时间:2024/05/22 09:48

逻辑处理:

1.输入原密码与数据库中查询处理的密码进行匹配

2.匹配成功,更新数据库密码字段值

回调处理:

密码修改成功(服务器处理完成)以后,重定位到登录页面

-----------------------------------------------------------------------------------------------------------------------

Dao接口:

//根据userId查找User,用于验证密码是否正确,以便于修改密码public User findByUserId(String userId);public int modifyPassword(Map params);//修改密码
注意:第一个方法根据userId查找对应的用户,第二个方法用于修改密码

-----------------------------------------------------------------------------------------------------------------------

Mapper文件:
  <!-- 根据userId查找User,用于验证密码是否正确,以便于修改密码 -->  <select id="findByUserId" parameterType="string" resultType="cn.tedu.cloud_note.entity.User">    select * from cn_user where cn_user_id = #{userId}  </select>    <!-- 修改密码 -->  <update id="modifyPassword" parameterType="map">    update cn_user set cn_user_password = #{newPwd}     where cn_user_id = #{userId}  </update>
注意:修改密码的时候需要两个参数,一个是userId,一个是新输入的密码

-----------------------------------------------------------------------------------------------------------------------

业务层接口:
//根据userId修改密码public NoteResult<Object> modifyPassword(String userId,String lastPwd,String newPwd);
注意:传入三个参数,userId,原始密码,新密码,userId用于找到是哪一条记录

-----------------------------------------------------------------------------------------------------------------------

业务层实现类:
//修改密码public NoteResult<Object> modifyPassword(String userId,String lastPwd,String newPwd) {//先对两个密码进行md5加密处理String md5LastPwd = NoteUtil.md5(lastPwd);String md5NewPwd = NoteUtil.md5(newPwd);NoteResult<Object> result = new NoteResult<Object>();//密码校验(输入密码与原密码是否符合)User user = userDao.findByUserId(userId);if(user == null){//密码不存在result.setStatus(2);result.setMsg("密码不存在");return result;}String pwd = user.getCn_user_password();//查询的密码if(!md5LastPwd.equals(pwd)){//查询出的密码和用户输入的密码不匹配result.setStatus(3);result.setMsg("密码错误");return result;}//验证密码正确后,修改新输入的密码//服务器传入两个参数,newPwd为新的密码,要进行MD5加密处理,然后将两个参数放入MapMap<String,Object> params = new HashMap<String,Object>();params.put("userId", userId);params.put("newPwd", md5NewPwd);userDao.modifyPassword(params);int rows = userDao.modifyPassword(params);if(rows == 1){result.setStatus(0);result.setMsg("修改密码成功");return result;}result.setStatus(1);result.setMsg("修改密码失败");return result;}

注意:传入三个参数,先将原始密码和新密码进行MD5加密处理,通过userId找到该User,验证原始密码是否正确,若正确则修改密码

-----------------------------------------------------------------------------------------------------------------------

Controller层:
package cn.tedu.cloud_note.controller;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import cn.tedu.cloud_note.service.UserService;import cn.tedu.cloud_note.util.NoteResult;//修改密码@Controller@RequestMapping("/user")public class ModifyPwdController {@Resource(name="userService")private UserService service;@RequestMapping("/modify.do")@ResponseBodypublic NoteResult<Object> execute(String userId,String lastPwd,String newPwd){NoteResult<Object> result = service.modifyPassword(userId,lastPwd,newPwd);return result;}}

-----------------------------------------------------------------------------------------------------------------------

点击修改密码后弹出以下修改页面:




进入修改密码的主页面

-----------------------------------------------------------------------------------------------------------------------

<!DOCTYPE html><html><head><title>修改密码</title><meta charset="utf-8"><link rel="stylesheet" href="styles/login.css"/><script type="text/javascript" src="scripts/basevalue.js"></script><script type="text/javascript" src="scripts/jquery.min.js"></script><script type="text/javascript" src="scripts/cookie_util.js"></script><script type="text/javascript" src="scripts/base64.js"></script></head><body><div class="global"><div class="sig sig_in" tabindex='4' id='zc'><dl><dt><div class='header'><h3>修改密码</h3></div></dt><dt></dt><dt><div class='letter'>原密码: <input type="text" name="" id="last_password" tabindex='1'/><div class='warning' id='warning_1'><span></span></div></div></dt><dt><div class='letter'>新密码: <input type="password" name="" id="new_password" tabindex='2'/><div class='warning' id='warning_2'><span></span></div></div></dt><dt><div class='password'>确认新密码: <input type="password" name="" id="final_password" tabindex='3'/><div class='warning' id='warning_3'><span></span></div></div></dt><dt><div><input type="button" name="" id="changePassword" value=' 确 定 ' tabindex='4'/><input type="button" name="" id="back" value=' 关 闭 ' tabindex='5'/><script type="text/javascript">function get(e){return document.getElementById(e);}//单击返回按钮回退页面get('back').onclick=function(){get('zc').className='sig sig_out';window.history.back();window.opener=null;window.open('','_self');window.close();}//鼠标移出事件(校验格式)window.onload=function(){//原始密码的校验$("#last_password").blur(function(){var lpassword=$("#last_password").val().trim();if(lpassword == ""){$("#warning_1").show();$("#warning_1 span").html("原密码不能为空");}else{$("#warning_1").hide();}});//新密码的校验$("#new_password").blur(function(){var npassword=$("#new_password").val().trim().length;if(npassword<6 && npassword>0){$("#warning_2").show();$("#warning_2 span").html("新密码长度过短");}else if(npassword == ""){$("#warning_2").show();$("#warning_2 span").html("新密码不能为空");}else{$("#warning_2").hide();}});//确认密码的校验$("#final_password").blur(function(){var npassword=$("#new_password").val().trim();var fpassword=$("#final_password").val().trim();if(npassword != fpassword){$("#warning_3").show();$("#warning_3 span").html("密码输入不一致");}else{$("#warning_3").hide();}});//鼠标移入input时候,提示信息隐藏$("#last_password").focus(function(){$("#warning_1").hide();});$("#new_password").focus(function(){$("#warning_2").hide();});$("#final_password").focus(function(){$("#warning_3").hide();});//绑定确认按钮单击事件$("#changePassword").click(function(){//清空3个提示框的样式$("#warning_1").hide();$("#warning_2").hide();$("#warning_3").hide();//获取请求参数共计4个,用户输入的3个,还有一个是Cookie中的用户userId(是否超时)var lastPwd = $("#last_password").val().trim();var newPwd = $("#new_password").val().trim();var finalPwd = $("#final_password").val().trim();//Cookie中的userIdvar userId = getCookie("userId");//参数验证(要求密码不能为空)var ok = true;if(lastPwd == ""){$("#warning_1 span").html("原密码不能为空");$("#warning_1").show();ok = false;//此处不给与提示,后续不发送ajax}if(newPwd == ""){ok = false;$("#warning_2 span").html("新密码不能为空");$("#warning_2").show();}else if(newPwd.length <6 && newPwd.length>0){ok = false;$("#warning_2 span").html("新密码长度过短");$("#warning_2").show();}if(finalPwd != newPwd){$("#warning_3 span").html("密码输入不一致");$("#warning_3").show();ok = false;}if(userId == null){//超时2小时ok = false;window.location.href = "log_in.html";//跳转到登录页面}//发送ajax请求if(ok){$.ajax({url:path + "/user/modify.do",type:"post",data:{"userId":userId,"lastPwd":lastPwd,"newPwd":newPwd},dataType:"json",success:function(result){if(result.status == 0){//修改成功//跳转到登录页面window.location.href = "log_in.html";}else if(result.status == 2){//原始密码不存在$("#warning_1 span").html(result.msg);$("#warning_1").show();}else if(result.status == 3){//原始密码错误$("#warning_1 span").html(result.msg);$("#warning_1").show();}},error:function(){alert("错误");}});}});}</script></div></dt></dl></div></div></body></html>
注意:

页面第一个功能:单击关闭按钮,返回之前的主页面;

页面第二个功能:鼠标移入和移出事件对input中输入信息的校验

例如:鼠标移入时候,input后面的提示信息不再显示,鼠标移出input时候,若符合格式则不显示提示,若不符合则显示提示;

页面第三个功能:单击确定按钮,会对三个input里面的信息进行校验(包括用户超时),若不符合,则提示信息,若符合,则跳转到登录页面;

-----------------------------------------------------------------------------------------------------------------------