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

    工作流程

    1. 用户发送请求至前端控制器DispatcherServlet
    2. DispatcherServlet收到请求调用HandlerMapping处理器映射器
    3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
    4. DispatcherServlet调用HandlerAdapter处理器适配器
    5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)
    6. Controller执行完成返回ModelAndView
    7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
    8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器
    9. ViewReslover解析后返回具体View
    10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)
    11. DispatcherServlet响应用户

    MVC设计模式

    MVC即Model-View-Controller,将应用按照Model(模型)、View(视图)、Controller(控制)这样的方式分离。

    • 视图(View):代表用户交互界面,对于Web应用来说,可以是HTML,也可能是jsp、XML和Applet等。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理
    • 模型(Model):是业务的处理以及业务规则的制定。模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只是组织管理这些模型,以便于模型的重构和提高重用性

    • 控制(Controller):可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理

    SpringMVC常用注解

    • @Controller:标识这个类是一个控制器
    • @RequestMapping:给控制器方法绑定一个uri
    • @ResponseBody:将java对象转成json,并且发送给客户端
    • @RequestBody:将客户端请求过来的json转成java对象
    • @RequestParam:当表单参数和方法形参名字不一致时,做一个名字映射
    • @PathVarible:用于获取uri中的参数,比如user/1中1的值
    • @SessionAttribute:声明将什么模型数据存入session
    • @CookieValue:获取cookie值
    • @ModelAttribute:将方法返回值存入model中
    • @HeaderValue:获取请求头中的值

    springmvc是单例模式的框架,但它是线程安全的,因为springmvc没有成员变量,所有参数的封装都是基于方法的,属于当前线程的私有变量. 因此是线程安全的框架。所以效率高

    OOP和MVC区别

    一个是思想 ,一个是模式 (模式是凌驾于面向对象之上的一种存在)
    OOP是面向对象编程 , MVC是实现系统所选择的一种系统架构。
    不使用MVC也一样可以实现系统的。不使用OOP也一样可以编程。与MVC相比,面向对象是微观的,而设计模式是更加宏观的一种概念。两者并不是一种类型的东西。

     

  • 相关阅读:
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 136 只出现一次的数字
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 135 分发糖果
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 134 加油站
    Java实现 LeetCode 133 克隆图
  • 原文地址:https://www.cnblogs.com/byene/p/12637625.html
Copyright © 2011-2022 走看看