【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

🛫更多ssm知识见SSM_面向CRUD编程专栏

🚕本博客总结自黑马程序员的ssm框架视频

🚒博主对于该知识尚在学习阶段

🚄如果发现存在问题请毫不吝啬的指出

🚀🚀扎哇太枣糕的博客主页🚀🚀

目录

1 SpringMVC的数据响应

 2 SpringMVC获取请求数据


1 SpringMVC的数据响应

响应方式之页面跳转

🔴返回字符串

请求转发(不加的话默认是请求转发):forward:前缀表示是请求转发,具体表现为地址不会变。是服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,一共就一个请求对象

请求重定向:redirect:前缀表示是请求重定向,具体表现为地址跳转。是客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,一共是2次请求

 🔴返回ModelAndView对象

        可以通过ModelAndView对象和Model对象向request域中存放数据,并使用${}的形式取出数据

返回ModelAndView对象的三种方式

方式一:自己创建ModelAndView对象并返回

 方式二:传参ModelAndView对象(SpringMVC创建)并返回

方式三: 传参Model对象(SpringMVC创建)并返回字符串

响应方式之回写数据                                                                                    

🔴直接返回普通字符串

加@ResponseBody注解,表示这里是返回字符串而不是进行页面跳转

🔴返回一个JSON字符串

第一步:新建一个User类封装数据

第二步:导入相关依赖(三个的版本号要一样),导依赖就要将依赖添加到目录lib千万别忘了

 第三步:使用转换工具将对象转换成JSON字符串并返回 

优化:使用xml文件配置SpringMVC的处理器适配器HandlerAdapter,设置消息转换器,也就是说设置之后不用创建JSON转换器,只要return一个对象就可以将其转换成JSON字符串。

 靠这个set方法在xml文件进行数据注入,设置消息转换器

配置好了之后直接return对象就能返回一个JSON字符串 

当然,以黑马这个视频主讲老师的讲解风格,这波可以说又是经典白学,因为这么多配置都可以使用一个标签代替

 2 SpringMVC获取请求数据

        客户端请求参数的格式是:name:value&name=value……有的时候服务器要想获得请求的参数还需要对数据进行封装,SpringMVC就可以接收一下类型的数据:基本数据类型、POJO类型的数据、数组类型的数据、集合类型的数据

基本类型数据

        当Controller中业务方法的参数名请求参数的键一致时,参数会进行自动映射匹配,也就是说将该请求消息与这个方法相匹配。

POJO类型参数

        当Controller中业务方法的参数类里的封装属性名(更准确应该说是set方法名去掉set)与请求参数的键一致时,参数会进行自动映射匹配,也就是说将该请求消息与这个方法相匹配。

数组类型参数

        当Controller中业务方法的参数数组名请求参数的键一致时,参数会进行自动映射匹配。

集合类型参数

        要想获得集合参数的话,要将集合参数包装到一个POJO类型数据中才可以实现。当POJO类参数里的封装属性(也就是一个集合)与请求参数的集合名(也就是form表单里行的值)一致时,会将form表单与业务方法进行匹配。

请求数据乱码的问题

        当使用POST请求的时候,数据会出现乱码问题,我们可以使用一个全局过滤器来进行编码的过滤。

在web.xml文件中配置全局过滤器 

配置之后的结果就不乱码了

集合型还有一种直接使用集合不再使用POJO进行封装

第一步:在wabapp下创建一个js文件夹并导入jquery-2.2.3.min.js文件 

第二步:开放资源,使js目录下的jquery-2.2.3.min.js文件可以被访问到,下面运行时说到这一次的集合请求参数一共有三次访问,如果不开放资源的话第二次访问会被打断,以至于无法进行第三次访问导致失败

上面的标签配置是指定jsp目录下的所有文件,有限定,下面的这个标签配置的是所有的静态资源,而无需指定是哪个文件夹,实际开发中使用的更多。

第三步:在jsp文件夹下创建一个jsp页面,使用Ajax进行发送一个集合数据

 第四步:创建业务方法传list集合参数,并在参数前加@RequestBody注解

 第五步:maven depoly并运行访问ajax.jsp

   

参数绑定

@RequestParam:在方法参数定义前使用,将参数与注解定义的字符串绑定到一起,在发送请求时对注解字符串的赋值就是对参数的赋值。

获取Restful风格参数

        Restful就是一种架构风格或者说是设计风格,而不是一套标准,主要就是提供了一组设计原则和约束条件。Restful风格的请求就是使用“url + 请求方式”便是以此请求的目的,HTTP协议里表示操作方式的四个词分别是:GET获取资源、POST新建资源、PUT更新资源、DELECT删除资源。

参数获取

自定义类型转换器

第一步:定义一个转换器类实现Convert接口 

第二步:声明转换器并在<annotation-driven>中引用转换器 

获取请求头信息

        众所周知,http请求包括:请求行、请求头、消息实体。那么,在MVC中如何获得请求头信息的呢?@RequestHeader注解和@CookieValue

文件上传并转存

        当form表单修改为多部分表单时,即设置enctype="mulipart/form-data",用来获取url编码方式提交信息的API将无法再继续使用,比如说request.getParameter()。url编码方式即是设置enctype="application/x-www-form-urlencoded",此时会使用键值对的方式传参。

