一.案例

  • 效果

      

     

    • 模拟的后台传过来的json串
    • UserServlet
    • package com.pro.servlets;
      
      import com.alibaba.fastjson.JSON;
      import com.pro.domain.User;
      
      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      import java.io.IOException;
      import java.io.PrintWriter;
      import java.util.ArrayList;
      import java.util.List;
      
      public class UserServlet extends HttpServlet {
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              doPost(req, resp);
          }
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              //设置乱码,req和resp都写上
              req.setCharacterEncoding("UTF-8");
              resp.setCharacterEncoding("UTF-8");
              //
              String me = req.getParameter("me");
              if("check".equals(me)){
                  check(req, resp);
              }else if("getUsers".equals(me)){
                  getUsers(req,resp);
              }else if("addUser".equals(me)){
                  addUser(req,resp);
              }
          }
      
          private void addUser(HttpServletRequest req, HttpServletResponse resp) throws IOException {
      
              String userName = req.getParameter("userName");
              String password = req.getParameter("password");
      
              PrintWriter writer = resp.getWriter();
              writer.write("添加成功了,我使用了ajax和jquery!"+userName+","+password);
      //        writer.write(userName);
      
              writer.flush();
              writer.close();
          }
      
          //获取到一个集合后,想让他去页面显示
          private void getUsers(HttpServletRequest req, HttpServletResponse resp) throws IOException {
              List<User> userList = new ArrayList<User>();
              for (int i = 0; i < 10; i++) {
                  userList.add(new User(i,"name"+i,"psaaword"+i));
              }
      
              //因为有个需求,需要将集合转换为js对象格式的json串,所以为了方便转换,导入fastjson依赖
              String jsonString = JSON.toJSONString(userList);
              //此时就拿到了json串,再建立管道,将数据响应到客户端
              PrintWriter writer = resp.getWriter();
              writer.write(jsonString);
              writer.flush();
              writer.close();
      
          }
      
      
          //将验证抽取成方法
          private void check(HttpServletRequest req, HttpServletResponse resp) throws IOException {
              String userName = req.getParameter("userName");
              //
              String msg = "用户已存在!";
              if (!"admin".equals(userName)){
               msg ="可以注册";
              }
              //由响应对象创建一个从服务器端到客户端的一个管道
              PrintWriter writer = resp.getWriter();
              writer.write(msg);
              //清空管道数据
              writer.flush();
              //关闭
              writer.close();
          }
      }
      

    • jq-ajax.html
    • <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <script src="jquery-3.6.0.js"></script>
          <script>
              $(function () {
      
                  //查询
                  $('#get').click(function () {
                      $.ajax({
                          //调用后台代码
                          url:'user.json',
                          //提交的方式
                          type:'get',
                          //返回数据的类型-->文本类型
                          // dataType:'text',
                          dataType:'json',//自动帮我们把json串转成了js对象
      
                         /* //要添加的数据
                          data:{name:"zs",password:123},*/
      
                          //响应成功的数据
                          success:function (res) {
                              console.log(res);
                              // alert(res);
                              console.log(res[0].userId);
                              var userList = res;
                              var tab = '<table border="1px" width="500px">';
                              for (var i = 0; i < userList.length; i++) {
                                  tab+='<tr align="center"><td>'+userList[i].userId+'</td><td>'+userList[i].username+'</td><td>'+userList[i].password+'</td></tr>'
                              }
      
                              tab+='</table>'
                              $('#list').html(tab);
                          }
                      })
                  })
      
                  //添加
                  $('#bt').click(function () {
                      $.ajax({
                          //如果要用到后台,就写上servlet地址或者do页面的地址
                          url: 'userServlet?me=addUser',
                          type: 'post',
                          data: {userName:"zs",password:"123"},
                          dataType: 'text',
                          success:function (res) {
                              console.log(res);
                              alert(res);
                          }
                      })
                  })
      
              })
          </script>
      </head>
      <body>
      <button id="get">取得后端返回的list</button>
      <button id="bt">提交</button>
      <div id="list">
      
      </div>
      </body>
      </html>
       
    • 总结:相比不用jQuery,代码上简单了很多,但是使用起来没有原生的那种味了,原生写起来,每一步的道理都可以很清楚,使用jQuery感觉只是效果上可以马上实现。原生代码实现可以去看json那篇文章 
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