码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SpringMVC基础:RestFul风格


    RestFul风格

    中文释义为“表现层状态转换”(名字挺高大上的),它不是一种标准,而是一种设计风格。它的主要作用是充分并正确利用HTTP协议的特性,规范资源获取的URI路径。通俗的讲,RESTful风格的设计允许将参数通过URL拼接传到服务端,目的是让URL看起来更简洁实用,并且我们可以充分使用多种HTTP请求方式(POST/GET/PUT/DELETE),来执行相同请求地址的不同类型操作。

    因此,这种风格的连接,我们就可以直接从请求路径中读取参数,比如:

    http://localhost:8080/mvc/index/123456

    我们可以直接将index的下一级路径作为请求参数进行处理,也就是说现在的请求参数包含在了请求路径中:

    1. @RequestMapping("/index/{str}")
    2. public String index(@PathVariable String str) {
    3. System.out.println(str);
    4. return "index";
    5. }

    注意请求路径我们可以手动添加类似占位符一样的信息,这样占位符位置的所有内容都会被作为请求参数,而方法的形参列表中必须包括一个与占位符同名的并且添加了@PathVariable注解的参数,或是由@PathVariable注解指定为占位符名称:

    1. @RequestMapping("/index/{str}")
    2. public String index(@PathVariable("str") String text){
    3. System.out.println(text);
    4. return "index";
    5. }

    如果没有配置正确,方法名称上会出现黄线。

    我们可以按照不同功能进行划分:

    • POST http://localhost:8080/mvc/index  -  添加用户信息,携带表单数据
    • GET http://localhost:8080/mvc/index/{id}  -  获取用户信息,id直接放在请求路径中
    • PUT http://localhost:8080/mvc/index  -  修改用户信息,携带表单数据
    • DELETE http://localhost:8080/mvc/index/{id}  -  删除用户信息,id直接放在请求路径中

    我们分别编写四个请求映射:

    1. @Controller
    2. public class MainController {
    3. @RequestMapping(value = "/index/{id}", method = RequestMethod.GET)
    4. public String get(@PathVariable("id") String text){
    5. System.out.println("获取用户:"+text);
    6. return "index";
    7. }
    8. @RequestMapping(value = "/index", method = RequestMethod.POST)
    9. public String post(String username){
    10. System.out.println("添加用户:"+username);
    11. return "index";
    12. }
    13. @RequestMapping(value = "/index/{id}", method = RequestMethod.DELETE)
    14. public String delete(@PathVariable("id") String text){
    15. System.out.println("删除用户:"+text);
    16. return "index";
    17. }
    18. @RequestMapping(value = "/index", method = RequestMethod.PUT)
    19. public String put(String username){
    20. System.out.println("修改用户:"+username);
    21. return "index";
    22. }
    23. }

  • 相关阅读:
    操作系统第二章第二周练习
    SLAM从入门到精通(被忽视的基础图像处理)
    C#更改图的PixelFormat
    阿里云存储解决方案,助力轻舟智航“将无人驾驶带进现实”
    Vue和React对比
    图之最小生成树Prim算法详解(C语言版)
    简单好用的解压缩软件:keka 中文 for mac
    【Paddle】图像分类竞赛baseline——以智能硬件语音控制的时频图分类挑战赛为例
    Python跳盆算法,来自物质结构的优化算法
    01程序执行原理
  • 原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/126573309
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号