SpringMVC的理解

【SpringMVC】

SpringMVC是MVC框架,通过实现Model-VIew-Controller将数据、业务和展现分离。SpringMVC围绕DispatcherServlet展开的,负责将请求派发到指定的handler。

工作原理:

1.用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获。

2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回。

3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法)。

4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息。

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。

数据格式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等。

数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5. Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;

6.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;

7.ViewResolver 结合Model和View,来渲染视图

8.将渲染结果返回给客户端。

时间: 2024-10-09 01:38:48

SpringMVC的理解的相关文章

SpringMVC深入理解

核心类与接口 - DispatcherServlet 前置控制器- HandlerMapping 请求映射(到Controller)- HandlerAdapter 请求映射(到Controller类的方法上)- Controller 控制器- HandlerIntercepter 拦截器- ViewResolver 视图映射- View 视图处理 启动过程 Spring MVC启动过程大致分为两个过程:- ContextLoaderListener初始化,读取context-param中的co

使用mybatis多表联查的时候结果异常及springmvc的理解

今天使用mybatis多表联查的时候,在dos窗口查询时可以出结果集,但是使用mybatis查询的时候最后返回的结果只有最后一个结果 然后研究了半天没弄出来,后来无意中发现添加了最外层从表的ID字段后结果就查出来了,由此可见,数据是由主键来区分的,当主键不在查询范围时,数据默认调用最后一条语句 另外使用springmvc时无法使用实例化service对象,会报空指针异常

对Spring与SpringMVC的理解

Spring 在我的Spring --简介及环境搭建跑通Hello提到关于Spring的基本结构与功能 SpringMVC 先上一张SpringMVC的流程图 Spring MVC 是一个模型 - 视图 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果的概念.Spring MVC 是 Spring 产品组合的一部分,它享有 Spring IoC容器紧密结合Spring松耦合等特

SSM-SpringMVC-04:SpringMVC深入浅出理解HandleMapping(源码刨析)

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 先从概念理解,从中央调度器,携带参数request,调度到HandleMapping处理器映射器,处理器映射器返回处理器执行链给中央调度器 我从底层走一遍,印证这个概念: 1.都说是中央调度器的,所以先找到中央调度器DispatcherServlet 2.从他里面找到一个方法   ctrl+f 找(doDistch) protected void doDispatch(HttpServletRequest

SpringMVC框架理解

JavaEE体系结构包括四层,从上到下分别是应用层.Web层.业务层.持久层.Struts和SpringMVC是Web层的框架,Spring是业务层的框架,Hibernate和MyBatis是持久层的框架. 为什么要使用SpringMVC? 很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对象更改都有高度敏感性.而且,当多个视图依赖于同一个业务对象时是没有灵活性的. SpringMVC是一种基于Java,

spring及springMVC配置理解

首先我们来看一下web.xml,以及里面的配置具体是干什么的 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xsi:schemaLocation=&quo

对SpringMVC的理解

SpringMVC是一个Spring的作用于后台的Web层的组件框架,主要是用于接收请求.响应数据等操作,其底层是servlet,SpringMVC是对Servlet更深层次的封装. SpringMVC的执行过程: 1.用户发送请求到后台,后台经SpringMVC中的前端控制器来接收请求. 2.前端控制器开始调用处理器映射器. 3.处理器映射器查找对应的xml配置或者拦截器,生成处理对象返回给前端控制器. 4.前端控制器调用处理器适配器,并将处理对象交给处理器适配器. 5.处理器适配器通过请求映

Spring SpringMVC myBatis(简称SSM)理解

1对Spring的理解 (1)spring是什么? spring是Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架. (2)spring的作用 (a)spring的核心是容器.通过容器配置创建对象.传统的创建对象是:User user=new User(),这违反低耦合.高内聚.spring容器提供IOC DI,控制反转,依赖注入来创建对象.符合低耦合高内聚. 2 对springMVC的理解 (1)springMVC是什么? 是一些以前产品的粘合而得到的一个

SpringMVC学习

1,对SpringMVC的理解 a,基于MVC的设计理念 b,采用松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性 c,支持REST风格的URL请求 d,该框架围绕DispatcherServlet这个核心展开,DispatcherServlet是SpringMVC框架的总导演和总策划,他负责截获请求并将其分派给响应的处理器处理 2,SpringMVC的工作流程 3,使用RequestMapping映射请求 在SpringMVC中的众多Controller以及每个Controller的