1.首先使用ajax,json串来判断旧密码输入的是否正确,和数据库中的密码是否一致。首先就是在jsp界面中写代码。还有记得引入<script src="${pageContext.request.contextPath}/js/jquery-1.7.min.js"></script>。要不执行不了jQuery的代码。
<script> $(function(){ $('#oldpwd').blur(function(){//设置一个鼠标离开的事件 var oldpwd = $('#oldpwd').val(); $.post("mmxglist",{oldpwd:oldpwd},function(ret){//执行mmxglist的方法,ret是controller中用来接收数据的 if(ret.mm == oldpwd){//判断数据库中的密码和文本框中输入的密码是否一致 $('#oldpwd2').text('密码输入正确'); }else{ if(oldpwd == "" || oldpwd == null){ $('#oldpwd2').text('原密码不能为空'); }else{ $('#oldpwd2').text('密码错误,请重新输入'); } } },"json") }) }) </script>
2.在逻辑层调用业务层的方法
//修改密码,根据id查询出对应的密码,然后对比 @RequestMapping("/user/mmxglist") @ResponseBody//使用了ajax的注解 public String mm(HttpSession httpSession) { @SuppressWarnings("unchecked") List<Map<String, Object>> userinfo = (List<Map<String, Object>>) httpSession.getAttribute("user"); int emid = (Integer) userinfo.get(0).get("ID");//从session中获得员工编号 String mm = userDao.mmxg(emid);//调用业务层的方法 Map<String, Object> noMap = new HashMap<String, Object>();//创建一个集合 noMap.put("mm", mm);//把取到的值放到集合中 String str = JSON.toJSONString(noMap);//转化为json的串 return str;//传到jsp文件中 } //修改数据库中的密码 @RequestMapping("/user/updatepwd") public String updatepwd(HttpSession httpSession,HttpServletRequest request) { @SuppressWarnings("unchecked") List<Map<String, Object>> userinfo = (List<Map<String, Object>>) httpSession.getAttribute("user"); int emid = (Integer) userinfo.get(0).get("ID");//员工编号 String qrmm = request.getParameter("qrpwd");//从前台获取到密码,作为参数 userDao.updatepwd(qrmm, emid);//调用修改密码的方法 return "redirect:/";//修改完密码之后重新登录 }
3.在Dao文件中写查询旧密码,还有修改密码的方法
//查询出对应的emid,所对应的 public String mmxg(Integer emid) { String sql = "select USER_PWD FROM task_user where TASK_EMPLOYEE_ID = ?"; String mm = jt.queryForObject(sql, String.class,emid); return mm; } //重新设置密码 public void updatepwd(String qrmm,Integer emid) { String sql = "update task_user set USER_PWD=? WHERE TASK_EMPLOYEE_ID = ?"; jt.update(sql,qrmm,emid); }