狂神说 javaweb 34集:Ajax验证密码实现_SMBMS 项目搭建(五)

34.Ajax验证密码实现

优化密码修改使用Ajax

  1. 阿里巴巴的fastjson

     <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
     <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.68</version>
     </dependency>
     

     

 //验证就密码: session中有用户的密码
 public  void pwdmodify(HttpServletRequest req, HttpServletResponse resp){
     Object o = req.getSession().getAttribute(Constants.USER_SESSION);
     String oldpassword = req.getParameter( "oldpassword" );
 
     //万能的map: 结果集用map来代替
     //我们一切的东西都可以存在map里面
     HashMap<String,String> resultMap = new HashMap<String,String>();
 
     if(o == null){//session 失效了,或者过期了
         resultMap.put( "result","sessionerror" );
    }else if( StringUtils.isNullOrEmpty(oldpassword)){//输入的密码为空
         resultMap.put( "result","error" );
    }else{
         String userPassword = ((User) o).getUserPassword();//session中用户的密码
         if (oldpassword.equals( userPassword )){
             resultMap.put( "result","true" );
        }else {
             resultMap.put( "result","false" );
        }
    }
 
     try {
         resp.setContentType( "application/json" );
         //怎么返回json ,用流返回
         PrintWriter writer = resp.getWriter();
         //JSONArray 阿里巴巴的Json工具类,转换格式
         /*
         resultMap ={"result":"sessionerror","result":"error" }
         JSON格式: {key:value,key:value}
 
         */
         writer.write( JSONArray.toJSONString( resultMap ) );
         writer.flush();
         writer.close();
    } catch (IOException e) {
         e.printStackTrace();
    }
 
 }

servlet实现

 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String method = request.getParameter( "method" );
     if(method.equals( "savepwd" ) && method != null){
         this.updatePwd( request,response );
    }else if (method.equals( "pwdmodify" ) && method != null){
         this.pwdmodify( request,response );
    }
 
 }
 
posted @   坚持做  阅读(248)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示