目录
MVC模式和三层架构在Web中经常一起使用,可以实现业务逻辑、数据访问和用户界面的分离,提高代码的可维护性和可扩展性。
1、MVC模式
- M:Model,业务模型,处理业务
- V:View,视图,界面展示
- C:Controller,控制器,处理请求,调用模型和视图
控制器(serlvlet)接收浏览器发送过来的请求,控制器调用模型(JavaBean)来获取数据,控制器获取到数据后再交由视图(JSP)进行数据展示。
2、三层架构
通过将应用程序划分为不同的层次,使得各个层次之间的职责更加明确,降低了层次之间的耦合度,提高了代码的可维护性和可重用性。
- 数据访问层:对数据库的增删改查操作。对应com.example.dao 或 com.example.mapper。
- 业务逻辑层:对业务逻辑进行封装。组合数据访问层的基本功能,形成复杂的业务逻辑。如注册业务功能 ,要先调用数据访问层的selectByName() 方法判断该用户名是否存在,如果不存在再调用数据访问层的insert() 方法进行数据的添加操作。对应com.example.service。
- 表现层:接收请求、封装数据、调用业务逻辑层、响应数据。对应com.example.controller。
3、MVC+三层架构
4、分层后的处理请求与响应流程
- 浏览器发送请求:用户通过浏览器访问Web应用的某个页面或执行某个操作时,浏览器会向服务器发送一个HTTP请求。
- 表现层的Servlet接收请求:在服务器端,配置好的Servlet会监听特定的URL路径。当请求到达时,对应的Servlet会被调用。Servlet作为表现层的一部分,负责接收和解析请求中的参数。
- 调用业务逻辑层的方法:Servlet根据请求的内容,调用业务逻辑层(Service层)中相应的方法。业务逻辑层包含了处理具体业务逻辑的代码,比如验证用户输入、计算数据等。
- 业务逻辑层调用数据访问层方法:在业务逻辑处理过程中,如果需要与数据库进行交互(例如查询、更新数据),业务逻辑层会调用数据访问层(DAO层)的方法。数据访问层负责执行实际的数据库操作。
- 数据访问层执行数据操作:数据访问层与数据库进行交互,执行CRUD操作(增删改查),并将结果返回给业务逻辑层。
- 数据返回业务逻辑层和Servlet:业务逻辑层接收来自数据访问层的数据或操作结果,并根据需要进行进一步处理。处理完毕后,业务逻辑层将结果返回给Servlet。
- Servlet将数据交由JSP进行展示:Servlet将业务逻辑层返回的数据封装到request或session等对象中,然后转发(forward)或重定向(redirect)到一个JSP页面。JSP页面作为视图层,负责将数据以HTML的形式展示给用户。
- JSP渲染并返回响应给浏览器:JSP页面接收来自Servlet的数据,根据页面模板和数据进行渲染,生成最终的HTML页面。然后,这个HTML页面作为HTTP响应返回给浏览器。
- 浏览器展示页面:浏览器接收到来自服务器的HTTP响应后,解析HTML页面并展示给用户。
这个流程中,Servlet扮演了控制器的角色,业务逻辑层是模型,而JSP页面则是视图。
5、注意事项
- 保持各层之间的松耦合,避免跨层调用,确保职责清晰。
- 使用接口或抽象类定义层之间的交互,提高代码的可维护性和可扩展性。
6、基于MVC模式的框架
SpringMVC是Spring框架中的一个模块,它是一个基于MVC设计模式的Web框架。SpringMVC将业务逻辑、数据、显示分离,使得代码更加清晰、易于理解和维护。它提供了丰富的功能和灵活的配置。
SpringMVC的主要作用包括:
- 通过一套注解,使得一个简单的Java类能够成为处理请求的控制器,无需实现任何接口。
- 支持RESTful编程风格的请求,满足现代Web应用的需求。
- 与Spring框架的其他模块无缝集成,如Spring的依赖注入功能,使得业务逻辑层的实现更加灵活和可维护。
在三层架构中,SpringMVC通常负责表示层(UI层)的实现。它接收用户的请求,调用业务逻辑层处理业务逻辑,然后将结果传递给视图进行展示。通过SpringMVC,开发者可以更加高效地构建结构清晰、易于维护和扩展的Web应用程序。
SpringMVC是最广泛使用的MVC框架之一,是一个强大且灵活的Web框架,它基于MVC模式和Spring框架,提供了构建高效、可维护的Web应用程序的工具。
7、基于三层架构的框架
三层架构更多的是一种设计思想,而不是特定的框架。很多Web框架都遵循或支持这种架构。例如,在Spring框架中,Spring MVC负责表示层,Spring的核心功能(如依赖注入)可以用于业务逻辑层,而Spring Data或MyBatis等则负责数据访问层。
MVC模式和三层架构提供了一种组织和管理代码的有效方式,使得Web应用程序更加清晰、可维护且易于扩展。
标签:Web,逻辑,架构,数据,业务,MVC,三层,Servlet From: https://blog.csdn.net/u010852547/article/details/136662257