Spring MVC中的一些常用注解

目录

@RequestMapping

实现路由映射

限制请求方式

@PathVariable

从url中获取变量的值

更改绑定参数的名字

@RequestParam

可以传递集合 

更改绑定参数的名字

可修改是否为必传参数

@RequestBody

获取请求正文的内容 

可修改是否为必传参数

@RequestPart

可以支持上传文件

更改绑定参数的名字

可修改是否为必传参数

@Controller

@CookieValue

获取指定的Cookie值

@SessionAttribute

获取指定的Session值

@RequestHeader

获取请求头中的值

@Controller

返回html页面

@ResponseBody

设置返回类型为数据


@RequestMapping

这个注解既是类注解也是方法注解 

实现路由映射

这个注解主要来实现URL路由映射,也就是浏览器连接程序的作用。

url的组成:http://IP:端口号/类注解/方法注解

@RestController
public class LoginController {@RequestMapping("/fun1")public String fun1() {return "hahaha";}
}

@RequestMapping("/test")
@RestController
public class LoginController {@RequestMapping("/fun1")// "/"可写可不写public String fun1() {return "hahaha";}
}

限制请求方式

@RequestMapping("/test")
@RestController
public class LoginController {@RequestMapping(value = "/fun1", method = RequestMethod.GET)// 只接收GET请求public String fun1() {return "hahaha";}
}

 

@PathVariable

从url中获取变量的值

@RequestMapping("/fun2/{name}")
public String fun2(@PathVariable String name) {return "name:"+name;
}

更改绑定参数的名字

此时形参username的名字就可以随意更改了。

@RequestParam

可以传递集合 

如果不加 @RequestParam注释Spring会默认将前端传的集合转换成数组。

@RequestMapping("/fun3")
public List<String> fun3(@RequestParam List<String> list) {return list;
}

@RequestMapping("/fun3")
public List<String> fun3(List<String> list) {return list;
}

更改绑定参数的名字

@RequestMapping("/fun3")
public List<String> fun3(@RequestParam("list") List<String> a) {return a;
}

此时形参username的名字就可以随意更改了。

可修改是否为必传参数

被@RequestParam修饰的参数默认为必传参数。

@RequestMapping("/fun3")
public List<String> fun3(@RequestParam(value = "list", required = false) List<String> a) {return a;
}

此时如果不传参数就不会报错。

@RequestBody

获取请求正文的内容 

@RequestMapping("/fun4")
public String fun4(@RequestBody User user){return user.toString();
}

可修改是否为必传参数

被@RequestBody修饰的参数默认为必传参数。

将其设置为非必传参数:

@RequestMapping("/fun4")
public String fun4(@RequestBody(required = false) User user){return user.toString();
}

@RequestPart

可以支持上传文件

@RequestMapping("/fun5")
public String fun5(@RequestPart MultipartFile file){return file.getOriginalFilename();//返回文件名
}

更改绑定参数的名字

@RequestMapping("/fun5")
public String fun5(@RequestPart("file") MultipartFile a){return a.getOriginalFilename();
}

可修改是否为必传参数

被@RequestPart修饰的参数默认为必传参数。

@RequestMapping("/fun5")
//设置参数为非必传
public String fun5(@RequestPart(value = "file", required = false) MultipartFile a){return a.getOriginalFilename();
}

@Controller

@CookieValue

获取指定的Cookie值

注:@CookieValue该注释只能获取一个Cookie值。

@RequestMapping("/fun6")
//获取Cookie中键为name的值
public String fun6(@CookieValue("name") String value) {return "name:"+value;
}

首先在浏览器中创建一个 Cookie

@SessionAttribute

获取指定的Session值

注:只能获取单个Session

//因为Session是服务器端的概念,所以获取之前应该先设置
@RequestMapping("/fun7")
public void fun7(HttpSession session) {//设置Session值session.setAttribute("name", "zhangsan");
}
//获取Session值
@RequestMapping("/fun8")
public String fun8(@SessionAttribute("name") String name) {return "name:"+name;
}

