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

 

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

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

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

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

扎哇太枣糕的博客主页

目录

1 SpringMVC的数据响应

 2 SpringMVC获取请求数据


1 SpringMVC的数据响应

响应方式之页面跳转

返回字符串

请求转发(不加的话默认是请求转发):forward:前缀表示是请求转发,具体表现为地址不会变。是服务器跳转,相当于方法调用,在执行当前文件的过程中转向执行目标文件,一共就一个请求对象【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第1张图片

请求重定向:redirect:前缀表示是请求重定向,具体表现为地址跳转。是客户端跳转,相当于客户端向服务端发送请求之后,服务器返回一个响应,客户端接收到响应之后又向服务端发送一次请求,一共是2次请求【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第2张图片

 返回ModelAndView对象

        可以通过ModelAndView对象和Model对象向request域中存放数据,并使用${}的形式取出数据【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第3张图片

返回ModelAndView对象的三种方式

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

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

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

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

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

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

响应方式之回写数据                                                                                    

直接返回普通字符串

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

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

返回一个JSON字符串

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

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

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

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第9张图片 第三步:使用转换工具将对象转换成JSON字符串并返回 【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第10张图片

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

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

 靠这个set方法在xml文件进行数据注入,设置消息转换器【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第12张图片

配置好了之后直接return对象就能返回一个JSON字符串 【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第13张图片

当然,以黑马这个视频主讲老师的讲解风格,这波可以说又是经典白学,因为这么多配置都可以使用一个标签代替【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第14张图片

 2 SpringMVC获取请求数据

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

基本类型数据

        当Controller中业务方法的参数名请求参数的键一致时,参数会进行自动映射匹配,也就是说将该请求消息与这个方法相匹配。【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第15张图片

POJO类型参数

        当Controller中业务方法的参数类里的封装属性名(更准确应该说是set方法名去掉set)与请求参数的键一致时,参数会进行自动映射匹配,也就是说将该请求消息与这个方法相匹配。【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第16张图片

数组类型参数

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

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

集合类型参数

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

请求数据乱码的问题

        当使用POST请求的时候,数据会出现乱码问题,我们可以使用一个全局过滤器来进行编码的过滤。【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第18张图片

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

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

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

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

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

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

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

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

第三步:在jsp文件夹下创建一个jsp页面,使用Ajax进行发送一个集合数据【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第21张图片

 第四步:创建业务方法传list集合参数,并在参数前加@RequestBody注解【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第22张图片

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

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

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

   

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

参数绑定

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

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

获取Restful风格参数

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

参数获取

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

自定义类型转换器

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

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

第二步:声明转换器并在中引用转换器 

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

获取请求头信息

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

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

文件上传并转存

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

第一步:导入相关坐标

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

第二步:配置文件上传解析器【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第32张图片 第三步:文件上传的代码【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据_第33张图片

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

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

                                                                                                                                                           

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

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

 

你可能感兴趣的:(SSM框架_面向CRUD编程,java,开发语言,后端,ssm)