MVC设计模式,执行流程与参数传递内容讲解
树图思维导图提供 SpringMVC编程思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 SpringMVC编程思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:cc6f10d07092674e8174e4ffdb3ae4e0
SpringMVC-01思维导图模板大纲
视图层,和控制层,代表了之前的表现层
V
V指的是View,视图层 主要对应前端页面
JSP
HTML
FreeMaker
Themeleaf
C
Controller,控制层 控制层不负责具体数据,逻辑的运算,处理, 他只负责Model层的结果返回给对应的视图层去展示
用于代替Servlet 处理请求和响应数据
M
Model
数据模型,--->代表持久化数据和业务逻辑
代替了之前的业务逻辑层和数据持久层
在JavaWeb阶段, Controller层指的就是Servlet; View层指的就是JSP或者HTML; Model层指 的就是bean、dao、service。 在J2EE阶段,Controller层指的就是SpringMVC、Structs1\2; View层不变还是主流的页面展示 技术; Model层包括bean、mybatis、service。
springmvc代码执行流程粗略图
一:SpringMVC是一款很轻量级的框架,要使用他的组件,我们往往只需要定义一些最简单的Java类
二:SpringMVC的参数注入直接注入到方法中,可以很好的做到不同请求间数据的隔离
三:SpringMVC可以很轻易的和Spring整合
1、请求到达前端控制器,前端控制器接收并分发所有请求 2、前端控制器将请求发送到处理器映射器,处理器映射器根据请求的映射规则找到对应的处理器 3、处理器映射器将对应的处理器发送给处理器适配器 4、处理器适配器根据处理器找到对应的方法调用 5、方法调用获取请求,返回相应给处理器适配器 6、处理器适配器将相应放回给前端控制器 7、前端控制器将放回的相应交给视图解析器解析为具体的视图对象 8、视图解析器将视图对象放回给前端控制器 9、前端控制器然后渲染页面并将页面响应给浏览器
页面参数传递到Controller
@RequestMapping
@RequestParam
获取请求参数,包括通过GET请求中的查询参数、POST请求中的参数等
@RequestBody
@RequestBody 注解接收的参数是来自requestBody中,即请求体。
一般用于处理非 ContentType: application/x-www-form-urlencoded(表单) 编码格式的数据,比如: application/json 、 application/xml 等类型的数据
就 application/json 类型的数据而言,使用注解@RequestBody可以将body里面所有的json 数据传到后端,后端再经过消息转换器(后面会学到)解析成JavaBean对象。
@ResponseBody
将对象转化为json,返回给页面
@RequestHeader
针对resultfule风格请求,获取请求地址中的参数,注入到方法参数中
@RequestAttribute
@SessionAttribute
获取Session作用域中的参数,用法和上面请求作用域中使用类似
@CookieValue
获取Cookie中的指定数据
这个注解还是很方便的,javax原生API只支持获取Cookie数组,我们要从cookie中获取指定的参 数,往往需要遍历Cookie数组,有了这个注解就可以从Cookie中直接获取指定的参数了。
Controller中的数据传递到页面
Model、ModelMap、Map
ModelAndView
InternalResourceViewResolver
内部资源解析器:其父类为UrlBasedViewResolver
用于将返回值对应到项目路径下的 某个可显示的页面。比如方法返回值是index字符串,那么 InternalResourceViewResolver 解析器会在index前加上指定的前缀,在index后加上指 定的后缀来拼接成指向某个视图的路径。
思维导图模板大纲
思维导图模板大纲
树图思维导图提供 1107文家市玉萍思维导图 在线思维导图免费制作,点击“编辑”按钮,可对 1107文家市玉萍思维导图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:ed943ef641f6dc874860eb6095857ed6
树图思维导图提供 种子思维脑图 在线思维导图免费制作,点击“编辑”按钮,可对 种子思维脑图 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:86f8307a40ea24607c6c79354e09377f