发表时间:2022-03-25来源:网络
模型就是数据,应用程序的核心。
V:代表视图View回显数据的界面,例如jsP就是用来展示模型中的数据。
C:代表控制器Controller控制器的作用就是根据入参,把不同的响应数据(Model),显示在不同的视图(View)上。
SpringMVC是一种基于java实现的MVC设计模式的请求驱动类型的轻量级Web框架,出自Spring框架全家桶,与Spring框架无缝整合,使用了MVC架构模式的思想,将Web层进行职责解耦。
框架优点结构松散,几乎可以在SpringMVC中使用各类视图,各个模块分离而且耦合度非常低,且易于扩展。与Spring无缝集成,且简单,灵活,容易上手。

(1)、发起请求到前端控制器DispatcherServlet;
(2)、前端控制器请求HandlerMapping查找,Handler可以根据xml配置、注解进行查找;
(3)、处理器映射器HandlerMapping向前端控制器返回Handler;
(4)、前端控制器调用处理器适配器去执行Handler;
(5)、处理器适配器去执行Handler ;
(6)、Handler执行完成给适配器返回ModelAndView ;
(7)、处理器适配器向前端控制器返回ModelAndView,ModelAndView是springmvc框架的一个底层对象,包括Model和view;
(8)、前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图 ;
(9)、视图解析器向前端控制器返回View ;
(10)、前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域中;
(11)、前端控制器向用户响应结果 ;
DispatcherServlet:请求离开浏览器后,最先到达的就是DispatcherServlet,是整个流程控制的中心,作用接收请求,响应结果,相当于转发器,中央处理器。减少各个组件之间的耦合度。
处理器映射器HandlerMapping:根据请求的url路由到指定接口,用户请求找到Handler处理器,springmvc提供不同类型映射器,例如:Xml配置方式,注解方式等。
处理器适配器HandlerAdapter:按照特定规则去执行Handler,SpringMvc支持多种处理器,各种处理器中的处理方法各不相同,为了解决适应多种处理器,就出现了处理器适配器。
处理器Handler:处理用户请求,涉及具体业务逻辑,需要程序员根据业务需求开发。编写Handler时按照HandlerAdapter的规则开发,这样适配器才可以正确执行Handler。
视图解析器ViewResolver:负责将请求的响应结果生成View,根据逻辑视图名解析成物理视图名,就是具体页面地址,生成View视图对象,对View进行渲染,通过页面展示给用户。
视图View:SpringMvc框架提供很多的View视图类型的支持,包括:jsp、freemarker、pdf等。通过页面标签或页面模版解析模型数据回显到页面,需要根据业务开发具体页面。
标记一个类是Handler,也就是开发的Controller,然后使用@Re或其他相关注解(@GetMapping、@PostMapping、@PutMapping、@DeleteMapping),用来关联请求和Controller方法之间的映射关系,这样的Controller 就可以被请求访问。
@Re处理请求地址映射的注解,可作用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以类上标注地址作为父路径。
@re主要用于在SpringMvc框架的控制层获取参数,三个常用参数:defaultValue表示设置默认值,required 通过boolewww.cppcns.coman设置是否是必须要传入的参数,value值表示传入的参数名称。
@Re接收请求体中传递给后端的Json字符串数据的,GET方式无请求体,所以使用@Re接收数据时,不能使用GET方式提交数据,需要用POST方式进行提交。
@ResponseBody该注解用于方法的返回对象,可以通过配置转换器为指定数据响应格式,如果希望返回的数据不是View试图页面,而是指定数据格式的时候使用,例如:Json、Xml等。
@Autowired按照类型(byType)装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它的required属性为false。如果想使用按照名称(byName)来装配,可以结合@注解一起使用。
@Resource按照ByName自动注入,需要导入包javax.annotation.Resource。@Resource有两个重要的属性:name和type,而Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。
@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
测试:
http://localhost:6003/getSum?a=1&b=2
传参名称和方法参数保持一致。
测试:
http://localhost:6003/getInfo?name=cica&say=hello
传参名和 @Re 指定的参数名要对应。
测试:
http://localhost:6003/getArray?ids=2&ids=3
传递并解析数组类型的参数格式。
测试:
http://localhost:6003/getCityEntity?province=浙江&name=杭州
这里以Post方式将相关参数传递CityEntity实体对象中。
测试:
http://localhost:6003/getCityEntity?province=浙江&name=杭州
这里以Post方式将相关参数传递CityEntity实体对象www.cppcns.com中。
测试:
http://localhost:6003/getId/1
RestFul 风格参数映射。
github地址
https://github.com/cicadasmile/spring-mvc-parent
GitEE地址
https://gitee.com/cicadasmile/spring-mvc-parent
以上就是SpringMvc框架的简介与执行流程详解的详细内容,更多关于SpringMvc框架执行流程的资料请关注我们其它相关文章!
本文标题: SpringMvc框架的简介与执行流程详解 本文地址: http://www.cppcns.com/ruanjian/java/402696.html上一篇:疯狂Java讲义pdf下载
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-03-26
2022-02-15
2022-02-14