前后端ajax和json数据交换方式

2023-12-05 0 312
目录
  • 前后端ajax和json数据交换
    • 下面通过一个小案例来讲解
  • 编写一个实体类User
    • 第一个案例
      • 写一个UserController控制器
    • 第二个案例
      • 写loginController控制器
      • 前端页面login.jsp
      • 测试如下
    • 总结

      前后端ajax和json数据交换

      控制层返回json字符串数据给前端,前端通过ajax处理将数据展示给用户。

      下面通过一个小案例来讲解

      首先需要搭建springMVC框架环境,可以参考为之前的文章

      前后端ajax和json数据交换方式

      编写一个实体类User

      package com.pojo;
      public class User {
      private String username;
      private String password;
      private String sex;
      @Override
      public String toString() {
      return \”User{\” +
      \”username=\’\” + username + \’\’\’ +
      \”, password=\’\” + password + \’\’\’ +
      \”, sex=\’\” + sex + \’\’\’ +
      \’}\’;
      }
      public User() {
      }
      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 getSex() {
      return sex;
      }
      public void setSex(String sex) {
      this.sex = sex;
      }
      public User(String username, String password, String sex) {
      this.username = username;
      this.password = password;
      this.sex = sex;
      }
      }

      第一个案例

      controller返回一个学生信息数组,前端获取并打印到界面

      写一个UserController控制器

      package com.controller;
      import com.pojo.User;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      import java.util.ArrayList;
      import java.util.List;
      //该注解相当于@responseBody+@Controller
      @RestController
      public class UserController {
      //返回学生信息的集合
      @RequestMapping(\”/user\”)
      public List<User> getUser(){
      List<User> users = new ArrayList<>();
      User user = new User(\”小明\”,\”123456\”,\”男\”);
      User user1 = new User(\”小红\”,\”123456\”,\”女\”);
      User user2 = new User(\”小白\”,\”123456\”,\”男\”);
      User user3 = new User(\”小李\”,\”123456\”,\”女\”);
      users.add(user);
      users.add(user1);
      users.add(user2);
      users.add(user3);
      return users;
      }
      }

      index.jsp页面,注意jquery的版本不能太低,版本低的用不了$.post方法

      <%@ page contentType=\”text/html;charset=UTF-8\” language=\”java\” %>
      <html>
      <head>
      <title>Ajax</title>
      <%– 注意路径问题,导入jquery–%>
      <script src=\”${pageContext.request.contextPath}/static/js/jquery-3.6.0.js\”></script>
      </head>
      <body>
      <script type=\”text/javascript\”>
      $(function () {
      //获取学生数据
      $(\”#btn\”).click(function () {
      //post请求处理后端传来的数据
      //data封装了服务器返回的数据
      $.post(\”${pageContext.request.contextPath}/user\”,function (data) {
      console.log(data)
      var html=\”\”
      for (var i=0;i<data.length;i++){
      html+=\”<tr>\”+\”<td>\”+data[i].username+\”</td>\”+
      \”<td>\”+data[i].password+\”</td>\”+
      \”<td>\”+data[i].sex+\”</td>\”+\”</tr>\”
      }
      //数据显示在页面上
      $(\”#context\”).html(html)
      })
      })
      })
      </script>
      <input type=\”button\” id=\”btn\” value=\”获取学生数据\” >
      <table border=\”1\” cellspacing=\”0\” style=\”width: 50%\” align=\”center\”>
      <tr>
      <td>姓名</td>
      <td>密码</td>
      <td>性别</td>
      </tr>
      <!–后端传来的数据打印于此–>
      <tbody id=\”context\”>
      </tbody>
      </table>
      </body>
      </html>

      前后端ajax和json数据交换方式

      点击获取数据,则会打印后台传来的数据

      前后端ajax和json数据交换方式

      第二个案例

      模拟登录,运用onblur焦点失去事件,当我们输入完一个值,ajax会帮我们验证用户名,密码是否正确

      写loginController控制器

      package com.controller;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      @RestController
      public class loginController {
      @RequestMapping(\”/login\”)
      public String login(String username,String password){
      String message=\”\”;
      //要先判断用户名是否为空
      if(username!=null)
      {
      //这里用户名写死为admin
      if (\”admin\”.equals(username)) {
      message=\”成功\”;
      }else {
      message=\”用户名错误\”;
      }
      }
      //先判断密码是否为空
      if(password!=null)
      {
      //这里密码写死为123456
      if(password.equals(\”123456\”)){
      message=\”成功\”;
      }else {
      message=\”密码错误\”;
      }
      }
      //返回message到前端
      return message;
      }
      }

      前端页面login.jsp

      <%–
      Created by IntelliJ IDEA.
      User: 21781
      Date: 2021/12/31
      Time: 19:07
      To change this template use File | Settings | File Templates.
      –%>
      <%@ page contentType=\”text/html;charset=UTF-8\” language=\”java\” %>
      <html>
      <head>
      <title>Title</title>
      <script src=\”${pageContext.request.contextPath}/static/js/jquery-3.6.0.js\”></script>
      <script>
      //验证用户名是否正确
      function a1() {
      //{\”username\”:$(\”#username\”).val()}为传入后端的参数值
      $.post(\”${pageContext.request.contextPath}/login\”,{\”username\”:$(\”#username\”).val()},function (data) {
      if (data.toString()==\”成功\”){//表示用户名正确
      $(\”#name\”).css(\”color\”,\”green\”)
      }else {
      $(\”#name\”).css(\”color\”,\”red\”)
      }
      $(\”#name\”).html(data)
      })
      }
      //验证密码是否正确
      function a2() {
      $.post(\”${pageContext.request.contextPath}/login\”,{\”password\”:$(\”#password\”).val()},function (data) {
      if (data.toString()==\”成功\”){//表示用户名正确
      $(\”#ped\”).css(\”color\”,\”green\”)
      }else {
      $(\”#ped\”).css(\”color\”,\”red\”)
      }
      $(\”#ped\”).html(data)
      })
      }
      </script>
      </head>
      <body>
      <p align=\”center\”>
      <!–onblur焦点失去事件,鼠标一离开即触发事件–>
      用户名:<input type=\”text\” id=\”username\” onblur=\”a1()\”>
      <!–用于写提示信息–>
      <span id=\”name\”></span>
      </p>
      <p align=\”center\”>
      密码:<input type=\”text\” id=\”password\” onblur=\”a2()\”>
      <!–用于写提示信息–>
      <span id=\”ped\”></span>
      </p>
      </body>
      </html>

      测试如下

      前后端ajax和json数据交换方式

      当我们输入用户名和密码后,会进行相应判断

      前后端ajax和json数据交换方式

      这样就模拟完成json和ajax数据交互。

      总结

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。

      您可能感兴趣的文章:

      • ajax用json实现数据传输
      • $.ajax传JSON数据到后台的注意事项小结
      • 浅析JSONP解决Ajax跨域访问问题的思路详解

      收藏 (0) 打赏

      感谢您的支持,我会继续努力的!

      打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
      点赞 (0)

      悠久资源 AJAX相关 前后端ajax和json数据交换方式 https://www.u-9.cn/biancheng/ajax/95600.html

      常见问题

      相关文章

      发表评论
      暂无评论
      官方客服团队

      为您解决烦忧 - 24小时在线 专业服务