首页 > 其他分享 >请求映射

请求映射

时间:2024-10-30 13:33:16浏览次数:4  
标签:index RequestMapping 请求 映射 default age public String

@Controller

默认返回页面地址

@Controller
public class Test{

	@RequestMapping("/index.page")
    public String index(){
        // 会返回 src/main/resources/templates/index.html 文件
        return "index";
    }
}

@RestController

@Controller 和 @ResponseBody 的结合体

@RestController
public class Test{

	@RequestMapping("/index.page")
    public String index(){
        // 返回字符串 index
        return "index";
    }
}

@RequestMapping

@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {

    // 这三个货互为别名
	String name() default "";
	@AliasFor("path")
	String[] value() default {};
	@AliasFor("value")
	String[] path() default {};

    // 指定请求方式 RequestMethod。请求不合法响应 405
	RequestMethod[] method() default {};

    // 限定参数。参数不匹配响应 400
	String[] params() default {};

    // 限定 header
	String[] headers() default {};

    // 限定请求类型,content-type,MediaType,不匹配响应 415
	String[] consumes() default {};

    // 响应什么数据
	String[] produces() default {};

}

一些示例

@RestController
public class Test3{
    
    // 请求 url 参数必须有 age,http://localhost:8080/hello?age=18
    @RequestMapping(value="/hello", params="age")
    public void test1(int age){
        
    }
    
    // 请求参数必须有 age 并且值必须为 18,必须携带 username,gender 不能为1(不带 gender 也相当于!=1)
    @RequestMapping(value="/hello2", params={"age=18","username","gender!=1"})
     public void test1(int age, String username, int gender){
        
    }
    
     // 请求中请求有必须要有 token 参数
    @RequestMapping(value="/hello3", headers="token")
    public void test1(@RequestHeader("token") String age){
        
    }
    
    // 当请求的 content-type 是 MediaType.APPLICATION_JSON_VALUE 才会走这个方法
    @PostMapping(value = "/hello4", consumes = MediaType.APPLICATION_JSON_VALUE)
    public String hello(@RequestBody MyRequestBody requestBody) {

        return "Received name: " + requestBody.getName();
    }
    
    // 返回 json,所以方法返回值要是一个对象
    @GetMapping(value = "/hello5", produces = MediaType.APPLICATION_JSON_VALUE)
    public MyResponseBody hello() {
        return new MyResponseBody("Hello, World!");
    }
}

class MyResponseBody {
    private String message;

    public MyResponseBody(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

REST Ful

  • @GetMapping:获取资源
  • @PostMapping:创建资源
  • @PutMapping:更新整个资源
  • @DeleteMapping:删除资源
  • @PatchMapping:更新资源部分信息

标签:index,RequestMapping,请求,映射,default,age,public,String
From: https://www.cnblogs.com/cyrushuang/p/18515672

相关文章

  • 【SpringMVC】web服务器,访问失败的问题,SpringMVC,建立连接,请求
    【web服务器】web服务器可以对http协议进行封装,程序员不需要直接对http协议进行操作(不需要去写复杂的网络编程代码),让web开发更加便捷,所以它也有「WWW服务器」的称呼常见的web服务器:Tomcat,Jboss,IIS等SpringBoot内置了Tomcat服务器,无需配置即可使用Tomcat默认端口是「8080」......
  • Python——发送HTTP请求
    在当今这个高度数字化的时代,网络请求成为了我们日常生活中不可或缺的一部分。无论是浏览网页、在线购物还是社交媒体互动,背后都涉及到了无数次的网络请求。Python,作为一种广泛使用的编程语言,提供了强大的库来处理这些网络请求。aiohttp是一个流行的异步HTTP客户端/服务端框架......
  • axios请求封装(vue2)
    importaxiosfrom'axios';import{ElLoading,ElMessage}from'element-plus';import{RefreshToken}from'@/request';import{getlocalStorage,setlocalStorage}from'@/utils/common.js';constpendingMap=new......
  • vue——抽取请求配置文件,打包后修改配置文件可修改请求地址,不用二次打包。问题:本地启
    参考:1.https://blog.csdn.net/u012193330/article/details/83310924  webpack中的path、publicPath、contentBase的区分2.https://www.cnblogs.com/beichengshiqiao/p/17339341.html vue全家桶进阶之路48:Vue3跨域配置devServer的参数和设置3.https://www.cnblogs.com/jing......
  • 3.1.4 Hyperspace 的临时映射1
    系列文章目录文章目录系列文章目录3.1.4Hyperspace的临时映射MmCreateHyperspaceMappingMmGetPageTableForProcess3.1.4Hyperspace的临时映射Windows内核有时候需要将某些物理页面临时映射到内核的虚存区间,用做“草稿”或其他临时的用途。为此,Windows内核在系......
  • thinkphp5如何获取请求过来的网址
    ​为了掌握如何在thinkphp5中获取请求的网址,本文将介绍以下几个关键步骤:1.了解请求对象的基础;2.使用url方法获取完整URL;3.获取URL中的各个组成部分;4.使用场景:重定向与获取上一个页面的URL;5.处理请求对象中的安全性问题。在使用thinkphp5进行开发时,对请求的处理是非常关键的,而获取......
  • 实现并发请求
    使用node实现请求的需要的接口newList.js//varexpress=require('express');varrouter=express.Router();//动态路由处理for(leti=1;i<=100;i++){router.get('/file'+i,function(req,res){setTimeout(()=>{res.send({......
  • 如何封装一个可取消的 HTTP 请求?
    前言你可能会好奇什么样的场景会需要取消HTTP请求呢?确实在实际的项目开发中,可能会很少有这样的需求,但是不代表没有,比如:假如要实现上述这个公告栏,每点击一个tab按钮就会切换展示容器容器中的内容,但是由于这是三个tab按钮对应展示容器和信息条目结构样式都一致,于是......
  • nginx 根路径同时代理 http ws sse 三种请求
    HTTP(HyperTextTransferProtocol):超文本传输协议,是用于在客户端(通常是web浏览器)和服务器之间传输数据的协议。HTTP是Web的基础,用于请求和传输网页、图像、视频等资源。它采用请求-响应模型,支持多种方法(如GET、POST等),并可通过HTTP/1.1和HTTP/2等版本进行优化,以提高性能和用户体验。......
  • 【揭秘】Logback日志如何实现请求唯一追踪ID,提升系统监控效能!
    在分布式系统中,为了方便追踪和调试问题,通常会为每个请求生成一个唯一的追踪ID(TraceID)。这个ID可以在整个请求的生命周期中传递,并在日志中记录。Logback是一个流行的Java日志框架,可以通过自定义MDC(MappedDiagnosticContext)来实现这一功能。以下是如何在Logback中添......