【第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/htmlHTML格式用于表示网页内容
application/jsonJSON格式用于数据交换,常见于Restful风格的服务端接口
application/xmlXML格式用于SOAP和RESTful API之间的数据交换,以及XML文件的处理
image/jpegJPEG图片格式用于发送和接收JPEG图片
image/pngPNG图片格式用于发送和接收PNG图片
audio/mpegMPEG音频格式用于发送和接收音频文件
video/mp4MP4视频格式用于发送和接收视频文件
multipart/form-data表单数据格式用于包含表单数据的请求,特别是当需要上传文件时
application/x-www-form-urlencoded表单编码格式用于简单的表单数据提交
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值