zoukankan      html  css  js  c++  java
  • Spring MVC学习笔记1(三层架构、MVC模式、六大组件、处理请求流程)

    应用系统三层架构:

    • C/S架构:客户端/服务器架构

    • B/S架构:浏览器/服务器架构

    Java开发的大多是web应用,是基于B/S架构开发的。JavaEE指定了一套规范,去进行BS结构的处理,这套规范就是Servlet。

    B/S架构中,应用系统标准的三层架构为: 表现层业务层持久层

    表现层(Web层)
    • 负责接收客户端请求,向客户端响应结果,通常客户端使用http协议请求 web,web层需要接收 http请求,完成http响应。
    • 表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
    • 表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。
    • 表现层的设计一般都使用 MVC 模型。 MVC 是表现层的设计模型,和其他层没有关系
    业务层 (Service层)
    • 它负责业务逻辑处理,和我们开发项目的需求息息相关。web层依赖业务层,但是业务层不依赖Web层。
    • 业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。 (事务应该放到业务层来控制)
    持久层 (dao 层)
    • 负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久层交互的接口;业务层需要通过数据访问层将数据持久化到数据库中。
    • 持久层就是和麵库交互,对麵库表进行曽删改査的。

    MVC 设计模式

    MVC是模型(model)-视图(view)-控制器(controller)的缩写,是一种用于设计编写Web应用程序表现层
    模式。

    MVC设计模式的三大角色:

    Model (模型)

    模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。

    View (视图)

    ​ 通常指的就是我们的jsp或者html。作用一般就是展示数据的。
    ​ 通常视图是依据数据模型创建的。

    Controller (控制器)

    ​ 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

    Spring MVC

    Spring MVC是一种基于MVC设计模型的请求驱动类型的轻置级Web框架,属于Spring FrameWork的后续产品,已经融合在Spring Web Flow里面Spring 框架提供了构建Web应用程序的全功能MVC模块。

    Spring MVC 与 Spring

    Spring MVC 全称为Spring Web MVC,它是Spring家族中Web模块的一个重要成员。

    SpringMVC六大组件

    MVC组件:前端控制器处理器视图

    三大组件:处理器映射器处理器适配器视图解析器

    需要开发的组件:处理器、视图(前后端分离后,后端不需要开发)

    DispatcherServlet : 前端控制器

    用户请求到达前端控制器,它就相当于mvc模式中的C , dispatcherservlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherservlet的存在降低了组件之间的耦合性。

    Handler : 处理器

    Handler是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

    由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

    View : 视图

    Spring MVC框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。最常用的视图就是jsp。

    通过页面标签或页面模版技术将模过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

    HandlerMapping:处理器映射器

    HandlerMapping负责根据用户请求找到Handler处理器,spring MVC提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

    HandlerAdapter:处理器适配器

    通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

    View Resolver:视图解析器

    View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

    web应用的访问流程

    Spring MVC底层是通过servlet实现的。

    Servlet实例由Servlet容器(tomcat、jboss、jetty)产生。

    Servlet实例什么时候产生?
    一种是第一次访问一个请求的时候,产生对应的Servlet对象,只会产生一次。
    另一种需要针对Servlet标签特殊配置,就会在Tomcat启动的时候,产生该实例。

    [Servlet] (https://www.cnblogs.com/kuotian/p/13141784.html)

    客户端访问请求:http://xxx:8080/kkb/hello
    域名/ip:确定哪台服务器 --- xxx:8080
    应用名称:确定哪个应用 --- kkb

    请求字符串:需要根据web.xml中的配置找到相应的类去处理 --- hello

    spring MVC处理请求的流程是什么?

  • 相关阅读:
    angularjs html事件(ng-click,ng-hide,ng-show)
    《javascript设计模式与开放实践》学习(二)对象方法的借用
    《javascript设计模式与开放实践》学习(二)Function.prototype.bind
    《javascript设计模式与开放实践》学习(一)javascript实现多态2
    《javascript设计模式与开放实践》学习(一)javascript实现多态1
    关于BFC
    css三角形的绘制
    ER图
    如何使用powerDesigner 生成 html文件
    spring aop 会根据实际情况(有无接口)自动选择 两种 动态代理(jdk和cglib)之一
  • 原文地址:https://www.cnblogs.com/kuotian/p/13143667.html
Copyright © 2011-2022 走看看