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相比,面向对象是微观的,而设计模式是更加宏观的一种概念。两者并不是一种类型的东西。

     

  • 相关阅读:
    真正明白了引用与对象的关系,就能避开下面这个陷阱
    python 垃圾回收
    字典
    表的操作
    MySQL数据库中的存储引擎
    MySQL数据库的基本操作
    MySQL数据库安装文件夹与配置文件简易说明
    数据库概述
    Arrays类
    Math类
  • 原文地址:https://www.cnblogs.com/byene/p/12637625.html
Copyright © 2011-2022 走看看