【Spring】@RequestMapping、@RestController和Postman

06-01 1473阅读

文章目录

  • 1.@RequestMapping 注解介绍
  • 2. @RequestMapping 使用
  • 3. @RequestMapping 是 GET 还是 POST 请求?
    • GET 请求
    • POST 请求
    • 指定 GET/POST 方法类型
    • 2. Postman 介绍
      • 1. 创建请求
      • 2. 传参介绍
        • 1. 普通传参
        • 2. form-data
        • 3. x-www-form-urlencoded
        • 4. raw

          1.@RequestMapping 注解介绍

          @RequestMapping 是 Spring Web MVC 引用程序中最常被用到的注解之一,它是用来注册接口的路由映射的,表示服务收到请求时,路径为 /sayHello 的请求就会调用 sayHi 这个方法的代码

          路由映射:当用户访问一个 URL 时,将用户的请求对应到程序中某个类的某个方法的过程就叫路由映射


          既然 @RequestMapping 已经可以达到我们的目的了,我们为什么还要加 @RestController 呢?

          • 我们把 @RestController 去掉,再来访问一次image.png
          • 可以看到,程序报了 404,找不到该页面,这就是 @RestController 起到的作用

            一个项目中,会有很多类,每个类可能会有很多的方法,Spring 程序怎么知道要执行哪个方法呢?

            • Spring 会对所有的类进行扫描,如果类加了注解 @RestController,Spring 才会去看这个类里面的方法有没有加 @RequestMapping 这个注解

              2. @RequestMapping 使用

              @RequestMapping 既可修饰方法,也可修饰类。 当修饰类和方法时,访问的地址是类路径+方法路径

              • @RequestMapping 标识一个类:设置映射请求的请求路径的初识信息
              • @RequestMapping 标识一个方法:设置映射请求请求路径的具体信息
                import org.springframework.web.bind.annotation.RequestMapping;  
                import org.springframework.web.bind.annotation.RestController;  
                  
                @RequestMapping("/user")  
                @RestController  
                public class UserController {  
                  
                    @RequestMapping("/sayHello")  
                    public String sayHi() {  
                        return "hello, spring mvc";  
                    }  
                }
                
                • 访问地址:

                  http://127.0.0.1:8080/user/sayHello 【Spring】@RequestMapping、@RestController和Postman

                • 注意:@RequestMapping 的 URL 路径最前面加不加 / 都可以,Spring 程序启动时,会进行判断,如果前面没有 /,Spring 会拼接上一个 /

                  通常情况下,我们加上 /,@RequestMapping 的 URL 路径也可以是多层的,最终访问时,依然是类路径+方法路径

                  import org.springframework.web.bind.annotation.RequestMapping;  
                  import org.springframework.web.bind.annotation.RestController;  
                    
                  @RequestMapping("/user/m1")  
                  @RestController  
                  public class UserController {  
                    
                      @RequestMapping("/sayHello")  
                      public String sayHi() {  
                          return "hello, spring mvc";  
                      }  
                  }
                  

                  【Spring】@RequestMapping、@RestController和Postman


                  3. @RequestMapping 是 GET 还是 POST 请求?

                  我们来测试一下就知道了

                  GET 请求

                  浏览器发送的请求类型都是 GET,通过以上案例,可以看出来 @RequestMapping 支持 GET 请求

                  POST 请求

                  我们通过 form 表单来构造请求:


                  创建 test.html,HTML代码:

                    
                    
                    
                        
                      Title  
                    
                    
                        
                            
                        
                    
                  
                  
                  • 前端代码放在 static 目录下,访问方式为:

                    http://127.0.0.1:8080/test.html 【Spring】@RequestMapping、@RestController和Postman

                  • 如果有多层目录,访问链接从 static 目录开始写【Spring】@RequestMapping、@RestController和Postman
                  • 如上图,访问链接为:127.0.0.1:8080/html/test.html

                    image.png

                    从运行结果可以看出:@RequestMapping 既支持 GET 请求,又支持 POST 请求。同理,也支持其他的请求方式,那如何指定 GET 或者 POST 类型呢?


                    指定 GET/POST 方法类型

                    我们可以显示指定的 @RequestMapping 来接收 POST 的情况,如下所示:

                    import org.springframework.web.bind.annotation.RequestMapping;  
                    import org.springframework.web.bind.annotation.RequestMethod;  
                    import org.springframework.web.bind.annotation.RestController;  
                      
                    @RestController  
                    public class UserController {  
                      
                        @RequestMapping(value = "/getRequest", method = RequestMethod.POST)  
                        public String sayHi() {  
                            return "hello, spring mvc";  
                        }  
                    }
                    

                    2. Postman 介绍

                    从上面的案例中,发现了一个新的问题,就是我们测试后端方法时,还需要去写前端代码。这对我们来说,是一件麻烦又痛苦的事情。

                    随着互联网的发展,也随着项目难度的增加,企业也按照开发的功能,把人员拆分成了不同的团队。界面显示交给“前端开发工程师”,业务逻辑的实现交给了“后端开发工程师”。后端开发工程师,不要求也不需要掌握前端的技能了。

                    那后端开发工程师如何测试自己的程序呢?使用专业的接口测试工具—— Postman


                    1. 创建请求

                    【Spring】@RequestMapping、@RestController和Postman

                    【Spring】@RequestMapping、@RestController和Postman

                    界面介绍image.png


                    2. 传参介绍

                    1. 普通传参

                    也就是通过查询字符串来传参

                    学习 HTTP 的时候,我们通过 URL 来访问互联网上的某一个资源,URL 的格式如下:image.png 其中,查询字符串就是请求的参数image.png


                    2. form-data

                    完整表示为:multipart/form-data。表单提交的数据,在 form 标签中加上 enctyped="multipart/form-data",通常用于提交图片/文件。对应 Content-Type: multipart/form-dataimage.png


                    3. x-www-form-urlencoded

                    form 表单,对应 Content-Type: application/x-www-from-urlencodedimage.png


                    4. raw

                    可以上传任意格式的文本,可以上传 text、json、xml、html 等image.png


免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码