Spring MVC 入门(一)

什么是 Spring MVC

  学习某一样东西之前,我们一定要大致知道这个东西是什么,能干什么,为什么要用它。

  Spring MVC 是一个开源平台,一个基于 Spring 的 MVC 框架,它支持基于 Java 开发 Web 应用程序。MVC 架构很利于开发灵活、低耦合的 Web 应用程序组件。

  M(Model)模型,应用程序的数据载体。通常是一些 POJO。

  V(View)视图,用于渲染一些模型的数据,一般是用来生成用户浏览器的可以解释的HTML。

  C(Controller)控制器,用于处理用户的请求并构建相应的模型,然后交给视图渲染。

  Spring MVC的优点:

    (1)使用简单;

    (2)能够很容易的开发出性能很好的程序;

    (3)灵活,易于扩展;

    (4)具有 Spring 的一些特性;

    (5)支持 REST 风格;

  Spring MVC的缺点:

    (1)很难脱离容器进行独立运行;

    (2)需要编写一些对应的 web.xml配置;

Spring MVC 请求流程

  

                     (Spring MVC 请求处理流程)

  上图流程涉及到的几个组件的功能说明:

    DispatcherServlet(前端控制器):接收用户请求并返回请求结果。它控制着整个执行流程,对各个组件进行调度,降低组件之间的耦合,就像是一个团队的组织人。

    HandlerMapping(处理器映射器):根据用户的请求 URL,根据 XML 配置或注解找到对应的处理器 Handler。

    HandlerAdapter(处理器适配器):根据映射器找到的 Handler 完成调用处理器中的方法。

    Handler(处理器):处理请求的主要逻辑,返回模型数据和视图。

    ViewResolver(视图解析器):解析具体的视图。通过 ModelAndView 中的 View 将逻辑视图名解析为真正的 视图。

  请求具体步骤如下:

    1:客户端起请求,请求会被前端控制器(DispatcherServlet)拦截

    2:前端控制器(DispatcherServlet)请求处理器映射器(HandlerMapping)查找Handler

    3:处理器映射器(HandlerMapping)根据配置找到相应Handler,可能包含多个Interceptor拦截器,返回给前端控制器

    4:前端控制器(DispatcherServlet)请求处理器适配器(HandlerAdapter)去执行相应的Handler

    5:适配器交由对应Handler处理器执行

    6:  Handler处理器执行完成后返回ModelAndView对象给处理器适配器

    7:处理器适配器接受Handler处理器的返回结果,并将该结果返回给前端控制器(DispatcherServlet)

    8:前端控制器(DispatcherServlet)接收处理器适配器返回的数据和视图信息,请求视图解析器,解析对应的视图

    9:视图解析器根据View信息匹配相应的视图结果,反回给前端控制器

     10:前端控制器接收具体视图,进行视图渲染,将Model数据填充到View视图中,生成最终视图

     11:前端控制器向客户端返回请求结果

原文地址:https://www.cnblogs.com/dream-saddle/p/9280725.html

时间: 2025-01-14 09:38:34

Spring MVC 入门(一)的相关文章

Spring MVC入门教程(二)

第一篇文章宏观讲了Spring MVC概念,以及分享了一个快速入门的例子(文章链接). 这篇文章主要来谈谈Spring MVC的配置文件. 首先来谈谈web.xml: web项目启动时自动加载到内存中的信息,比如服务器配置参数,<listener>监听器,<filter>过滤器,<servlet>等.再如,如果在项目中使用了spring框架,则必须定义ContextLoaderListener,那么在启动Web容器时,会自动装配Spring applicationCon

spring MVC入门示例(hello world demo)

1. Spring MVC介绍 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框 架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. Spring Web MVC也是服务到工作者模式的实现,但进行可优化.前端控制器是DispatcherServlet:应用控制器其实拆为处理器映射器(Handler M

Spring MVC 入门实例

概述: springmvc 框架围绕DispatcherServlet这个核心展开,DispatcherServlet是Spring MVC的总控制,它负责截获请求并将其分派给相应的处理器处理.SpringMVC框架包括注解驱动控制器.请求及响应的信息处理.视图解析.本地化解析.上传文件解析.异常处理以及表单标签绑定等内容. SpringMVC是主要基于MODEL2实现的技术框架,Model2是经典的MVC(model.view.control)模型在web应用中的变体,这个改变主要源于HTTP

【转载】Spring MVC入门

转自:http://www.importnew.com/15141.html MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中解耦.通常,模型负责封装应用程序数据在视图层展示.视图仅仅只是展示这些数据,不包含任何业务逻辑.控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑.处理后,后台业务层可能会返回了一些数据在视图层展示.控制器收集这些数据及

Spring MVC 入门示例讲解

MVC框架是什么 Dispatcher Servlet(Spring控制器) Spring入门示例 运行时依赖库 web.xml和spring-servlet.xml文件配置 请求控制器EmployeeController.java 视图模型EmployeeVO.java Dao类 业务层类 视图employeeListDisplay.jsp MVC框架是什么 模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式.它主要通过分离模型.视图及控制器在应用程序中的角色将业务

Spring MVC 入门 - 框架搭建

感觉网上从环境搭建讲起的教程不多,好多示例也比较复杂,而且也没个图啥的,所以就上一个简单易懂的版本. 有多简单捏?从eclipse建立工程开始,结束后作出一个可以响应请求的Servlet. 在这个文章里面,我们需要 - 建立一个eclipse工程: 编写两个xml: 编写两个jsp页面: 编写一个Java文件. 准备工作 - Eclipse J2EE版本: Tomcat 一只: 注:所有斜体字代表-文件名,类名,变量名等可替换内容. 第一步: 使用Eclipse建立动态网页工程. 输入项目名字,

Spring MVC入门讲解

一.Springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想, 将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的. 二.Spring MVC 架构图: 1.DispacherServlet前端控制器 负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找H

Spring MVC入门教程(一)

直接干货 model 考虑给用户展示什么,关注支撑业务的信息构成,构建成模型: control 调用业务逻辑产生合适的数据以及传递数据给视图用于呈献: view 如何对数据进行布局,以一种优美的方式展示给用户: MVC核心思想:业务数据抽取和业务数据呈献相分离. 看看Spring MVC官网给的图:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html Spring'sweb MVC f

spring mvc入门教程(快速入门,深入分析)

目录 一.前言 二.spring mvc 核心类与接口 三.spring mvc 核心流程图 四.spring mvc DispatcherServlet说明 五.spring mvc 父子上下文的说明 六.springMVC-mvc.xml 配置文件片段讲解 七.spring mvc 如何访问到静态的文件,如jpg,js,css 八.spring mvc 请求如何映射到具体的Action中的方法 九.spring mvc 中的拦截器: 十.spring mvc 如何使用拦截器 十一.sprin

Spring MVC入门实例

1.web.xml配置 <?xml version="1.0" encoding="UTF-8"? > <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/