03 SS之返回JSON+

news/2024/11/15 2:33:46/

1. 返回JSON

为什么要返回JSON

前后端分离成为企业应用开发中的主流,前后端分离通过json进行交互,登录成功和失败后不用页面跳转,而是给前端返回一段JSON提示, 前端根据JSON提示构建页面.

需求: 对于登录的各种状态 , 给前端返回JSON数据

1.1 在vo包下创建一个HttpResult对象, 存储返回的信息

vo即 value object值对象, 所有不存储在数据库中的对象就放在vo包下

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class HttpResult {private Integer code;private String msg;private Object data;public HttpResult(Integer code, String msg) {this.code = code;this.msg = msg;}
}

1.2 创建认证(登录)成功处理器AuthenticationSuccessHandler

当且仅当认证(登录)成功后, 该处理器开始工作, 给前端返回一个JSON

@Component
public class MyAuthenticationSuccessHandle implements AuthenticationSuccessHandler {//注入一个序列化器, 可以将JSON序列化, 反序列化@Resourceprivate ObjectMapper objectMapper;@Overridepublic void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {response.setCharacterEncoding("UTF-8");response.setContentType("application/json;charset=utf-8");//借助Lombok实现建造者模式, 并通过建造者模式创建对象HttpResult httpResult = HttpResult.builder().code(1).msg("登陆成功").build();//将对象转化为JSONString responseJson = objectMapper.writeValueAsString(httpResult);PrintWriter writer = response.getWriter();writer.println(responseJson);}
}

在安全配置类中注入登录成功处理器

@Configuration
public class MySSWebSecurityConfig extends WebSecurityConfigurerAdapter {// 注入登陆成功的处理器@Autowiredprivate MyAuthenticationSuccessHandle successHandler;}

http://www.ppmy.cn/news/1351840.html

相关文章

autojs自动化刷视频脚本

视频展示 视频 //悬浮窗 // var window floaty.rawWindow( // <frame gravity"center" bg"#ff00ff"> // <button id"action" w"300dp" h"300dp"> // 按钮 // </button> // </fram…

短路在JavaScript中是如何工作的?

在 JavaScript 中&#xff0c;理解真实和虚假的值是编写高效简洁代码的基础。结合短路的概念&#xff0c;开发人员可以编写优雅的解决方案来应对常见的编程挑战。 在本实践指南中&#xff0c;我们将探讨真实值和虚假值&#xff0c;并了解 JavaScript 中短路的机制。 您可以从…

UnityShader——02三大主流编程语言

三大主流编程语言 Shader Language Shader language的发展方向是设计出在便携性方面可以与C/JAVA相比的高级语言&#xff0c;“赋予程序员灵活而方便的编程方式”&#xff0c;并“利用图形硬件的并行性&#xff0c;提高算法的效率” Shader language目前主要有 3 种语言&…

【JavaScript】Promise 和异步操作

文章目录 1. 什么是Promise2. 基本用法使用.then()处理成功状态使用.catch()处理失败状态链式调用 3. Promise.all() 和 Promise.race()Promise.all()Promise.race() 4. 异步操作与async/await使用 async/await 5. 总结 在 JavaScript 中&#xff0c; Promise 是一种处理异步操…

【AI写文章】解释 Git 的基本概念和使用方式

Git是一个版本控制系统&#xff0c;它可以追踪文件的变化并记录历史。以下是Git的基本概念和使用方式&#xff1a; 1. 仓库&#xff08;Repository&#xff09;&#xff1a;Git仓库是用来存储项目的历史记录和文件的地方。可以在本地计算机上创建一个仓库&#xff0c;也可以在…

机器视觉与智能制造:开启工业自动化的新篇章

机器视觉与智能制造的结合&#xff0c;无疑为工业自动化开启了一个全新的篇章。这两者的结合&#xff0c;不仅提高了生产效率&#xff0c;降低了成本&#xff0c;还提升了产品质量&#xff0c;增强了企业的市场竞争力。 一、机器视觉的核心技术 机器视觉是一种模拟人类视觉的…

如何使用idea连通服务器上的Redis(详细版本)

这里我使用的是阿里云的服务器 打开阿里云的安全组&#xff0c;设置端口为6379 在redis.conf文件中&#xff0c;注释bind 127.0.0.1 将protected-mode设置为no&#xff0c;即关闭保护模式 更改服务器中的防火墙&#xff0c;放行6379端口 # 放行端口 firewall-cmd --zo…

linux---内存管理

一 虚拟内存 即使是现代操作系统中&#xff0c;内存依然是计算机中很宝贵的资源&#xff0c;看看你电脑几个T固态硬盘&#xff0c;再看看内存大小就知道了。 为了充分利用和管理系统内存资源&#xff0c;Linux采用虚拟内存管理技术&#xff0c;利用虚拟内存技术让每个进程都有…