• @RequestMapping注解基本介绍


    @RequestMapping注解的功能

    RequestMapping翻译过来就是请求映射

    主要功能就是:就是将请求和处理请求的控制器方法关联起来,建立映射关系

    服务器接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。

    @RequestMapping注解的位置

    可以加在控制器类上,加在类上代表标识一个类

    加在类上在访问类内部方法时,必须要在路径前面加上类标识上的路径(上图要加上/hello)才可以正常访问内部方法 

    也可以加在方法上,加在方法上就是标识一个方法

    就是标记一个方法,通过解析调用这个方法 

    @RequestMapping注解的value属性

    value属性的作用就是请求路径,当客户端发送何种请求时调用

    由图可知value是一个String类型的数组,也就是其中可以存放多个数据 

    其中path和value属性所代表的意思相同,由@AliasFor(别名)可以看出

    其中value属性是必须设置

    @RequestMapping(value = {"/","hello"})

    @RequestMapping注解的method属性

    通过设置method属性,用来规定请求方式(post,get,put,delete)

    其中可以通过RequestMethod来规定使用的请求方式, RequestMethod是一个枚举类型

    method属性也是数组类型的,也可以同时设置多个

    @RequestMapping(value = {"/","hello"},method = {RequestMethod.DELETE,RequestMethod.GET})

    同时也可以使用派生注解

    处理get请求的映射-->@GetMapping

    处理post请求的映射-->@PostMapping

    处理put请求的映射-->@PutMapping

    处理delete请求的映射-->@DeleteMapping

    用来代替method属性

    当请求方式不满足method属性时报,405错误:Request method 'xxxx' not supported

    @RequestMapping注解的params属性

    params属性通过请求的请求参数匹配请求映射,相当于对请求路径进行一定的规则匹配,满足params设定规则的才可以被匹配

    主要设置规则:

    "name":要求请求映射所匹配的请求必须携带name请求参数

    "!name":要求请求映射所匹配的请求必须不能携带name请求参数

    "pwd=123456":要求请求映射所匹配的请求必须携带pwd请求参数且pwd=123456

    "pwd!=123456":要求请求映射所匹配的请求必须携带param请求参数但是pwd!=123456

    1. @RequestMapping(value = {"test"},
    2. method = {RequestMethod.GET},
    3. params = {"name","!username","pwd=123456","password!=55555"}
    4. )
    5. public String test(Model model){
    6. model.addAttribute("zt","ok");
    7. return "test";
    8. }

    上述规则为:访问路径必须含有name,且不能还要username,其中必须含有pwd且内容必须为123456,password不一定含有,如果含有内容不能是55555,规则必须全部满足

    params也是数组,类型为String,可以同时指定多个规则

    如果不匹配则会报400错误

    Parameter conditions "指定的规则" not met for actual request parameters: 你的请求参数

    @RequestMapping注解的headers属性

    headers属性通过请求的请求头信息匹配请求映射,与params类似不过这个规则检查是对请求头来进行检验的

    "header":要求请求映射所匹配的请求必须携带header请求头信息

    "!header":要求请求映射所匹配的请求必须不能携带header请求头信息

    "header=value":要求请求映射所匹配的请求必须携带header请求头信息且header=value

    "header!=value":要求请求映射所匹配的请求必须携带header请求头信息且header!=value

    1. @RequestMapping(value = {"test"},
    2. method = {RequestMethod.GET},
    3. params = {"name","!username","pwd=123456","password!=55555"},
    4. headers = {"!Host"}
    5. )
    6. public String test(Model model){
    7. model.addAttribute("zt","ok");
    8. return "test";
    9. }

    上面的代码headers的规则表示请求头中不能含有Host

    在浏览器发送请求下必定会携带Host,于是一定会报错

    注意这里报错是404,与找不到路径是相同报错

    以上就是 @RequestMapping注解常用的一些属性啦

    如果有错误的地方欢迎大家指正

  • 相关阅读:
    多级缓存、
    网络编程——套接字
    【牛客网】BC146 添加逗号
    如何在 Windows 10 上启用和设置 BitLocker 加密
    04_feign介绍(OpenFeign)
    Linux入门学习 —— 常用的基本命令(下)
    基于片段的分子生成网络 (FLAG)使用方法及案例测评
    2.3、传输方式
    《C和指针》笔记31:多维数组的数组名、指向多维数组的指针、作为函数参数的多维数组
    containerd的安装和使用
  • 原文地址:https://blog.csdn.net/qq_51260764/article/details/126105418