zoukankan      html  css  js  c++  java
  • Spring MVC工作流程

    MVC
    M:model,是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的结果
    V:view,代表用户交互界面,对于web应用来说,可以是html、jsp、xml等等。一个应用可以有不同的视图,MVC设计模式对于视图的处理只限于视图上数据的采集和处理,以及用户的请求,不包括视图上的业务流程的处理,这个归model处理
    C:Controller,可以理解为从用户那里接受请求,将模型和视图匹配在一起,共同完成用户的请求。划分控制层的作用很明显,它清楚的告诉你它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求,控制层不做任何数据处理。
    1,当用户请求发送到前端控制器(DispatcherServlet)
    2,前端控制器收到请求调用HandlerMapping处理器映射器
    3,根据映射,处理器映射器可以找到具体的处理器(可以根据xml.注解等等),并生成处理器对象和处理器拦截器(不一定有)一并返回给前端处理器
    4,前端处理器调用处理器适配器(HandlerAdapter)
    5,前端处理器经过适配之后通过处理器适配器 调用具体的处理器(也就是Controller,也叫后端控制器)
    6,Contorller处理完成之后返回ModelAndView给处理器适配器
    7,处理器适配器将处理器执行结果返回给前端控制器
    8,前端控制器将ModelAndView传给视图解析器(ViewReslover)
    9,视图解析器经过解析后返回具体的view(就是html,jsp啥的)
    10,前端处理器根绝view进行渲染视图(将模型数据填充到视图中)
     
     
    MVC常用注解:
    @Controller:标记这个类是一个控制器
    @RequestMapping:给控制器方法绑定一个url
    @ResponseBody:将java对象转成json,并且发送给客户端
    @RequestBody:将客户端请求过来的json转化成java对象
    @RequestParam:当表单参数和方法形参不一致时,做一个名字映射
     
    Rest风格的api
    @RestController  等于 @Controller+ @ResponseBody
     
    springMVC是单例模式的框架,但他是线程安全的,因为springmvc没有成员变量 所有参数的封装都是基于方法的,属于当前线程的私有变量,因此线程是安全的。
    不和别人一样,不复制只真正理解
  • 相关阅读:
    《HeadFirst设计模式》第三章-装饰者模式-读书笔记
    《HeadFirst设计模式》第五章单件模式-读书笔记
    《HeadFirst设计模式》第六章命令模式-读书笔记
    《HeadFirst设计模式》第二章观察者模式-读书笔记
    《HeadFirst设计模式》第一章策略模式-读书笔记
    python学习目录
    使用socket实现的ftp文件传输服务器
    selenium之 驱动环境配置chrome、firefox、IE
    selenium获取动态网页信息(某东)-具体配置信息
    9.Redis Cluster初识
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12750010.html
Copyright © 2011-2022 走看看