1.理解SPRINGMVC的原理

在讲springMVC之前我们先来看一下什么是MVC模式

MVC:MVC是一种设计模式

MVC的原理图:

    

分析:

M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)

V-View 视图(做界面的展示  jsp,html……)

 

C-Controller 控制器(接收请求—>调用模型—>根据结果派发页面)

 

springMVC是什么:

  springMVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2加上sring的整合,但是这里有一个疑惑就是,springMVC和spring是什么样的关系呢?这个在百度百科上有一个很好的解释:意思是说,springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springMVC和spring无缝集成,其实springMVC就是spring的一个子模块,所以根本不需要同spring进行整合。

 

SpringMVC的原理图:

 

看到这个图大家可能会有很多的疑惑,现在我们来看一下这个图的步骤:(可以对比MVC的原理图进行理解)

第一步:用户发起请求到前端控制器(DispatcherServlet)

第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找

第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)

第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)

第五步:处理器适配器去执行Handler

第六步:Handler执行完给处理器适配器返回ModelAndView

第七步:处理器适配器向前端控制器返回ModelAndView

第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析

第九步:视图解析器像前端控制器返回View

第十步:前端控制器对视图进行渲染

第十一步:前端控制器向用户响应结果

看到这些步骤我相信大家很感觉非常的乱,这是正常的,但是这里主要是要大家理解springMVC中的几个组件:

前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。

处理器映射器(HandlerMapping):根据URL去查找处理器

处理器(Handler):(需要程序员去写代码处理逻辑的)

处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)

视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC是一个基于MVC设计模式的Web框架,它包含了模型(Model)、视(View)和控制器(Controller)三个核心组件。其中,控制器用于接收外部请求并解析参数,将其传递给服务层。通过使用MVC,Spring MVC能够有效地降低视和业务逻辑之间的耦合度。 Spring MVC的架构原理是基于Spring和Spring MVC容器的父子关系。其中,Spring容器作为父容器,Spring MVC容器作为子容器。子容器可以引用父容器中的Bean,但父容器不能引用子容器中的Bean。在Spring的配置文件中,可以通过配置来实现对控制层注解的排除扫描,而在Spring MVC的配置文件中,则可以实现对控制层注解的扫描。 另外,在Spring MVC的配置文件中,可以通过配置fastjson来支持JSON数据的转换。通过开启Spring MVC的注解驱动,配置相应的消息转换器,如FastJsonHttpMessageConverter,设置支持的媒体类型,从而实现对请求和响应数据的处理。 总结来说,Spring MVC是一个基于MVC设计模式的Web框架,通过控制器接收外部请求并解析参数传递给服务层,实现了视和业务逻辑的解耦。它的架构原理是基于Spring和Spring MVC容器的父子关系,实现了容器之间的Bean引用。此外,通过配置可以实现对控制层注解的扫描和排除,以及对JSON数据的转换处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [SpringMVC框架理解](https://blog.csdn.net/qq_53732688/article/details/124885801)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [SpringMVC详解](https://blog.csdn.net/m0_67296957/article/details/131695164)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值