个人对于spring mvc框架的理解
以下我的个人理解加上网络上的所查阅资料,对于spring mvc框架的一些总结,不足之处还望指出
在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错,同时也为了组内开发人员之间的配合。总之就是一种分层工作的办法。
(1) 用户通过浏览器向服务器发送请求,请求被springmvc的前端控制器DispatcherServlet拦截;
(2) DispatcherServlet拦截到请求后,会调用HandlerMapping处理映射器;
(3) 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给调用处理器DispatcherServlet;
(4)DispatcherServlet会通过返回信息选择合适的HanderAdapter(处理器适配器);
(5)HanderAdapter会调用并执行Handler(处理器),这里的处理器值的就是程序中编写的Controller类,也被称之为后端控制器;
(6)Controller执行完成后,会返回一个ModelAndView对象,该对象中包含视图名或包含模型和视图名
(7)HandlerAdapter将ModelAndView对象返回给DispatcherServlet;
(8)DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)
(9)ViewReslover解析后,会向DispatcherServlet中返回具体的View
(10)DispatcherServlet对view进行渲染(即将模型数据填充至视图中)
(11)视图渲染结果会返回给客户端浏览器显示
(1)DispatcherServlet接口:Spring提供的前端控制器,所有的请求都有经过它来统一分发。在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
(2)HandlerMapping接口:能够完成客户请求到Controller映射。
(3)Controller接口:需要为并发用户处理上述请求,因此实现Controller接口时,必须保证线程安全并且可重用。Controller将处理用户请求,这和Struts Action扮演的角色是一致的。一旦Controller处理完用户请求,则返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;从微观考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型(Model)和视图(View)。
(4)ViewResolver接口:Spring提供的视图解析器(ViewResolver)在Web应用中查找View对象,从而将相应结果渲染给客户。
是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:
(1)截获符合特定格式的URL请求。
(2)初始化DispatcherServlet上下文对应WebApplicationContext,并将其与业务层、持久化层的WebApplicationContext建立关联。
(3)初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。
前端跟后端的MVC架构有什么不同
相对而言,后端的特点,能访问数据库,页面是整个刷新掉的。而前端的特点,只能缓存服务器给的数据,界面需要局部更新来保证用户体验。
这两个差别导致 Model 跟 View 的关系大相径庭。一个结果就是前端数据界面的绑定相对严重。
springMVC框架主要负责哪一层
springmvc 前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
1、 首先用户发送请求————前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;
2、 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;
3、 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;
4、 前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。
mvc和mvvm是前端还是后端
你这个说法其实不严密,MVC这种三层结构本身与前后端无关,仅仅前端自己,也可以用MVVM三层来实现,像React、Vue都是这样的。
如果你是从整个服务角度宏观来看的话,MVC里面的M和C在后端,V在前端;MVVM中的M和VM在后端,V在前端(也有人认为VM不一定在后端,我倾向于VM和M的关系更紧密,实现也一般都在后端)
关于MVC前后端的分工
第一:前端和后端不可能分开服务器也不会这么做。
其次:接口当然是后端写前端负责调用,也就是后台实现逻辑数据,前端展示数据
ssm框架是前端还是后端
ssm框架是前端和后端交互的框架。
SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。前后端数据交互通过前端页面提交数据并指定处理数据的controller,后端在controller层中编写处理前端提交的数据的方法。