【SpringMVC】五、HttpMessage的四个基本常用注解

news/2024/11/24 22:57:11/

HttpMessageConverter

HttpMessageConverter是报文请求信息转换器,其提供了将请求信息转换文Java对象以及将Java对象转换为相应信息的方法:

@RequestBody、@ResponseBody、RequestEntity、ResponseEntity

带Request的是将请求转换为Java对象,带Response的是将Java对象转换为相应信息。

RequestBody

@RequestBody注解可以将请求信息赋值给String的形参,例如下面这样的页面的形式

<form th:action="@{/testRequestBody}" method="post"><input type="text" name="username"/><input type="password" name="password"/><input type="submit" name="TestRequestBody"/>
</form>

后台会是这样

    @RequestMapping(value = "/testRequestBody")
//    该形参前的@RequestBody注解会将Request信息注入给形参public String testRequestBody(@RequestBody String RequestBody) {System.out.println(RequestBody);    //username=admin&password=asdasdsa&TestRequestBody=%E6%8F%90%E4%BA%A4return "success";}

RequestEntity

RequestEntity是一个类,也可以获取参数信息(请求头和请求体)

    @RequestMapping(value = "/testRequestEntity")public String testRequestEntity(RequestEntity<String> requestEntity) {System.out.println(requestEntity.getHeaders());     //获取请求头     [host:"localhost:8080", connection:"keep-alive", content-length:"63", cache-control:"max-age=0", sec-ch-ua:""Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"", sec-ch-ua-mobile:"?0", sec-ch-ua-platform:""Windows"", upgrade-insecure-requests:"1", origin:"http://localhost:8080", user-agent:"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36", accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", sec-fetch-site:"same-origin", sec-fetch-mode:"navigate", sec-fetch-user:"?1", sec-fetch-dest:"document", referer:"http://localhost:8080/springMVC/", accept-encoding:"gzip, deflate, br", accept-language:"en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7", cookie:"Idea-cd4fc388=5f928943-4086-4741-8f67-92fff7302594", Content-Type:"application/x-www-form-urlencoded;charset=UTF-8"]System.out.println(requestEntity.getBody());        //获取请求体     username=admin&password=1111&TestRequestBody=%E6%8F%90%E4%BA%A4return "success";}

ResponseBody

@ResponseBody注解会将返回值作为返回体进行返回,例如下面代码

    @RequestMapping(value="/testResponseBody")@ResponseBodypublic String testResponseBody() {return "failure";}

就会将failure作为字符串显示在页面上,而不加该注解则会由Thymeleaf解析显示该显示的页面

导入json的必要依赖

<!--        json的必要依赖--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.12.1</version></dependency>

json是一种javascript的数据交换格式

    @RequestMapping ("/testResponseUser")@ResponseBodypublic User testResponseUser() {//如果将对象作为返回值,则json会自动将对象自动转换为String类型的字符串//json数组return new User(1001, "Lili", "1999", "女", 24);}

使用Ajax进行response

Ajax默认是不进行跳转的请求,可以方便的实现很多功能

<div id="app"><a @click="testAxios" th:href="@{/testAxios}">SpringMVC处理Ajax</a>
</div><script type="text/javascript" th:src="@{/static/js/vue.js}"></script>
<script type="text/javascript" th:src="@{/static/js/axios.min.js}"></script>
<script type="text/javascript">new Vue({"el" : "#app",methods : {testAxios : function (event) {//使用ajax发送请求axios({//post请求method : "post",url : event.target.href,params : {username : "admin",password : "123456"}}).then(function(response){alert(response.data);});event.preventDefault();}}})
</script>

@RestController注解

@RestController注解是用于标识控制层类的注解,被其标识的注解都会视为在该控制层的每一个控制器方法上都添加了@ResponseBody注解。


http://www.ppmy.cn/news/101752.html

相关文章

前人踩过的雷,绕过的弯,何必重蹈,前端学习路径方法分享题

今天我们一起来聊聊前端的学习路线与方法。 在上篇文章中&#xff0c;我和你简单回顾了前端行业的发展&#xff0c;到现在为止&#xff0c;前端工程师已经成为研发体系中的重要岗位之一。可是&#xff0c;与此相对的是&#xff0c;我发现极少或者几乎没有大学的计算机专业愿意…

PostgreSQL 索引的重要要点

PostgreSQL官方文档对索引的定义&#xff0c;非常简单明了&#xff1a;“索引是提高数据库性能的常见方式。索引使得数据库服务器能够比没有索引时更快地查找和检索特定行。但索引也会增加整个数据库系统的开销&#xff0c;因此应该合理使用。” 这个定义中的关键是最后一个词“…

基于改进ISODATA算法的负荷场景曲线聚类(matlab代码)

目录 1 主要内容 聚类中心选取步骤 核方法 2 部分代码 3 程序结果 4 程序链接 1 主要内容 程序复现文献《基于机器学习的短期电力负荷预测和负荷曲线聚类研究》第三章《基于改进ISODATA算法的负荷场景曲线聚类》模型&#xff0c;该方法不止适用于负荷聚类&#xff0c;同样…

基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究(matlab代码)

目录 1 主要内容 目标函数 计算步骤 节点系统 2 部分代码 3 程序结果 4 下载链接 点击直达&#xff01; 1 主要内容 程序完全复现文献《A Distributed Dual Consensus ADMM Based on Partition for DC-DOPF with Carbon Emission Trading》&#xff0c;建立了一个考虑…

IDEA-报错 Failed to read artifact descriptor for xxx解决方法

项目场景&#xff1a; idea下载若依微服务的项目&#xff0c;配置环境产生了报错 问题描述 在idea里配置环境时maven报错Failed to read artifact descriptor for xxxx 原因分析&#xff1a; 在进行导包的时候maven和jdk版本导致的&#xff0c;更换版本之后大部分报错不存在…

解析云盘存储的优缺点:安全靠谱还是存在风险?

云盘是一种基于云计算技术的在线存储服务&#xff0c;用户可以通过互联网将文件上传到云端&#xff0c;并可以随时随地通过网络访问这些文件。 相较于传统的本地存储&#xff0c;云盘具有以下优势&#xff1a; 1.数据安全性更高&#xff1a;云盘使用专业的云计算技术和安全措施…

HTMLCSS中的树形结构图

我们可以只使用 html 和 css 创建树视图(可折叠列表) &#xff0c;而不需要 JavaScript。可访问性软件将看到树形视图作为列表嵌套在披露窗口小部件中&#xff0c;并且自动支持标准键盘交互。 1、HTML 我们就从简单嵌套列表的 html 开始: <ul><li>Giant planets&…

水文水资源模型合集

详情点击链接&#xff1a;EFDC建模方法及在地表水环境评价、水源地划分、排污口论证详情点击链接&#xff1a;基于SWMM及自主开发城市内涝一维二维耦合软件的复杂城市排水系统建模技术及在城市排涝、海绵城市 详情点击链接&#xff1a;HSPF(Hydrological Simulation Program F…