VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 超市订单管理系统(6)-ajax验证旧密码

这个功能只在servlet做就可以了,这个是和修改密码一块的servlet

1.引入json格式转换的依赖,引入依赖后如果没有自动加载,就右键项目-》maven-》reload project

1     <dependency>
2       <groupId>com.alibaba</groupId>
3       <artifactId>fastjson</artifactId>
4       <version>1.2.9</version>
5     </dependency>

2.编写servlet

复制代码
  1 package com.xiaoma.servlet.user;
  2 
  3 import com.mysql.jdbc.StringUtils;
  4 import com.xiaoma.pojo.User;
  5 import com.xiaoma.service.user.UserService;
  6 import com.xiaoma.service.user.UserServiceImpl;
  7 import com.xiaoma.util.Constants;
  8 import javax.servlet.ServletException;
  9 import javax.servlet.http.HttpServlet;
 10 import javax.servlet.http.HttpServletRequest;
 11 import javax.servlet.http.HttpServletResponse;
 12 import java.io.IOException;
 13 import java.io.PrintWriter;
 14 import java.util.HashMap;
 15 
 16 import com.alibaba.fastjson.*;
 17 
 18 public class UserServlet extends HttpServlet {
 19     @Override
 20     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 21         String method = req.getParameter("method");
 22         if (method != null&&method.equals("savepwd")) {
 23             this.updataPwd(req,resp);
 24         }else if(method!=null && method.equals("pwdmodify")){
 25             this.pwdModify(req,resp);
 26         }
 27     }
 28 
 29     @Override
 30     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 31         doGet(req, resp);
 32     }
 33 
 34     //修改密码,把方法提出来,实现servlet的复用
 35     public void updataPwd(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 36         //获取用户session
 37         Object o = request.getSession().getAttribute(Constants.USER_SESSION);
 38         //拿到前端的newpassword参数
 39         String newpassword = request.getParameter("newpassword");
 40         System.out.println("Servlet:"+newpassword);
 41         boolean flag = false;
 42         //当密码不为空并且session也不为空往下走
 43         if (o != null && !StringUtils.isNullOrEmpty(newpassword)) {
 44             UserService userService = new UserServiceImpl();
 45             //拿到用户id和密码
 46             flag = userService.updatePwd(((User) o).getID(), newpassword);
 47             if (flag) {
 48                 request.setAttribute(Constants.USER_SESSION, "修改密码成功,请退出并使用新密码重新登录!");
 49                 //如果密码修改成功就吧session移除掉
 50                 request.getSession().removeAttribute(Constants.USER_SESSION);//session注销
 51             } else {
 52                 request.setAttribute(Constants.USER_SESSION, "修改密码失败!");
 53             }
 54         } else {
 55             request.setAttribute(Constants.USER_SESSION, "修改密码失败!");
 56         }
 57         request.getRequestDispatcher("pwdmodify.jsp").forward(request, response);
 58     }
 59 
 60     //验证旧密码,我们不用再从数据库里查找旧密码,因为我们登录了已经,那么session中就会存在密码,就可以通过session获取登录密码
 61     //所以我们只要将session中的密码与前端输入的密码进行对比就可以了
 62     public void pwdModify(HttpServletRequest req, HttpServletResponse resp){
 63         //获取session中的id
 64         Object o = req.getSession().getAttribute(Constants.USER_SESSION);
 65         //获取js中的ajax请求中的pwdmodify,这个验证旧密码的ajax中的data:{method:"pwdmodify",oldpassword:oldpassword.val()}
 66         //其中method就相当于一个key,oldpassword是获取的前端的值
 67         String oldpassword=req.getParameter("oldpassword");
 68         //使用map存放ajax请求中的那好几个数据
 69         HashMap<String, String> resultMap = new HashMap<String,String>();
 70 
 71         //如果获取的session对象o为空,说明session过期了或者失效了
 72         if (o == null) {
 73             //result为pwdmodify.js中的旧密码验证ajax中的result,sessionerror为session过期时对应的请求
 74             resultMap.put("result","sessionerror");
 75         }else if(StringUtils.isNullOrEmpty(oldpassword)){
 76             //当用户输入的旧密码为空的时候
 77             resultMap.put("result","error");
 78         }else{
 79             //当密码不为空且session存活的时候,就去拿到session中的密码
 80             String userPassword = ((User) o).getUserPassword();
 81             //当session中的密码和旧密码一样的时候,就成功,否则就失败
 82             if (userPassword.equals(oldpassword)) {
 83                 resultMap.put("result","true");
 84             }else{
 85                 resultMap.put("result","false");
 86             }
 87         }
 88 
 89         //下面就是把数据给Ajax接收,先将map数据变为json数据
 90         try {
 91             resp.setContentType("application/json");
 92             PrintWriter writer = resp.getWriter();
 93             //将map集合中的数据转为json字符串
 94             writer.write(JSONArray.toJSONString(resultMap));
 95             writer.flush();
 96             writer.close();
 97         } catch (IOException e) {
 98             e.printStackTrace();
 99         }
100     }
101 }
复制代码

 效果图:



来源:https://www.cnblogs.com/XiaoMaGuai/p/15451048.html


相关教程