Day18_学点儿设计模式_MVC和三层架构

2024-04-10 00:04

本文主要是介绍Day18_学点儿设计模式_MVC和三层架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 优质文章

MVC与三层架构
什么是MVC?什么是三层架构?
三层架构与MVC详细讲解
MVC三层架构(详解)

1 MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,
用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
最简单的、最经典就是JSP(view) +Servlet(controller) + JavaBean(model)
视图和逻辑隔离开来
在这里插入图片描述
控制器是核心
M(Model) 模型 JavaBean
V(View) 视图 html jsp Thymeleaf volicity freemaker
C(Control) 控制器 Servlet,Controller,Action

工作流程:

  1. 当控制器收到来自用户的请求
  2. 控制器调用业务层完成JavaBean数据封装
  3. 完成业务后通过控制器跳转JSP页面的方式给用户反馈信息
  4. JSP个 用户做出响应。

什么是JavaBean?

JavaBean:一种规范,表达实体和信息的规范,便于封装重用

  1. 所有属性为private
  2. 提供默认无参构造方法
  3. 提供getter和setter
  4. 实现serializable接口

2 三层架构

在这里插入图片描述
在这里插入图片描述

  1. Controller:负责控制,拿到View传递过来的数据,封装之后交给Service处理,Service处理完了之后,Controller拿到结果之后,将结果交给界面。
  2. Service:业务逻辑(比如分页,为了完成分页就要调用两次DAO层)
  3. DAO:纯粹的JDBC的增删改查操作
    上一层可以调用下一层所有代码,并不是StudentServlet只能调用IStudentService代码,也可以调用ITeacherService代码
	@WebServlet("/student")public class StudentServlet extends HttpServlet {private IStudentService studentService = new StudentServiceImpl();private ITeacherService teacherService = new TeacherServiceImpl();}public class StudentServiceImpl implements IStudentService {private IStudentDao studentDao = new StudentDaoImpl();private ITeacherDao teacherDao = new TeacherDaoImpl();}public class StudentDaoImpl implements IStudentDao {}

在这里插入图片描述

3 分页

在这里插入图片描述
在这里插入图片描述

limitoffset代表偏移到哪个位置,rows代表往下数多少个
pageNo, pageSize -> 1,5 2,5 3,5
limit (pageNo-1)*pageSize ,pageSize

pageNolimit
10,5
25,5
310,5

在这里插入图片描述
在这里插入图片描述

分页常见的问题:

  1. 封装一个分页需要哪些信息
    ①当前页要展示的数据(可以用泛型)②总页数③当前页号④每页展示数据条数⑤
  2. 分页需要发送哪两条sql语句
SELECT id,name,age,gender FROM student LIMIT offset,pagesize
SELECT count(*) FROM student

Pageinfo类:

public class PageInfo{//当前页数据private List<Student> list;//总的页数   Math.ceil(总数量/pageSize)      private Integer totalPage;private Integer pageNo;private Integer pageSize;
}//缺点是这个PageInfo只能封装Student,使用泛型就可以解决这个问题,这个T代表可以传递任何对象
public class PageInfo<T>{private List<T> list;private Integer totalPage;private Integer pageNo;private Integer pageSize;
}public static void main(String[] args) {int totalCount = 12;int pageSize = 5;int totalPage = (int)Math.ceil((double)totalCount / pageSize);System.out.println(totalPage);// 3
}

在这里插入图片描述
在这里插入图片描述

4 代码

Day18_三层架构、分页

这篇关于Day18_学点儿设计模式_MVC和三层架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889581

相关文章

Java异常架构Exception(异常)详解

《Java异常架构Exception(异常)详解》:本文主要介绍Java异常架构Exception(异常),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. Exception 类的概述Exception的分类2. 受检异常(Checked Exception)

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

基于@RequestParam注解之Spring MVC参数绑定的利器

《基于@RequestParam注解之SpringMVC参数绑定的利器》:本文主要介绍基于@RequestParam注解之SpringMVC参数绑定的利器,具有很好的参考价值,希望对大家有所帮助... 目录@RequestParam注解:Spring MVC参数绑定的利器什么是@RequestParam?@

Spring MVC跨域问题及解决

《SpringMVC跨域问题及解决》:本文主要介绍SpringMVC跨域问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录跨域问题不同的域同源策略解决方法1.CORS2.jsONP3.局部解决方案4.全局解决方法总结跨域问题不同的域协议、域名、端口

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

Spring MVC如何设置响应

《SpringMVC如何设置响应》本文介绍了如何在Spring框架中设置响应,并通过不同的注解返回静态页面、HTML片段和JSON数据,此外,还讲解了如何设置响应的状态码和Header... 目录1. 返回静态页面1.1 Spring 默认扫描路径1.2 @RestController2. 返回 html2

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

百度/小米/滴滴/京东,中台架构比较

小米中台建设实践 01 小米的三大中台建设:业务+数据+技术 业务中台--从业务说起 在中台建设中,需要规范化的服务接口、一致整合化的数据、容器化的技术组件以及弹性的基础设施。并结合业务情况,判定是否真的需要中台。 小米参考了业界优秀的案例包括移动中台、数据中台、业务中台、技术中台等,再结合其业务发展历程及业务现状,整理了中台架构的核心方法论,一是企业如何共享服务,二是如何为业务提供便利。