SpringMVC工作原理概述

SpringMVC工作原理概述SpringMVC框架介绍SpringMVC属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而…

大家好,又见面了,我是你们的朋友全栈君。

SpringMVC框架介绍

  • Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架。通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。

        Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

  •  Spring的MVC框架主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成。

SpringMVC原理图

 

SpringMVC工作原理概述

 

SpringMVC工作流程概述:

1、客户端向web服务器(如tomcat)发送一个http请求,web服务器对http请求进行解析,解析后的URL地址如果匹配了DispatcherServlet的映射路径(通过web.xml中的servlet-mapping配置),web容器就将请求交给DispatcherServlet处理。

2、DispatcherServlet接收到这个请求后,再对URL进行解析,得到请求资源标识符(URI)。然后调用相应方法得到的HandlerMapping对象,再根据URI,调用这个对象的相应方法获得Handler对象以及它对应的拦截器。(在这里只是获得了Handler对象,并不会操作它,在SpringMVC中,是通过HandlerAdapter对Handler进行调用、控制的)

3、DispatcherServlet根据得到的Handler对象,选择一个合适的HandlerAdapter,创建其实例对象,执行拦截器中的preHandler()方法。

4、在拦截器方法中,提取请求中的数据模型,填充Handler入参,所以所有准备工作都已做好,开始执行Handler(我们写的controller代码并不是能被直接执行,需要有刚才那些操作,才能转变为Handler被执行)。

5、Handler执行完毕后返回一个ModelAndView对象给DispatcherServlet。

6、这个ModleAndView只是一个逻辑视图,并不是真正的视图,DispatcherServlet通过ViewResolver视图解析器将逻辑视图转化为真正的视图(通俗理解为将视图名称补全,如加上路径前缀,加上.jsp后缀,能指向实际的视图)。

7、DispatcherServlet通过Model将ModelAndView中得到的处数据解析后用于渲染视图。将得到的最终视图通过http响应返回客户端。

SpringMVC工作原理概述

 

  • DispatcherServlet是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

 

 

    1. 截获符合特定格式的URL请求。
    2. 初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
    3. 初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

时序图(转载):

SpringMVC工作原理概述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146441.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 防止攻击服务器_iis部署网站无法通过ip访问

    防止攻击服务器_iis部署网站无法通过ip访问摘要:介绍了IIS服务器常见的攻击及几种常见防御方式,阐述了IIS服务器的攻击原理,针对IIS服务器的缺陷阐述了IIS的常用防御方式,同时结合实例具体实现方式。关键词:IIS;服务器攻击;服务器防御中图分类号:TP393            文献标识码:A0         引言  随着Internet的不断发展与普及,英特网上出现了越来越多的WEB服务器。人们通过WEB服

    2022年8月30日
    0
  • s一般怎么称呼自己的m_75.9%的职场人,都不知道怎么称呼自己的领导

    s一般怎么称呼自己的m_75.9%的职场人,都不知道怎么称呼自己的领导包邮送!人力资源制度手册纸质版和电子版23套制度覆盖员工入职到离职各环节82份表格制度配套全面规范附赠电子版可复制可编辑原价49元纸质版+电子版包邮送!!!最后30本!扫码回复【100】立抢!来源:猎聘(ID:liepinwang)作者:放学堵他谁能想到「怎么称呼别人」这样看似简单到不能再简单的问题,居然会成为让职场萌新发懵,甚至打怵的究极难题。不要以为这是什么夸张的说…

    2022年6月23日
    85
  • java的用途有哪些,被运用到哪些地方?

    java的用途有哪些,被运用到哪些地方?如果你是一个起步者或者只是刚刚开始学习Java,你或许会疑虑,Java到底是在哪里被运用的呢?除了Minecraft这款游戏以外,你没有见过用Java编写的游戏吧?桌面工具AdobeAcrobat、微软的Office办公软件,他们都不是用Java编写,以至于连我们电脑所应用的操作系统(Linux和Windows)都不是,那么人们如何运用Java的呢?现实世界中到底有没有运用Java的应用呢?这个问题所有的程序员都会在初学Java或者在为了毕业必须掌握一门编程语言而开始学

    2022年7月8日
    19
  • 职场四象限法则:时间管理四象限与职场沟通四象限「建议收藏」

    职场四象限法则:时间管理四象限与职场沟通四象限「建议收藏」今天参加了部门组织的一个分享会,主要是关于职场心态与职场沟通的内容,职场心态主要是通过对MBTI和职场锚的测试结果做分析,内容较多省略。职场沟通方面,技术经理讲到了两个象限,即时间管理四象限与沟通四象限。

    2022年6月16日
    65
  • intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】[通俗易懂]

    intellij idea如何右键新建文件中添加jsp格式的文件【初学者适用】[通俗易懂]idea如何右键新建文件中添加jsp格式的文件    有位同学在学习使用intellijidea,在创建web类的project时,新建中找不到jsp格式类型,下面是怂怂总结的解决步骤,希望可以帮助更多诸如小太阳同学,解决相同的问题。&a

    2022年10月25日
    0
  • Spring AOP中动态代理的两种实现方式及其过程_ajax工作原理及优缺点

    Spring AOP中动态代理的两种实现方式及其过程_ajax工作原理及优缺点AOP思想:基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强!

    2022年9月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号