应用为什么要被分为三块,长处是什么?
- M: Model (模型)
- V:View (视图)
- C:Controller (控制器)
MVC 将应用分为三块,每一块各司其职,都有本身专注的事情要做,它们属于分工协作,互相配合:
- 低耦合,扩展本领增强
- 代码复用性增强
- 代码可维护性增强
- 高内聚,让程序员更加专注业务的开辟。
MVC 架构图模式如下:所示
- Model :负责业务处置惩罚及数据的网络
- View:负责数据的展示
- Controller:负责调度,它是一个调度中心,它来决定什么时候调用Model 来处置惩罚业务,什么时候调用 View 视图来展示数据。
MVC 架构模式的形貌:前端欣赏器发送请求给 Web 服务器,Web 服务器中的 Controller 接收到用户的请求,Controller 负责将前端提交的数据进行封装,然后 Controller 调用 Model 来处置惩罚业务,当Model 处置惩罚完业务后,会返回处置惩罚之后的数据给 Controller,Controller 再调用 View 来完成数据的展示,终极将效果相应给欣赏器,欣赏器进行渲染展示页面的内容。面试题:什么是三层模型,并说一说MVC架构模式与三层模型的区别?
MVC 和 三层模型都采用了分层结构来设计应用程序,都是低落耦合度,提高扩展力,提高组件复用性,区别在于:它们的关注点不同,三层模型更关注业务逻辑组件的分别。更多关于 MVC 架构的内容大家可以移步至:✏️✏️✏️ MVC 三层架构案例详细讲解_mvc三层架构-CSDN博客
MVC 架构模式关注的是整个应用程序的条理关系和分离思想。现代的开辟方式大部分都是 MVC 架构模式结合三层模型一起用的。
总之,与 Servelt 开辟相比,Spring MVC 框架可以帮我们节流很多时间和精力,减少代码的复杂度,更加专注于业务开辟。同时,也提供了更多的功能和扩展性,可以更好地满足企业级应用的开辟需求。3. 运行配置第一个 Spring MVC 程序
- Spring MVC依赖
- 日记框架Logback依赖
- Servlet依赖
- Spring6和Thymeleaf整合依赖
注意:一般情况下,我们添加了webapp ,IDE是会自动给我们添加上一个小蓝点的,假如没有的话,需要我们本技艺动添加。
手动在 WEB-INF 前面添加上 src\main\webapp路径。因为我们的WEB-INF 要在 webapp 目次下才行。
3.3 第三步:配置 web.xml文件
固然是 Servlet ,在 Spring MVC 框架中已经为我们写好了一个 Servlet ,它的名字叫做:DispatcherServlet ,我们称其为前端控制器 ,既然是 Servlet,那么它就需要在 web.xml 文件中进行配置。
/ 配置为 / 的作用意义是:DispatcherServlet 是 Spring MVC 框架为我们提供的最核心 的类。它是整个 Spring MVC 框架的前端控制器。负责接收 HTTP 请求,将请求路由随处置惩罚程序,处置惩罚相应信息,终极将相应返回给客户端。DispatcherServlet 是 Web 应用程序的主要入口之一,它的职责包罗:复制代码
- /* 表示任何一个请求都交给DispatcherServlet来处理 -->
- / 表示当请求不是xx.jsp的时候,DispatcherServlet来负责处理本次请求-->
- jsp本质就是Servlet,因此如果请求是jsp的话,应该走它自己的Servlet,而不应该走DispatcherServlet
第一项:组件扫描,Spring 扫描这个包中的类,将这个包中的类实例化并纳入IOC容器当中进行管理。
- 第一项:组件扫描,Spring 扫描这个包中的类,将这个包中的类实例化并纳入IOC容器当中进行管理。
- 第二项:视图解析器:视图解析器(View Resolver) 的作用主要是将Controller 方法返回的逻辑视图名称解析成实际的视图对象。视图解析器将解析出的视图对象返回给 DispatcherServlet,并终极由 DispatcherServlet 将该视图对象转化为相应效果,呈现给用户。
- 注意:假如采用了其它视图,请配置对应的视图解析器,例如:
- JSP的视图解析器:InternalResourceViewResolver
- FreeMarker视图解析器:FreeMarkerViewResolver
- Velocity视图解析器:VelocityViewResolver
复制代码
- <property name="prefix" value="/WEB-INF/templates/"/>
- <property name="suffix" value=".thymeleaf"/>
- <property name="templateMode" value="HTML"/>
- <property name="characterEncoding" value="UTF-8"/>
注意:这个是 Thymeleaf的模板字符串,只有:Thymeleaf的模板引擎才可以解析,固然看上去是:html,但是它不是 html,本质上是 Thymeleaf的模板字符串,欣赏器是看不懂的的。只有将这些信息,交给 Thyemeleaf 视图解析器翻译真正转化为了 html代码(的时候才是真正的html),3.7 第七步:控制器 FirstController 处置惩罚请求返回逻辑视图名称
,欣赏器才能看懂。至于为什么是 html 呢,是因为这里我们配置的 Thymeleaf 视图解析器,就是配置的翻译为 html 文件,固然也可以配置翻译为其它的类型的文件。
6. 末了:
- 总之,与 Servelt 开辟相比,Spring MVC 框架可以帮我们节流很多时间和精力,减少代码的复杂度,更加专注于业务开辟。同时,也提供了更多的功能和扩展性,可以更好地满足企业级应用的开辟需求。
- servlet依赖(scope设置为 provided,体现这个依赖终极由第三方容器来提供)
- 注意:一般情况下,我们添加了webapp ,IDE是会自动给我们添加上一个小蓝点的,假如没有的话,需要我们本技艺动添加。
- DispatcherServlet 是 Spring MVC 框架为我们提供的最核心 的类。它是整个 Spring MVC 框架的前端控制器。负责接收 HTTP 请求,将请求路由随处置惩罚程序,处置惩罚相应信息,终极将相应返回给客户端。DispatcherServlet 是 Web 应用程序的主要入口之一,
- 视图解析器:视图解析器(View Resolver) 的作用主要是将Controller 方法返回的逻辑视图名称解析成实际的视图对象。视图解析器将解析出的视图对象返回给 DispatcherServlet,并终极由 DispatcherServlet 将该视图对象转化为相应效果,呈现给用户
- 编写FirsController ,在类上标注 @Controller 注解,纳入IOC容器的管理,固然,也可以采用 @Component注解 进行标注, @Controller 只是 @Component 注解的别名
复制代码
- Spring MVC 中的配置文件,名字是可以指定的,位置也是可以指定的,怎么指定?设置 DispatcherServlet 的初始化参数 ```xml <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:springmvc.xml</param-value>
- </init-param>```建议: 在 web 服务器启动的时候,初始化 DispatcherServlet,如许用户第一次请求时,服从较高。体验好
“在这个末了的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |