🛫更多ssm知识见SSM_面向CRUD编程专栏
🚕本博客总结自黑马程序员的ssm框架视频
🚒博主对于该知识尚在学习阶段
🚄如果发现存在问题请毫不吝啬的指出
🚀🚀扎哇太枣糕的博客主页🚀🚀
目录
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页面,提交的数据名要与上传方法的参数名相一致