【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

  • 37
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 65
    评论
评论 65
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扎哇太枣糕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值