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();@Overrideprotected 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();@Overrideprotected 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.hqwc.cn/news/228054.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python(八十九)函数的参数的内存分析

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

pandas教程:USDA Food Database USDA食品数据库

文章目录 14.4 USDA Food Database&#xff08;美国农业部食品数据库&#xff09; 14.4 USDA Food Database&#xff08;美国农业部食品数据库&#xff09; 这个数据是关于食物营养成分的。存储格式是JSON&#xff0c;看起来像这样&#xff1a; {"id": 21441, &quo…

OpenHarmony亮相MTSC 2023 | 质量效率共进,赋能应用生态发展

11月25日&#xff0c;MTSC 2023第十二届中国互联网测试开发大会在深圳登喜路国际大酒店圆满举行。大会以“软件质量保障体系和测试研发技术交流”为主要目的&#xff0c;旨在为行业搭建一个深入探讨和交流的桥梁和平台。OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&a…

Linux系统编程:文件系统总结

目录和文件 获取文件属性 获取文件属性有如下的系统调用&#xff0c;下面逐个来分析。 stat:通过文件路径获取属性&#xff0c;面对符号链接文件时获取的是所指向的目标文件的属性 从上图中可以看到stat函数接收一个文件的路径字符串&#xff08;你要获取哪个文件的属性&a…

零基础学Python第三天||写一个简单的程序

通过对四则运算的学习&#xff0c;已经初步接触了Python中内容&#xff0c;如果看官是零基础的学习者&#xff0c;可能有点迷惑了。难道敲几个命令&#xff0c;然后看到结果&#xff0c;就算编程了&#xff1f;这也不是那些能够自动运行的程序呀&#xff1f; 的确。到目前为止…

07-学成在线修改/查询课程的基本信息和营销信息

修改/查询单个课程信息 界面原型 第一步: 用户进入课程列表查询页面,点击编辑按钮编辑课程的相关信息 第二步: 进入编辑界面显示出当前编辑课程的信息,其中课程营销信息不是必填项,修改成功后会自动进入课程计划编辑页面 查询课程信息 请求/响应数据模型 使用Http Client测…

蓝桥杯day02——第三大的数

题目 给你一个非空数组&#xff0c;返回此数组中 第三大的数 。如果不存在&#xff0c;则返回数组中最大的数。 示例 1&#xff1a; 输入&#xff1a;[3, 2, 1] 输出&#xff1a;1 解释&#xff1a;第三大的数是 1 。 示例 2&#xff1a; 输入&#xff1a;[1, 2] 输出&…

osgFX扩展库-异性光照、贴图、卡通特效(1)

本章将简单介绍 osgFX扩展库及osgSim 扩展库。osgFX库用得比较多,osgSim库不常用&#xff0c;因此&#xff0c;这里只对这个库作简单的说明。 osgFX扩展库 osgFX是一个OpenSceneGraph 的附加库&#xff0c;是一个用于实现一致、完备、可重用的特殊效果的构架工具&#xff0c;其…

雷达公式实现(matlab)

雷达公式实现 代码来源&#xff1a;《雷达系统分析与设计(MATLAB版)(第三版)》 function [snr] radar_eq(pt,freq,g,sigma,b,nf,loss,range) % This program implements Eq.(1.63) %% Inputs:% pt——峰值功率&#xff0c;W% freq——雷达中心频率&#xff0c;Hz% g——天线…

ZKP15.2 Formal Methods in ZK (Part I)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 15: Secure ZK Circuits via Formal Methods (Guest Lecturer: Yu Feng (UCSB & Veridise)) 15.2 Formal Methods in ZK (Part I) Circuits Workflow Source Code: Witness Generation and ConstraintsWitness Generatio…

SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录 一、Nacos持久化 1.持久化说明 2.安装mysql数据库5.6.5以上版本(略) 3.修改配置文件 二、nacos高可用 1.集群说明 2.nacos集群架构图 2.集群搭建注意事项 3.集群规划 4.搭建nacos集群 5.安装Nginx 6.配置nginx conf配置文件 7.启动nginx进行测试即可 一、Nacos持久…

C语言——数组转换

将的两行三列数组转换为三行两列的数组 #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int a[2][3]{{1,2,3},{4,5,6}};int b[3][2],i,j;for ( i 0; i <1; i){for ( j 0; j <2; j){printf("%5d",a[i][j]);b[j][i]a[i][j];}printf(&…