一、什么是springmvc

  springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合;

  springmvc是一个基于mvc的web框架

  

二、mvc设计模式在b/s系统下应用

  

  

    1)用户发起request请求至控制器(Controller)

       控制接收用户请求的数据,委托给模型进行处理

    2)控制器通过模型(Model)处理数据并得到处理结果

          模型通常是指业务逻辑

    3)模型处理结果返回给控制器

    4)控制器将模型数据在视图(View)中展示web中模型无法将数据直接在视图上显示,

       需要通过控制器完成。 如果在C/S应用中模型是可以将数据在视图中展示的

    5)控制器将视图response响应给用户

          通过视图展示给用户要的数据或处理结果

三、spring web mvc架构

  

  ⦁ 架构流程

    1)用户发送请求至前端控制器DispatcherServlet

    2)DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    3)处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)

       一并返回给DispatcherServle

    4)DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

    5)执行处理器(Controller,也叫后端控制器)

    6)Controller执行完成返回ModelAndView

    7) HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

    8) DispatcherServlet将ModelAndView传给ViewReslover视图解析器

    9) ViewReslover解析后返回具体View

    10) DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)

    11)DispatcherServlet响应用户

  ⦁ 组件说明(以下组件通常使用框架提供实现)

    1)DispatcherServlet:前端控制器

       用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,

       由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性

    2) HandlerMapping:处理器映射器

        HandlerMapping负责根据用户请求找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,

        例如:配置文件方式,实现接口方式,注解方式等

    3)Handler:处理器

          Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下

       Handler对具体的用户请求进行处理。由于Handler涉及到具体的用户业务请求,所以一般情况

       需要程序员根据业务需求开发Handler

    4) HandlAdapter:处理器适配器  

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

       更多类型的处理器进行执行

    5)View Resolver:视图解析器

       View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理

       视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

       springmvc框架提供了很多的View视图类型,包括:jstlView、freemarkerView、pdfView等;

          一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由

       程序员根据业务需求开发具体的页面

  

淘淘商城之spring web mvc架构的更多相关文章

  1. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块

    spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...

  2. 1.Spring Web MVC有什么

    Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制 ...

  3. Spring REST实践之Spring Web MVC

    Spring概要 Spring Framework提供了依赖注入模型和面向切面编程,简化了基础型代码的编写工作以及更好的能够与其它框架和技术整合起来.Spring Framework由data acc ...

  4. 菜鸟学习Spring Web MVC之一

    ---恢复内容开始--- 当当当!!沉寂两日,学习Spring Web MVC去了.吐槽:近日跟同行探讨了下,前端攻城师,左肩担着设计师绘图,右肩担着JAVA代码?!我虽设计过UI,但这只算是PS技巧 ...

  5. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

  6. 菜鸟学习Spring Web MVC之二

    有文章从结构上详细讲解了Spring Web MVC,我个菜鸟就不引据来讲了.说说强悍的XP环境如何配置运行环境~~ 最后我配好的环境Tomcat.Spring Tool Suites.Maven目前 ...

  7. 4.Spring Web MVC处理请求的流程

  8. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...

  9. Features of Spring Web MVC

    21.1.1 Features of Spring Web MVC Spring Web Flow Spring Web Flow (SWF) aims to be the best solution ...

随机推荐

  1. SQLSERVER备份恢复后权限问题简单处理.

    1. 同事的服务器出现无法访问表, 应用连不上数据库... 远程了下 发现. 使用业务用户登录数据库之后查询无法下拉帮助到表, 必须增加schemas才可以访问到具体的表. 2. 问题解决. 1. 修 ...

  2. Node http和express和mysql

    const http = require("http");const express = require("express");const mysql = re ...

  3. Node buffer模块缓冲区

    //1:字节 byte//1024b = 1kb [千字节]//1024kb = 1mb [兆字节]//1024mb = 1gb [吉字节]//1024gb = 1tb [梯]//1024tb = 1 ...

  4. React componentDidMount

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  5. big emoji & emoji

    big emoji & emoji font-size: 10 rem; https://www.clickemoji.com/ https://www.cnblogs.com/xgqfrms ...

  6. 激活win10专业版

    每180天激活一次

  7. jquery为表格行添加上下移动画效果

    为项目列表项添加上下移动动画.首先想使用jquery animate来做到这一点.但我用的是table和tr作为列表和列表项,但jquery动画方法不支持table里的tr(Animations ar ...

  8. codeforces515B

    Drazil and His Happy Friends CodeForces - 515B Drazil有很多朋友,他们中有些人是快乐的,有些人是不快乐的. Drazil想让他的朋友变得快乐.于是, ...

  9. Socket网络编程--Libev库学习(1)

    这一节是安装篇. Socket网络编程不知不觉已经学了快两个月了.现在是时候找个网络库学学了.搜索了很多关于如何学网络编程的博客和问答.大致都是推荐学一个网络库,至于C++网络库有那么几个,各有各的好 ...

  10. Android 访问 Webapi 更新UI

    首先,写一个访问webapi的工具类 import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import or ...