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,一经查实,立即删除!

相关文章

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…

高并发IO底层原理

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

文件模块常用api

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

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

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

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

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

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;使它的问候语为"孟买猫碳头对…

良心推荐!几款收藏的神级IDEA插件分享

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 文章目录 CodeGlanceGsonFormatPOJO to JsonRainbow BracketsTranslationLombokMaven HelperAlibaba Java Code GuidelinesGenerateAllSetterMybatisXChinese (Simplified…

Tomcat10.X部署老版本axis2 webservice项目不生效

目录 一、使用场景 二、问题描述 三、原因排查 四、解决方案 一、使用场景 原来项目是OpenJDK8tomcat9构建&#xff0c;现在需要升级到OpenJDK17tomcat10的组合。原来的webservice项目打包成aar格式&#xff0c;通过axis2部署在tomcat上。 二、问题描述 在配置好jdk和to…

【软件测试学习笔记1】测试基础

1.软件测试的定义 软件的定义&#xff1a;控制计算机硬件工作的工具 软件的基本组成&#xff1a;页面客户端&#xff0c;代码服务器&#xff0c;数据服务器 软件产生的过程&#xff1a;需求产生&#xff08;产品经理&#xff09;&#xff0c;需求文档&#xff0c;设计效果图…

NEAU_Python程序设计结课作业

1.身份证号合法性判别 【问题描述】我国身份证号码由数字与字母混合组成。早期身份证由15位数字构成。后来考虑到千年虫问题(&#xff08;15位的身份证号码只能为150c年1月1日到9年12月31日出生的人确号)&#xff0c;所以又增加了18位身份证号码编号规则。最后—位(第18位)校验…

用二维码介绍产品详情,扫码查看图文并茂的宣传册

传统的产品宣传方式&#xff0c;往往以产品手册、宣传单等纸质物料为主&#xff0c;更新成本高昂&#xff0c;一旦修改内容&#xff0c;就必须重新印刷&#xff0c;而且不易携带和保存&#xff0c;影响宣传效果和客户体验。 为了避免上述问题&#xff0c;可以在草料上搭建产品…

【树莓派】网线远程连接电脑和树莓派,实现SSH连接

目录 1、硬件连接&#xff1b; 2、电脑端&#xff1a; 3、查找树莓派的IP地址 4、开启树莓派的SSH接口 5、putty 6、命令行 参考文章 通过网线连接笔记本与树莓派 开启SSH和VNC功能 无显示器安装树莓派 实现&#xff1a;打开putty输入树莓派地址使用ssh方式登陆&…

java小游戏——动漫美女拼图

1&#xff1a;继承 1.1 继承概述 首先&#xff0c;我们来说一下&#xff0c;什么是继承&#xff1a; 继承是面向对象三大特征之一(封装&#xff0c;继承和多态) 可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法 也就是说&…

【办公技巧】ppt修改全部字体怎么改?

制作完PPT之后&#xff0c;想要更换ppt中的字体&#xff0c;有没有什么快捷的方法呢&#xff1f;今天分享两个方法&#xff0c;一键修改ppt文件字体。 方法一&#xff1a; 找到功能栏中的编辑选项卡&#xff0c;点击替换 – 替换字体&#xff0c;在里面选择我们想要替换的字体…