第一步:导入相关坐标

第二步:配置文件上传解析器 第三步:文件上传的代码

 第四步:编写相应的jsp页面,提交的数据名要与上传方法的参数名相一致

                                                                                                                                                           

上一篇:【SSM面向CRUD编程专栏 4】 Spring集成web环境 SpringMVC初识

下一篇:【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

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

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

相关文章

【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 7】springAop 事务控制

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 8】一篇博客快速上手使用MyBatis进行CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 9】SSM框架整合

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

三万字速通SSM框架入门知识点,快速上手CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

问题简介 本人是在进行一个ssm框架项目的编写的时候&#xff0c;在数据库中查询到所有的商品信息并返回到页面使用EL表达式进行展现&#xff0c;但是使用tomcat 9.0.58运行的时候报错会出现以下报错情况。 页面报错&#xff1a; 控制台报错&#xff1a; 解决方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判断自己是在什么情况下报的错&#xff0c;如果是MyBatis的SQL报错的话&#xff0c;建议直接点击目录跳转到MyBatis时SQL报错&#xff0c;避免浪费时间。如果本文能够对你有所帮助的话&#xff0c;还请在评论区多多支持 目录 &#x1f37b;运行SQL语句、SQL文件等报错 &…

MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件

下载MyBatis的逆向工程工具&#xff0c;并解压缩到一个不包含中文字符的文件夹下&#xff0c;我直接放到了D盘下&#xff0c;下载地址&#xff1a;MyBatis逆向工程工具下载 如何使用MyBatis的逆向工程工具 下载之后使用idea在一个新窗口中打开&#xff0c;选中工具文件之后&am…

『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)

&#x1f6eb;ssm知识学习见SSM_面向CRUD编程专栏 &#x1f695;本项目来自动力节点的【米米商城】 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 项目…

【SpringBoot 2】(一)基础知识了解学习

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目录…

【SpringBoot 2】(二)快速入门案例HelloWorld

&#x1f6eb;更多知识总结见SpringBoot 2专栏 ( &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目…

【SpringBoot 2】(三)SpringBoot相较于Spring的特点

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​ 目录…

井通swtc能不能涨到2元_买一支2块到3块之间的股票,买几十万股吗?这样操作效果怎么样?...

有很多新股民有一种看法&#xff0c;认为高价股风险很大&#xff0c;那么可不可以买2到3元的低价股&#xff0c;是不是风险就很小&#xff0c;以后上涨的力度就会很大&#xff1f;这是很多股民都存在的一个误区&#xff0c;也是很多股市的所谓高手的误导&#xff0c;他们说&…

cad应用程序的组件中发生了未经处理的异常_什么是CAD/CAM?

与许多其他行业一样&#xff0c;牙科技术的生产阶段也越来越自动化。由于牙科实验室工作的价格已成为治疗计划和治疗的主要因素&#xff0c;因此自动化可以在西欧和美国等高薪地区实现更具竞争力的生产。现在&#xff0c;计算机技术的进步使高性价比的单件生产成为可能。近年来…

【SpringBoot 2】(四)详析SpringBoot的常用注解

&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客首页&#x1f680;&#x1f680; 目录 向…

苹果7手机严重卡顿_苹果手机仅配备4GB运存都不会卡顿,安卓系统为何要更多内存?...

原标题&#xff1a;苹果手机仅配备4GB运存都不会卡顿&#xff0c;安卓系统为何要更多内存&#xff1f;众所周知&#xff0c;安卓系统历经十余年的发展&#xff0c;目前最低的运行需求是8GB内存&#xff0c;如果是旗舰机的话还要标配12GB或更高。但是前几天刚发布的iPhone12&…

IntelliJ IDEA自动生成自定义的类注释和方法注释

目录 自定义的类注释 自定义方法注释 实现效果&#xff1a;不用手写即可自动生成如下图的类上注释和方法上的注释&#xff0c;我们只需要填写方法注释的参数和返回值文字描述即可&#xff0c;大大节省了代码开发的时间提高代码开发效率。 &#x1f315; 自定义的类注释 Fil…

violinplot如何看懂_一张图告诉你如何看懂个股大趋势

昨日在T0交易利好消息的影响下&#xff0c;券商股全线大幅高开&#xff0c;带动三大指数高开走高&#xff0c;科技题材股全线活跃&#xff0c;两市量能明显放大&#xff0c;形成量价齐升的良性态势&#xff0c;上证冲上2917&#xff0c;收在2915&#xff0c;创业板大涨3%以上&a…

jz指令是什么意思_S7-200 SMART 运动控制指令详解-电气阿伟带小白启程

大家好&#xff0c;我是工控阿伟&#xff0c;今天又跟大家见面了。学习需要坚持&#xff0c;需要钻研&#xff0c;做技术亦是如此&#xff0c;厚积才能博发。阿伟写程序都是自己测试使用过的&#xff0c;需要的可以借鉴&#xff0c;避免走弯路。S7-200 smart 运动控制指令由编程…

【SpringBoot 2】(五)自动配置简析源码 开发中小技巧

写在前面&#x1f6eb;更多知识总结见SpringBoot 2专栏 &#x1f695;本篇知识点总结自尚硅谷雷神的视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客首页&#x1f680;&#x1f680;…