IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Spring MVC 的返回值处理 2021-09-12 -> 正文阅读

[Java知识库]Spring MVC 的返回值处理 2021-09-12

Spring MVC 应用开发

1 基础概念介绍

2 返回值处理

3

一、不使用注解修饰

1.1 ModelAndView

Controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view

1.2 void

在Controller方法形参上可以定义request和response,使用 request 或 response 指定响应结果:

void service(HttpServletRequest request,HttpServletResponse response){}

1、使用request转发向页面,如下:

request.getRequestDispatcher("页面路径").forward(request, response);

2、也可以通过response页面重定向:

response.sendRedirect("url")

3、也可以通过response指定响应结果,例如响应json数据如下:

response.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
response.getWriter().write("json串");

1.3 String(推荐)

  • 逻辑视图名 return "item/item-list";

  • redirect重定向 return "redirect:testRedirect";
    相当于“ response.sendRedirect() ”,浏览器URL发生改变,Request域不能共享。

  • forward转发 return “forward:testForward";
    相当于“ request.getRequestDispatcher().forward(request,response) ”
    浏览器URL不发送改变
    Request 域可以共享

二、使用注解修饰

2.1 ResponseBody注解介绍

2.1.1 ResponseBody注解的作用:

  • ResponseBody注解可以针对Controller返回值类型,使用内置的9种HttpMessageConverter进行
    匹配,找到合适的HttpMessageConverter进行处理。
  • HttpMessageConverter处理逻辑有(特有):
    1、指定HttpServletResponse的ContentType值。
    2、将转换之后的数据放到HttpServletResponse对象的响应体返回到页面

2.1.2 常用的转换器 HttpMessageConverter

  • MappingJacksonHttpMessageConverter
    作用:处理POJO类型返回值
    1、默认使用MappingJackson的JSON处理能力,将后台返回的Java对象(POJO类型),转为JSON格式输出到页面
    2、将响应体的Content-Type设置为application/json;charset=utf-8
    3、调用response.getWriter()方法将json格式的字符串写回给调用者

  • StringHttpMessageConverter
    作用:处理String类型返回值
    将响应体的Content-Type设置为text/plain;charset=utf-8
    调用response.getWriter()方法将String类型的字符串写回给调用者。

2.1.3 其他内容

1、@RestController 相当于Controller注解和ResponseBody注解的组合

2、@RequestMapping(value=“returnString”,produces=“text/plain;charset=UTF-8”)
//@RequestMapping注解中的consumes和produces分别是为请求头和响应头设置contentType,
如果在使用@ResponseBody注解的前提下,如果返回值是String类型,则返回值会由
StringHttpMessageConverter进行处理,可用于解决响应的乱码

总结

返回数据用 ResponseBody
返回页面用 String

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:08:16  更:2021-09-13 09:10:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:58:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码