当前位置: 首页 > article >正文

Servlet-Vue-JSON交互

Servlet-Vue-JSON交互

统一结果返回
  • 定义

    package org.example.result;
    
    import lombok.AllArgsConstructor;
    import lombok.Data;
    import lombok.NoArgsConstructor;
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class Result<T> {
        private Integer code;
        private String message;
        private T data;
    
        public static Result success(String message, Object data) {
            Result result = new Result<>();
            result.setCode(200);
            result.setMessage(message);
            result.setData(data);
            return result;
        }
    
        public static Result success(Integer code, String message, Object data) {
            Result result = new Result<>();
            result.setCode(code);
            result.setMessage(message);
            result.setData(data);
            return result;
        }
    
        public static Result error(String message) {
            Result result = new Result<>();
            result.setCode(500);
            result.setMessage(message);
            result.setData(null);
            return result;
        }
    }
    
    
创建控制器
  • controller

    package org.example.controller.user;
    
    import com.google.gson.Gson;
    
    @WebServlet("/user/login")
    public class UserLonginController extends HttpServlet {
        private UserService userService = new UserServiceImpl();
    
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            Gson gson = new Gson();
            User user = userService.getUserByUserName(username, password);
            if (user != null) {
                // 密码脱敏处理
                user.setPassword("********");
                Result result = Result.success("登录成功", user);
                resp.getWriter().println(gson.toJson(result));
            } else {
                Result result = Result.error("登录失败");
                // 输出 json 格式的字符串
                resp.getWriter().println(gson.toJson(result));
            }
        }
    }
    
    
Axios
  • 发送请求

    axios({
    	baseURL: "http://localhost:8080",
        url: "/user/login",
        method: "get",
        params:{
            // es6 语法
            username,
            password
        }
    })
    
  • 测试

POST
  • post请求

    • controller

      package org.example.controller.user;
      
      import com.google.gson.Gson;
      import com.google.gson.JsonObject;
      
      @WebServlet("/user/update")
      public class UserUpdateController extends HttpServlet {
          private UserService userService = new UserServiceImpl();
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              BufferedReader reader = req.getReader();
              StringBuilder sb = new StringBuilder();
              String line;
              while ((line = reader.readLine()) != null) {
                  sb.append(line);
              }
              // 使用 Gson 解析 JSON 数据
              Gson gson = new Gson();
              JsonObject json = gson.fromJson(sb.toString(), JsonObject.class);
              // 获取 JSON 中的参数
              Integer userId = Integer.valueOf(json.get("id").getAsString());
              String userName = json.get("username").getAsString();
              String phone = json.get("phone").getAsString();
              String address = json.get("address").getAsString();
              String nickname = json.get("nickname").getAsString();
              String email = json.get("username").getAsString();
              // 传递到对象中
              User user = new User();
              user.setId(userId);
              user.setUsername(userName);
              user.setPhone(phone);
              user.setAddress(address);
              user.setNickname(nickname);
              user.setEmail(email);
              boolean isUpdate = userService.updateById(user);
              if (isUpdate) {
                  // 更新成功
                  Result result = Result.success("数据更新成功!", null);
                  resp.getWriter().println(gson.toJson(result));
              } else {
                  Result result = Result.error("数据更新失败!");
                  resp.getWriter().println(gson.toJson(result));
              }
          }
      }
      
      
    • axios

      axios({
      	baseURL: "http://localhost:8080",
          url: "/user/update",
          method: "post",
          data:{
              // es6 语法
              userId,
              userName,
              phone,
              address,
              email
          }
      })
      

http://www.kler.cn/a/149390.html

相关文章:

  • C++正则库
  • 【ESP】一小时速通入门笔记
  • 【2024软考架构案例题】你知道什么是 RESTful 风格吗?
  • day08(单片机)时钟系统+定时器+PWM
  • python | 包
  • SQL(2)
  • JSP迭代标签之 forEach循环标签 基本使用讲解
  • 使用Wireshark提取流量中图片方法
  • JSP forEach 标签遍历map集合
  • 【nlp】4.5 迁移学习实践项目(相关概念、中文分类、填空、句子关系、模型微调)
  • Less 安装教程
  • Java第二十章
  • Android 12.0 禁用adb reboot recovery命令实现正常重启功能
  • Android控件全解手册 - 任意View缩放平移工具-源码
  • Oracle整体架构
  • IP-Adapter:文本兼容图像提示适配器,用于文本到图像扩散模型
  • 振南技术干货集:znFAT 硬刚日本的 FATFS 历险记(9)
  • 【代码】数据驱动的多离散场景电热综合能源系统分布鲁棒优化算法matlab/yalmip+cplex/gurobi
  • java学习part21枚举
  • 选择跨网数据摆渡系统时,你最关注的功能是哪些?
  • 设置MATLAB启动时弹到上次退出时的工作文件夹
  • java List集合(ArrayList,LinkedList,Vector)
  • 【黑马程序员】——微服务全套——实战篇1
  • 5 时间序列预测入门:LSTM+Transformer
  • 数组中的第 K 个最大元素(C++实现)
  • UE5学习(游戏存档,两种适应性的射线检测,时间膨胀)