@RequestHeader

获取请求头中的值

下面这是一段请求头信息 

现在获取里面的Host的值

@RequestMapping("/fun9")
public String fun9(@RequestHeader("Host") String data) {return "Host:"+data;
}

@Controller

@Controller是一个类注解,它定义⼀个控制器,Spring框架启动时加载,把这个对象交给Spring管理。默认返回的是一个页面。

返回html页面

先创建一个HTML页面login.html

里面只有一行代码:

@Controller
@RequestMapping("/test1")
public class Test {@RequestMapping("/fun1")public String fun1() {return "/login.html";}
}

@ResponseBody

注:这个注解既可以修饰类,也可以修饰方法。

被修饰的类或方法都只能返回数据。 

设置返回类型为数据

@Controller
@RequestMapping("/test1")
public class Test {@ResponseBody@RequestMapping("/fun1")public String fun1() {return "/login.html";}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu服务日志分析——journalctl

简介 对于使用 systemd 服务的 Linux 发行版来说&#xff0c;journalctl 命令提供了详细且经过筛选的日志视图&#xff0c;是获取 Linux 重启历史记录的得力工具 systemd帮助我们记录了系统在运行过程中的所有日志信息&#xff0c;无论是重启前还是重启后&#xff0c;都会有保…

Animation的坑,播放的时候隐藏了UI界面,结果再次把UI界面显示出来后,就会卡在动画的某处

local animation obj:GetComponent("Animation") local state animation.this:get(name) if state then state.speed state.length end animation:Play(name);

new mars3d.layer.GeoJsonLayer({实现图标点billboard贴模型聚合效果

说明&#xff1a; 1.【mars3d】的依赖库cesium本身是不支持贴地/贴模型操作的 2.sdk内部异步计算了数据的贴地/高度值之后&#xff0c;更新到图层上实现贴地/贴模型效果的 3.相关的示例链接&#xff1a; 1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 4.相关的计算…

【Python数据可视化】matplotlib之绘制三维图形:三维散点图、三维柱状图、三维曲面图

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

精确掌控并发:滑动时间窗口算法在分布式环境下并发流量控制的设计与实现

这是《百图解码支付系统设计与实现》专栏系列文章中的第&#xff08;15&#xff09;篇&#xff0c;也是流量控制系列的第&#xff08;2&#xff09;篇。点击上方关注&#xff0c;深入了解支付系统的方方面面。 上一篇介绍了固定时间窗口算法在支付渠道限流的应用以及使用redis…

消息的发送与接收

消息的发送与接收 消息的发送与接收不仅仅是在于聊天功能的实现。其实还有很多种情况也算"消息的发送与接收"。而且我们还可以通过多种方法去实现。我们可以基于实际情况来选择。 WebSocket实现 node做后端。找了好多&#xff0c;前端页面总是用到了jQuery&#x…

lvgl简介

LVGL&#xff08;Light and Versatile Graphics Library&#xff09;是一个开源的图形用户界面库&#xff0c;旨在提供轻量级、可移植、灵活和易于使用的图形用户界面解决方案。 它适用于嵌入式系统&#xff0c;可以在不同的操作系统、微控制器和图形加速器上运行。LVGL的核心…

1.go安装及相关配置

目录 概述下载基本命令Go build环境设置 结束 概述 下载 官网速递 选择 1.20.x 一个是因为是次新版本&#xff0c;另一个&#xff0c;mac 系统是 10.13.6 &#xff0c;1.20.x 是最后一个支持此版本的。 环境变量 GOROOT go的安装目录(将go安装到哪里 which go、cat /etc/p…

【嵌入式Android各种调试命令】

控制台下 写mac跟sn #写mac su echo 1 > /sys/class/unifykeys/attach echo mac > /sys/class/unifykeys/name echo 00:22:6D:C6:9A:57 > /sys/class/unifykeys/write cat /sys/class/unifykeys/read#写sn su echo 1 > /sys/class/unifykeys/attach echo usid &g…

高并发IO底层原理

1 概述 IO底层原理是隐藏在Java编程知识之下的基础知识&#xff0c;是开发人员必须掌握的基本原理。本文从操作系统的底层原理入手&#xff0c;通过图文的方式为大家深入剖析高并发IO的底层原理&#xff0c;并介绍如何通过设置来让操作系统支持高并发。 2 IO读写的基本原理 为…

MySQL 8.0中过时的功能(二)

max_length_for_sort_data系统变量由于优化器的变更而被弃用&#xff0c;因为这个变量已经过时并且没有任何效果。用于对连接进行压缩的以下传统参数已经被弃用&#xff1a; - --compress客户端命令行选项; - mysql_options() C API函数的MYSQL_OPT_COMPRESS选项; - slave_comp…

文件模块常用api

文件模块常用api 文件夹常用操作 文件夹操作 fs.mkdir fs.rmdir 需要是空目录 题目&#xff1a;递归删除目录* 串行/并行删除文件*

介绍异或(XOR)运算

异或&#xff08;XOR&#xff09;是一种逻辑运算符&#xff0c;用于比较两个二进制数的对应位。它的运算规则如下&#xff1a; 如果两个对应位的值相同&#xff0c;结果为0。如果两个对应位的值不同&#xff0c;结果为1。 异或运算的原理基于以下观察&#xff1a; 反转性质&a…

【电商API】DIY网络爬虫收集电商数据

DIY网络爬虫收集电商数据 网络爬虫是最常见和使用最广泛的数据收集方法。DIY网络爬虫确实需要一些编程知识&#xff0c;但整个过程比一开始看起来要简单得多。 当然&#xff0c;爬虫的有效性取决于许多因素&#xff0c;例如目标的难度、网站方的反爬虫措施等。如果将网络抓取用…

机器学习根据金标准标记数据-九五小庞

根据金标准标记数据是一种在机器学习和数据科学中常见的操作&#xff0c;主要用于评估分类模型的性能。其基本步骤如下&#xff1a; 收集数据&#xff1a;首先需要收集相关领域的原始数据&#xff0c;这些数据通常来自不同的来源和渠道。数据清洗和预处理&#xff1a;在这一步…

JavaScript高级特性详解

摘要&#xff1a;本文将深入探讨JavaScript中的一些高级特性&#xff0c;包括闭包、原型链、高阶函数和异步编程。我们将通过详细的注释和实例来帮助读者理解这些概念&#xff0c;并通过总结部分强调其在实际开发中的应用。 一、闭包 闭包是JavaScript中一个非常重要的概念&a…

soft212期末

文章目录 安卓填空题选择题 C# 安卓 Dalvik中得到Dx工具会把部分class文件转换成dex文件。 如果希望在XML布局文件中调用颜色资源&#xff0c;可以使用color调用 Android程序入口的Activity是在AndroidManifest.xml文件中注册的 Android中查看应用程序日志的工具是LogCat Dal…

JavaScript面向对象之实践项目

1、cat项目 &#xff08;1&#xff09;需要修改的原代码 &#xff08;2&#xff09;修改要求 使用括号表示法将name属性的值存储在变量catName中。使用点表示法运行greeting()方法。将color属性值更新为白。重写greeting() 方法&#xff0c;使它的问候语为"孟买猫碳头对…

go高频文件操作整理

如有帮助&#xff0c;欢迎留下足迹哦&#xff01; 目录 创建文件 带权限创建或打开 创建目录&#xff08;单级、多级&#xff09; 检查给定路径&#xff08;目录、文件&#xff09;是否存在 将目录和文件名拼接成为完整文件路径 给定文件路径获取文件后缀 给定文件路径获…

肯尼斯·里科《C和指针》第6章 指针(7)编程的练习:删除字符

肯尼斯里科《C和指针》第6章 指针&#xff08;6&#xff09;编程的练习&#xff1a;查找字符-CSDN博客 2.编写一个函数&#xff0c;删除一个字符串的一部分。函数的原型如下&#xff1a; int del_substr(char *str, char const *substr) 函数首先应该判断substr是否出现在str中…