【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !

【Spring 全家桶】Spring MVC 快速入门,开始web 更好上手(下篇) , 万字解析, 建议收藏 ! ! !

本篇会加入个人的所谓鱼式疯言

❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言

而是理解过并总结出来通俗易懂的大白话,

小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.

🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

在这里插入图片描述

引言

Spring MVC 犹如一座桥梁,连接着前端的精彩与后端的强大,它赋予开发者以灵动之笔,在数字化的画布上描绘出绚丽多彩的 Web 世界。在 Spring MVC 的引领下,我们能够驾驭复杂的业务逻辑,实现流畅的用户体验,让技术与创意完美融合,开启无限可能的 Web 开发之旅。

目录

  1. 返回响应内容
  2. lombok
  3. 加法器

一. 返回响应内容

在上篇中,我们学习了如何使用控制层的处理请求相关, 现在我们学习如何处理返回响应内容。

1. 设置状态码

importjakarta.servlet.http.HttpServletResponse;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;@RequestMapping("/response")@ControllerpublicclassResponseController{ // 设置状态码/** * 设置状态码, 利用响应 HttpServletResponse 来设置 * @param response * @return */@RequestMapping("/setStatus")@ResponseBodypublicStudentsetStatsus(HttpServletResponse response){ Student student =newStudent(); student.setName("dalao"); student.setAge(18); student.setGender("nv"); response.setStatus(HttpServletResponse.SC_BAD_REQUEST);return student;}
在这里插入图片描述

如上图:

类定义前 加入 @RequestMapping("/response")@Controller
方法定义前 加入@RequestMapping(“/setStatus”) 和 @ResponseBody
使用 HttpServletResponse 类型来接收 响应方式
response.setStatus(); 这个方法来设置响应的状态码, 这个为其中的 一种枚举类型的状态码常量之一HttpServletResponse.SC_BAD_REQUEST400

鱼式疯言

HttpServletResponse.SC_BAD_REQUEST 是一种枚举类型的状态码常量, 关于这些常量, 见如下图(源码中参考):
在这里插入图片描述


以上这些 状态码 , 可以根据具体的需求来设置。

2. 设置报文格式

importjakarta.servlet.http.HttpServletResponse;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;@RequestMapping("/response")@ControllerpublicclassResponseController{ /** * 设置报文格式 */@RequestMapping(value ="/setContentType",produces ="application/json")@ResponseBodypublicStringSetHeader(

Read more

如何实现 Web 触发后的“离线”升级?Systemd 异步机制与 A/B 状态机切换详解

目录 利用 Systemd Path 单元实现可靠系统升级 —— 支持 Web 接口触发且父进程退出后仍可继续执行 1. 背景与目标 2. 核心设计原则 3. 系统架构概览 4. 详细实现 4.1 升级脚本(独立执行单元) 4.2 Systemd 单元配置 4.3 Web 接口实现(FastAPI 示例) 5. 为何父进程退出不影响升级? 进程关系图 6. 增强可靠性建议 6.1 使用持久化触发目录 6.2 添加升级状态查询接口 6.3 升级脚本增加锁机制 7. 总结 AB 升级详解:基于软链接与配置切换的双环境热升级方案 1.

OpenClaw Web Search 完全指南(2026年3月最新)

OpenClaw Web Search 完全指南(2026年3月最新) 本文详细介绍 OpenClaw 内置 web_search 工具的 5 个官方搜索渠道,以及 Tavily 技能的使用方法。帮助你选择最适合的免费/付费方案。 目录 * OpenClaw 搜索功能概述 * 5 个官方搜索渠道详解 * 1. Brave Search API * 2. Google Gemini * 3. Grok (xAI) * 4. Kimi (Moonshot) * 5. Perplexity * 免费额度对比表 * 推荐配置方案 * Tavily Web Search 技能 * 配置步骤详解 * 常见问题 OpenClaw 搜索功能概述 OpenClaw 提供两种搜索能力:

前端CI/CD流程:自动化部署的正确打开方式

前端CI/CD流程:自动化部署的正确打开方式 毒舌时刻 CI/CD?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为配置了CI/CD就能解决所有部署问题?别做梦了!到时候你会发现,CI/CD配置出错的概率比手动部署还高。 你以为随便找个CI/CD工具就能用?别天真了!不同的工具配置方式不同,坑也不同。比如Jenkins的配置文件就像是天书,GitLab CI的YAML语法也能让你崩溃。 为什么你需要这个 1. 自动化部署:CI/CD可以自动完成代码测试、构建和部署,减少手动操作,提高部署效率。 2. 减少人为错误:自动化部署可以避免手动部署时的人为错误,提高部署的可靠性。 3. 快速反馈:CI/CD可以在代码提交后立即进行测试和构建,及时发现问题,提供快速反馈。 4. 持续集成:CI/CD可以确保代码的持续集成,避免代码冲突和集成问题。 5. 环境一致性:CI/CD可以确保不同环境的配置一致,避免环境差异导致的问题。 反面教材

前端微前端架构:大项目的救命稻草还是自找麻烦?

前端微前端架构:大项目的救命稻草还是自找麻烦? 毒舌时刻 微前端?听起来就像是一群前端工程师为了显得自己很高级,特意发明的复杂术语。不就是把一个大应用拆成几个小应用嘛,至于搞得这么玄乎吗? 你以为拆成微前端就能解决所有问题?别做梦了!到时候你会发现,调试变得更麻烦了,部署变得更复杂了,甚至连样式都可能互相冲突。 为什么你需要这个 1. 大型应用的可维护性:当你的应用变得越来越大,单靠一个团队已经无法高效维护时,微前端可以让不同团队独立开发和部署各自的模块。 2. 技术栈的灵活性:不同的微前端可以使用不同的技术栈,比如一个模块用React,另一个模块用Vue,这样可以根据团队的专长选择最合适的技术。 3. 独立部署:微前端可以独立部署,不需要整个应用一起发布,这样可以减少发布风险,加快发布速度。 4. 团队协作:不同团队可以独立开发各自的微前端,减少代码冲突和沟通成本。 反面教材 // 这是一个典型的单体应用结构 import React from 'react'; import ReactDOM from 'react-dom'