首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >传统Web应用和RESTful API

传统Web应用和RESTful API

原创
作者头像
Eulogy
发布2025-06-12 12:29:21
发布2025-06-12 12:29:21
10900
代码可运行
举报
文章被收录于专栏:后端开发后端开发
运行总次数:0
代码可运行

传统Web应用和RESTful API

传统模式

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

代码语言:javascript
代码运行次数:0
运行
复制
@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格式的)。类似下面的情况:

代码语言:javascript
代码运行次数:0
运行
复制
@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在两种模式下的执行流程:

传统模式执行流程:

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

RESTful模式执行流程:

代码语言:javascript
代码运行次数:0
运行
复制
1. DispatcherServlet接收请求
2. HandlerMapping找到Controller
3. HandlerAdapter调用Controller方法
4. Controller返回数据对象
5. HttpMessageConverter序列化对象 ← 跳过视图解析
6. 直接返回JSON数据

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 传统Web应用和RESTful API
    • 传统模式
    • RESTful API模式
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档