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

举报
扎哇太枣糕 发表于 2022/05/24 21:12:05 2022/05/24
【摘要】 ​ ​编辑🛫更多ssm知识见SSM_面向CRUD编程专栏🚕本博客总结自黑马程序员的ssm框架视频🚒博主对于该知识尚在学习阶段🚄如果发现存在问题请毫不吝啬的指出🚀🚀扎哇太枣糕的博客主页🚀🚀​编辑目录1 SpringMVC的数据响应 2 SpringMVC获取请求数据1 SpringMVC的数据响应响应方式之页面跳转🔴返回字符串请求转发(不加的话默认是请求转发):forward...

 编辑

🛫更多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


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。