Javaweb利用ajax异步交互检验原密码是否正确

您所在的位置:网站首页 ajax判断密码和确认密码 Javaweb利用ajax异步交互检验原密码是否正确

Javaweb利用ajax异步交互检验原密码是否正确

2024-07-12 18:03| 来源: 网络整理| 查看: 265

我之前一直以为ajax就是局部刷新,现在才略微明白他是前端与后端异步交互的一种方式,其最大的优势在于不需要整个页面向后端发送请求,而可以提供我们需要与数据库比对的特定值给Servlet, 让Servlet一层一层往后调用方法获取数据库中的值进行比对,然后返回JSON给前端,前端利用后端传来的JSON进行判断并展示特定内容(JS实现)

JSON大概的样子--->{"":"","":""},类型于Map的形式,我们可以通过阿里巴巴的fastJSON依赖里的JSONArray.toJSONString()方法将Map转为JSON

下面代码以修改密码为例,利用ajax向Sevlet传递了旧密码的值,Servlet通过Session获取用户原密码,两者进行比较,将对应的情况值存入map,然后转为JSON传回前端,前端通过.键名获取键值,进行判断,最后展示

代码部分仅供参考 页面展示

旧密码: 新密码: 确认新密码:

核心代码1,Jquery

$(function () { var oldPassword = $("#oldPassword"); var newPassword = $("#newPassword"); var conNewPassword = $("#conNewPassword"); var saveBtn = $("#save"); oldPassword.on("blur",function () { $.ajax({ type:"GET", url:"userUpdate", //传参数给后台,参数名:参数值 data:{method:"pwdmodify",oldPassword:oldPassword.val()}, dataType:"json", success:function (data) { if(data.result == "true"){ oldPassword.next().css({"color":"green"}); oldPassword.next().html("正确"); oldPassword.VALIDATE_STATUS = true; }else if(data.result == "false"){ oldPassword.next().css({"color":"red"}); oldPassword.next().html("原密码输入不正确"); oldPassword.VALIDATE_STATUS = false; }else if(data.result == "sessionerror"){ oldPassword.next().css({"color":"red"}); oldPassword.next().html("当前用户session过期,请重新登录"); oldPassword.VALIDATE_STATUS = false; }else if(data.result == "error"){ oldPassword.next().css({"color":"red"}); oldPassword.next().html("旧密码不能为空"); oldPassword.VALIDATE_STATUS = false; } }, error:function (data) { oldPassword.next().css({"color":"red"}); oldPassword.next().html("请求错误"); oldPassword.VALIDATE_STATUS = false; } }); }).on("focus",function () { oldPassword.next().css({"color":"#666666"}); oldPassword.next().html("请输入旧密码"); oldPassword.VALIDATE_STATUS = false; }) saveBtn.on("click",function () { oldPassword.blur(); newPassword.blur(); conNewPassword.blur(); if(oldPassword.VALIDATE_STATUS==true){ if(confirm("确认要修改密码?")){ $("#userForm").submit(); } } }) });

核心代码2,Servlet部分

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String method = req.getParameter("method"); if(method.equals("pwdmodify")){ this.pwdModify(req,resp); }else if(method.equals("savepwd")){ this.savePwd(req,resp); } } private void pwdModify(HttpServletRequest req, HttpServletResponse resp) { Object o = req.getSession().getAttribute(Constant.USER_SESSION); String oldPassword = req.getParameter("oldPassword"); HashMap resultMap = new HashMap(); if(o==null){ resultMap.put("result","error"); }else if(StringUtils.isNullOrEmpty(oldPassword)){ resultMap.put("result","error"); }else { String userPassword = ((User) o).getPassword(); if (oldPassword.equals(userPassword)) { resultMap.put("result", "true"); }else{ resultMap.put("result","false"); } } try { resp.setContentType("application/json"); PrintWriter writer = resp.getWriter(); writer.write(JSONArray.toJSONString(resultMap)); writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } private void savePwd(HttpServletRequest req, HttpServletResponse resp) { UserService userService = new UserServiceImpl(); String newPassword = req.getParameter("newPassword"); int id = ((User)req.getSession().getAttribute(Constant.USER_SESSION)).getId(); int result = userService.savePwd(newPassword,id); if(result>0){ req.getSession().removeAttribute(Constant.USER_SESSION); try { resp.sendRedirect(req.getContextPath()+"/Login.jsp"); } catch (IOException e) { e.printStackTrace(); } } }

实体类

public class User { private int id; private String username; private String password; private String remark; private int role_id; public User() { } public User(int id, String username, String password, String remark, int role_id) { this.id = id; this.username = username; this.password = password; this.remark = remark; this.role_id = role_id; } public User(String username, String password, String remark, int role_id) { this.username = username; this.password = password; this.remark = remark; this.role_id = role_id; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public int getRole_id() { return role_id; } public void setRole_id(int role_id) { this.role_id = role_id; } @Override public String toString() { return id+"--"+username+"--"+password+"--"+remark+"--"+role_id; } }

大致效果

From 西部开源



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3