【第5章】spring-mvc请求映射处理


前言

本章来讲解RequestMapping注解的用法,帮助大家进一步了解RequestMapping注解各种各样的使用方式,本章节测试工具使用Postman,不再提供JSP代码。


一、普通用法及类结构

package org.example.springmvc.params.controller;

import com.alibaba.fastjson2.JSONObject;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
 * Create by zjg on 2024/4/27
 */
@RestController
@RequestMapping("/mapping/")
public class MappingController {
    @RequestMapping("mapping01")
    public void mapping01(){
        System.out.println("这是一个普通的请求");
    }
}

二、method

//method
@RequestMapping(value = "mapping02",method = RequestMethod.GET)
 public void mapping02(){
     System.out.println("GET请求可以访问");
 }
 @RequestMapping(value = "mapping03",method = RequestMethod.POST)
 public void mapping03(){
     System.out.println("POST请求可以访问");
 }
 @RequestMapping(value = "mapping04",method = {RequestMethod.GET,RequestMethod.POST})
 public void mapping04(){
     System.out.println("GET和POST请求可以访问");
 }

三、params

//params
@RequestMapping(value = "mapping05",params = {"name"})
public void mapping05(String name){
    System.out.println("请求携带name参数可以访问"+name);
}
@RequestMapping(value = "mapping06",params = {"!name"})
public void mapping06(){
    System.out.println("请求不携带name参数可以访问");
}
@RequestMapping(value = "mapping07",params = {"name=张三"})
public void mapping07(String name){
    System.out.println("请求携带name值为张三参数可以访问"+name);
}
@RequestMapping(value = "mapping08",params = {"name!=张三"})
public void mapping08(){
    System.out.println("请求携带name值不为张三参数可以访问");
}

四、headers

//headers
@RequestMapping(value = "mapping09",headers ={"Host=localhost"} )
public void mapping09(){
    System.out.println("请求头携带Host=localhost可以访问");
}
@RequestMapping(value = "mapping10",headers ={"!Referer"} )
public void mapping10(){
    System.out.println("请求头未携带Referer可以访问");
}

五、consumes

//consumes
@RequestMapping(value = "mapping11",consumes ={"application/x-www-form-urlencoded"} )
public void mapping11(){
    System.out.println("请求内容类型为application/x-www-form-urlencoded可以访问");
}

六、produces

 //produces
@RequestMapping(value = "mapping12",produces ={"application/json"} )
public JSONObject mapping12(){
    System.out.println("响应内容类型为application/json");
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("code",200);
    jsonObject.put("data","");
    jsonObject.put("message","请求成功");
    return jsonObject;
}

七、通配符

//通配符?,*,**
@RequestMapping(value = "mapping13?")
public void mapping13(){
    System.out.println("请求url向后模糊匹配一位可以访问");
}
@RequestMapping(value = "mapping14*")
public void mapping14(){
    System.out.println("请求url向后模糊匹配任意位字符可以访问(直到路径分隔符为止)");
}
@RequestMapping(value = "mapping15/**")
public void mapping15(){
    System.out.println("请求url向后模糊匹配任意位字符可以访问(无视路径分隔符)");
}

八、路径变量

//路径变量
@RequestMapping(value = "mapping16/{id}")
public void mapping16(@PathVariable String id){
    System.out.println("请求url中的路径变量"+id);
}

九、扩展

@RequestMapping也有特定于HTTP方法的快捷方式变体:

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

总结

回到顶部

以下是Content-Type常用类型的表格展示:

Content-Type 类型 描述 常见用途
text/plain 纯文本格式 用于传输简单的文本信息
text/html HTML格式 用于表示网页内容
application/json JSON格式 用于数据交换,常见于Restful风格的服务端接口
application/xml XML格式 用于SOAP和RESTful API之间的数据交换,以及XML文件的处理
image/jpeg JPEG图片格式 用于发送和接收JPEG图片
image/png PNG图片格式 用于发送和接收PNG图片
audio/mpeg MPEG音频格式 用于发送和接收音频文件
video/mp4 MP4视频格式 用于发送和接收视频文件
multipart/form-data 表单数据格式 用于包含表单数据的请求,特别是当需要上传文件时
application/x-www-form-urlencoded 表单编码格式 用于简单的表单数据提交

相关推荐

  1. 5spring-mvc请求映射处理

    2024-05-03 11:50:12       11 阅读
  2. Spring Mvc请求处理过程分析 --- 参数解析

    2024-05-03 11:50:12       35 阅读
  3. Spring MVC 中,处理 PUT 和 DELETE 请求

    2024-05-03 11:50:12       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-03 11:50:12       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-03 11:50:12       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-03 11:50:12       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-03 11:50:12       20 阅读

热门阅读

  1. 第Ⅰ章-VII Typescript主要功能概览

    2024-05-03 11:50:12       11 阅读
  2. PHP 类型比较常见方法

    2024-05-03 11:50:12       10 阅读
  3. 软件开发标准流程与软件工程基本理论

    2024-05-03 11:50:12       9 阅读
  4. OneFlow 概念清单

    2024-05-03 11:50:12       14 阅读
  5. Leetcode之python使用记录

    2024-05-03 11:50:12       14 阅读
  6. Layui中change事件不生效

    2024-05-03 11:50:12       11 阅读
  7. 基于Spring EL表达式处理业务表达式

    2024-05-03 11:50:12       11 阅读
  8. 【无标题】

    2024-05-03 11:50:12       9 阅读
  9. 云计算服务模型比较:IaaS、PaaS与SaaS

    2024-05-03 11:50:12       14 阅读