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

传统Web应用和RESTful API模式

传统Web应用和RESTful API

传统模式

传统模式没有实现前后端分离,服务器处理完业务后直接返回完整的HTML页面,每次操作都要刷新整个页面。类似下面的情况:

@Controller
public class UserController {@RequestMapping("/addUser")public String addUser() {// 处理后返回JSP页面return "user/add"; // 跳转到添加用户页面}@RequestMapping("/saveUser")public String saveUser(User user) {userService.save(user);return "redirect:/userList"; // 重定向到用户列表页面}
}

RESTful API模式

RESTful API模式下,服务器不会返回整个页面,前后端是分离的,对于作为后端的服务器来说只需要返回数据(通常是JSON格式的)。类似下面的情况:

@RestController
@RequestMapping("/api/users")
public class UserController {@GetMapping // 获取所有用户public List<User> getAllUsers() {return userService.findAll();}@PostMapping // 创建新用户public Result createUser(@RequestBody User user) {userService.save(user);return Result.success("用户创建成功");}@DeleteMapping("/{id}") // 删除用户public Result deleteUser(@PathVariable Long id) {userService.delete(id);return Result.success("用户删除成功");}
}

总结

为什么我需要搞清楚这个呢,是由于学习Spring MVC的时候,Spring MVC的执行流程中的DispatcherServlet去解析Controller的返回值这个步骤困惑住了我,如果是RESTful API模式,其实就没有这个流程,如果是传统Web模式,就会又这个步骤。

下面是简化的Spring MVC在两种模式下的执行流程:

传统模式执行流程:

1. DispatcherServlet接收请求
2. HandlerMapping找到Controller
3. HandlerAdapter调用Controller方法
4. Controller返回ModelAndView(或字符串)
5. DispatcherServlet调用ViewResolver ← 这一步存在
6. ViewResolver解析视图名 → 物理视图
7. 渲染视图(填充数据)
8. 返回HTML页面

RESTful模式执行流程:

1. DispatcherServlet接收请求
2. HandlerMapping找到Controller
3. HandlerAdapter调用Controller方法
4. Controller返回数据对象
5. HttpMessageConverter序列化对象 ← 跳过视图解析
6. 直接返回JSON数据

相关文章:

  • 5G视频通话可以做营销吗
  • VBA即用型代码手册:Document 对象 Document Object
  • 10.Mkb、Mb 和 Mbps
  • 【完整源码+数据集+部署教程】安检爆炸物检测系统源码和数据集:改进yolo11-REPVGGOREPA
  • STM32实战:智能家居控制面板设计方案
  • sessionStorage.setItem
  • 将模型保存到kaggle中的model中
  • 【无标题】测试
  • day28 类的定义和方法
  • 【Java开发】Spring 事务开发完全指南:从入门到精通
  • ZYNQ学习记录FPGA(三)状态机
  • CBAM认证概述,CBAM认证的核心要素,CBAM认证的未来发展
  • 软件测试面试题总结【含答案】
  • 全球首个体重管理AI大模型“减单”发布,学AI大模型来近屿智能
  • 在Linux下使用vscode使用交叉编译工具链的gdb对core文件进行堆栈、变量查看
  • Spring Data MongoDB 技术指南
  • Spring核心框架完全指南 - 基础知识全解析
  • opencv vs2020正确的环境配置
  • Qt 动态插件系统QMetaObject::invokeMethod
  • 新闻类鸿蒙应用全链路运维指南:高并发场景下的稳定保障
  • 免费广告行业网站建设/百度网页入口
  • 苏州建设网站电话/网站排名seo
  • 在线详情页制作/seo发帖网站
  • 淘宝不能发布网站源码做商品/近一周新闻热点事件
  • 网站建设便宜不可信/零售客户电商网站
  • 建设项目公示对网站有什么要求/搜索引擎排名优化