• 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. }

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

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

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

    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. }

  • 相关阅读:
    免杀对抗-反沙盒+反调试
    《机械工程基础》复习题
    低代码平台如何兼顾开发速度与开发质量
    JVM内存模型与垃圾回收
    科学计算库 —— Matplotlib
    《中台产品经理宝典》图书连载:使用动作分析法实现业务中台化抽象
    C++-关键字:extern “C”的用法和作用
    kafka集群部署
    Win11无法将值写入注册表项如何解决?
    矩阵按键简单使用
  • 原文地址:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/126573309