我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java SpringMVC数据响应实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java SpringMVC数据响应实例分析

这篇文章主要介绍“Java SpringMVC数据响应实例分析”,在日常操作中,相信很多人在Java SpringMVC数据响应实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java SpringMVC数据响应实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

1)页面跳转  

直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。 

Java SpringMVC数据响应实例分析

返回带有前缀的字符串:

转发:   forward:/WEB-INF/views/index.jsp

重定向:   redirect:/index.jsp

通过ModelAndView对象返回

@RequestMapping("/quick2")public ModelAndView quickMethod2(){    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName("redirect:index.jsp");    return modelAndView;}@RequestMapping("/quick3")public ModelAndView quickMethod3(){    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");    return modelAndView;}

 在进行转发时,往往要向request域中存储数据,在jsp页面中显示,那么Controller中怎样向request 域中存储数据呢?

① 通过SpringMVC框架注入的request对象setAttribute()方法设置。

@RequestMapping("/quick")public String quickMethod(HttpServletRequest request){    request.setAttribute("name","zhangsan");    return "index";}

② 通过ModelAndView的addObject()方法设置。

@RequestMapping("/quick3")public ModelAndView quickMethod3(){    ModelAndView modelAndView = new ModelAndView();    modelAndView.setViewName("forward:/WEB-INF/views/index.jsp");    modelAndView.addObject("name","lisi");    return modelAndView;}

2)回写数据

直接返回字符串:Web基础阶段,客户端访问服务器端,如果想直接回写字符串作为响应体返回的话,只需要使用response.getWriter().print(“hello world”) 即可,那么在Controller中想直接回写字符串该怎样呢?

① 通过SpringMVC框架注入的response对象,使用response.getWriter().print(“hello world”) 回写数据,此时不需要视图跳转,业务方法返回值为void。

@RequestMapping("/quick4")public void quickMethod4(HttpServletResponse response) throws IOException {    response.getWriter().print("hello world");}

② 将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMVC框架,方法 返回的字符串不是跳转是直接在http响应体中返回。

@RequestMapping("/quick5")@ResponseBodypublic String quickMethod5() throws IOException {    return "hello springMVC!!!"; }

开发中往往要将复杂的java对象转换成json格式的字符串,我们可以使用web阶段学习过的json转换工具jackson进行转换,

在pom.xml中导入jackson坐标。

<!--jackson--><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.0</version></dependency><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version></dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.0</version></dependency>

通过jackson转换json格式字符串,回写字符串。  

@RequestMapping("/quick7")@ResponseBodypublic String quickMethod7() throws IOException {    User user = new User();    user.setUsername("zhangsan");    user.setAge(18);    ObjectMapper objectMapper = new ObjectMapper();    String s = objectMapper.writeValueAsString(user);    return s;}

返回对象或集合

通过SpringMVC帮助我们对对象或集合进行json字符串的转换并回写,为处理器适配器配置消息转换参数, 指定使用jackson进行对象或集合的转换,因此需要在spring-mvc.xml中进行如下配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters">     <list>        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>     </list> </property></bean>

直接在方法中返回对象或集合

@RequestMapping("/quick8")@ResponseBodypublic User quickMethod8() throws IOException {    User user = new User();    user.setUsername("zhangsan");    user.setAge(18);    return user;}

3)配置注解驱动

在方法上添加  @ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多, 因此,我们可以使用mvc的注解驱动代替上述配置。

在 SpringMVC 的各个组件中,   处理器映射器、   处理器适配器、   视图解析器称为 SpringMVC 的三大组件。

使用<mvc:annotation-driven>自动加载 RequestMappingHandlerMapping(处理映射器)和 RequestMappingHandlerAdapter(处理适配器)可用在Spring-xml.xml配置文件中使用        <mvc:annotation-driven>替代注解处理器和适配器的配置。

同时使用<mvc:annotation-driven>默认底层就会集成jackson进行对象或集合的json格式字符串的转换。

<!--在spring-mvc.xml中配置mvc的注解驱动--> <mvc:annotation-driven/>

4)知识要点

SpringMVC的数据响应方式

1) 页面跳转          

  • 直接返回字符串          

  • 通过ModelAndView对象返回

2) 回写数据          

  • 直接返回字符串          

  • 返回对象或集合

到此,关于“Java SpringMVC数据响应实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java SpringMVC数据响应实例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java SpringMVC数据响应实例分析

这篇文章主要介绍“Java SpringMVC数据响应实例分析”,在日常操作中,相信很多人在Java SpringMVC数据响应实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java SpringMV
2023-06-29

Spring Boot数据响应问题实例分析

本文小编为大家详细介绍“Spring Boot数据响应问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Boot数据响应问题实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言响应页
2023-06-29

Vue数据响应式原理实例代码分析

本文小编为大家详细介绍“Vue数据响应式原理实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue数据响应式原理实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。改造数据我们先来尝试写一个函数
2023-07-04

Springmvc应用Mongodb分页实现的示例分析

这篇文章将为大家详细讲解有关Springmvc应用Mongodb分页实现的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于web应用来说分页显示数据是是最基本的功能,作为经常开发web应用的程序
2023-05-30

Spring响应式编程实例分析

今天小编给大家分享一下Spring响应式编程实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 前言了解响应式编程,
2023-07-02

Vue3响应式原理实例分析

本篇内容介绍了“Vue3响应式原理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!回顾 vue2.x 的响应式实现原理:对象类型:通过
2023-07-02

Vue.js响应式编程实例分析

这篇文章主要介绍了Vue.js响应式编程实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue.js响应式编程实例分析文章都会有所收获,下面我们一起来看看吧。响应式编程展示数据,对象例子:var obje
2023-06-27

SpringBoot2中数据与页面响应的示例分析

这篇文章主要介绍了SpringBoot2中数据与页面响应的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 数据响应  数据响应一般分为两种:页面响应和数据响应,一般
2023-06-29

vue数据响应式原理中数组的示例分析

这篇文章主要介绍vue数据响应式原理中数组的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!src/core/observer/index.jssrc/core/observer/array.js arrayM
2023-06-29

Java SpringMVC实现国际化整合案例分析(i18n)

所谓国际化就是支持多种语言,web应用在不同的浏览环境中可以显示出不同的语言,比如说汉语、英语等。下面我将以具体的实例来举例说明:(1)新建动态Java web项目,并导入几个SpringMVC必需的几个jar包,项目结构图和所需jar包如
2023-05-31

SpringMVC数据页响应ModelAndView如何实现页面跳转

这篇文章主要介绍“SpringMVC数据页响应ModelAndView如何实现页面跳转”,在日常操作中,相信很多人在SpringMVC数据页响应ModelAndView如何实现页面跳转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
2023-07-02

java多态应用实例分析

这篇文章主要讲解了“java多态应用实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java多态应用实例分析”吧!本教程操作环境:windows7系统、java10版,DELL G3电
2023-06-30

Java注解应用实例分析

今天小编给大家分享一下Java注解应用实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.注解的理解1)注解(Anno
2023-07-02

Java继承应用实例分析

这篇文章主要介绍“Java继承应用实例分析”,在日常操作中,相信很多人在Java继承应用实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java继承应用实例分析”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录