javaWeb三层架构之学生管理系统

一 系统架构 三层架构

为了实现代码的层次清晰,分工明确,通常会将一个应用划分成三层架构:表示层、业务逻辑层、数据访问层。

* 表示层(web):主要接收前端发送的请求,并响应数据* 业务逻辑层(service): 负责处理具体的业务逻辑* 数据访问层(dao): 负责对数据库进行增删改查操作

在这里插入图片描述

分层时候,可以实现代码的复用性

二 学生管理系统功能模块

1 环境搭建

创建模块

创建maven模块,转为web 项目,添加依赖

<dependencies><!--数据库驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!--mybatis框架--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.9</version></dependency><!--实体封装--><dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.8.3</version></dependency><!--lombok--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.26</version></dependency><!--json转换工具--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.9</version></dependency><!--单元测试--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><!--hutool--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.3</version></dependency><!--servlet--><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin></plugins>
</build>

创建包结构

  • domain: 实体类包
  • util: 工具类包
  • mapper: 持久层(数据访问层)
  • service: 业务层
  • servlet: 表示层
  • filter:过滤器(后面讲)

在这里插入图片描述

复制文件

在这里插入图片描述

复制前端页面

在这里插入图片描述

部署测试

在这里插入图片描述

在这里插入图片描述

2 学生查询

需求:进入主页面后,发送请求到后端,查询学生列表

接口地址:get  /studentServlet?action=findAll
返回数据:
[{id: "hm001",name: "张三",birthday: "1995-05-05",address: "顺义"},{id: "hm002",name: "李四",birthday: "1996-06-06",address: "昌平"}
]

在这里插入图片描述

写代码前,先创建

  • StudentServlet
  • StudentService(接口)
  • StudentServiceImpl(实现类)
  • StudentMapper

表示层

在这里插入图片描述

业务层

在这里插入图片描述

持久层

在这里插入图片描述

3 添加学生

需求:点击添加学生按钮,弹出添加学生页面,填写完毕后,将请求发送到后台

接口地址:post  /studentServlet?action=save
参数(使用请求体传递):{id: "hm001",name: "张三",birthday: "1995-05-05",address: "顺义"}
返回结果:"OK"

在这里插入图片描述

表示层

在这里插入图片描述

业务层

在这里插入图片描述

持久层

在这里插入图片描述

4 删除学生

需求:点击列表中得删除按钮,将学生的id发送到后台进行删除

接口地址:get /studentServlet?action=deleteById&id=学生id
返回结果:"OK"

在这里插入图片描述

表示层

在这里插入图片描述

业务层

在这里插入图片描述

持久层

在这里插入图片描述

5 修改学生-信息回显

需求:点击修改按钮,打开修改框,并将点击行的id发送到后台查询当前学生信息

接口地址:get  /studentServlet?action=findById&id=学生id
返回数据:{id: "hm001",name: "张三",birthday: "1995-05-05",address: "顺义"}

在这里插入图片描述

表示层

在这里插入图片描述

业务层

在这里插入图片描述

持久层

在这里插入图片描述

6 修改学生-信息修改

需求:在修改框输入学生信息,点击修改按钮,将修改后的数据发到后端,后端根据id将数据更新到库中

接口地址:post /studentServlet?action=update
参数(使用请求体传递):{id: "hm001",name: "张三",birthday: "1995-05-05",address: "顺义"}
返回结果:"OK"

在这里插入图片描述

表示层

在这里插入图片描述

业务层

在这里插入图片描述

持久层

在这里插入图片描述

7 面向接口编程(理论)

面向接口编程就是在开发程序之前先定义接口(接口中定义方法),然后开发人员再按照接口定义好的方法去写实现类

这样做的好处在于使用接口层进行解耦合,使得servlet和service层之间不再相互影响

不使用接口遇到的问题

在这里插入图片描述

面向接口编程的思想

在这里插入图片描述

三 结尾

学生管理系统的设计和开发,旨在提高教育管理效率,为学校和教育机构带来便捷和高效的管理体验。通过充分利用计算机技术,实现学生信息的集中管理和自动化处理,学校和教育机构能够更好地适应现代教育的发展需求,提升学生服务质量,为教育事业的发展做出贡献。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/422008.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Excel 动态可视化图表分享

AIGC ChatGPT 职场案例 AI 绘画 与 短视频制作 PowerBI 商业智能 68集 数据库Mysql 8.0 54集 数据库Oracle 21C 142集 Office 2021实战应用 Python 数据分析实战&#xff0c; ETL Informatica 数据仓库案例实战 Excel 2021实操 100集&#xff0c; Excel 2021函数大全 80集 Exc…

数据结构与算法:图

文章目录 图1) 概念有向 vs 无向度权路径环图的连通性 2) 图的表示3) Java 表示4) DFS5) BFS6) 拓扑排序7) 最短路径DijkstraBellman-FordFloyd-Warshall 8) 最小生成树PrimKruskal 图 1) 概念 图是由顶点&#xff08;vertex&#xff09;和边&#xff08;edge&#xff09;组成…

主板电路学习; 华硕ASUS K43SD笔记本安装win7X64(ventoy)

记录 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 1. MBR样式常规安装win7X64Sp1 (华硕 K43SD 安装 win7X64 ) 老爷机 白色 华硕 K43SD 笔记本 安装 win7X64 &#xff08;常规安装&#xff09; 设置&#xff1a; 禁用UEFI 启用AHCI ventoy制作MBR&#xff08;非UEFI&#…

《SPSS统计学基础与实证研究应用精解》视频讲解:SPSS数据文件读取

《SPSS统计学基础与实证研究应用精解》4.3 视频讲解 视频为《SPSS统计学基础与实证研究应用精解》张甜 杨维忠著 清华大学出版社 一书的随书赠送视频讲解4.3节内容。本书已正式出版上市&#xff0c;当当、京东、淘宝等平台热销中&#xff0c;搜索书名即可。本书旨在手把手教会使…

电商项目测试实战之购物车页面用例设计【建议收藏】

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

想找一个没有中间商的账户,很简单,昂首资本推给你

各位投资者都知道&#xff0c;交易的成本决定我们是否盈利&#xff0c;那么有没有一个没有中间商的账户呢&#xff1f;当然有了&#xff0c;昂首资本这就推给你。 在交易的时候&#xff0c;银行为投资者提供兑换业务&#xff0c;并从中收取费用。至于经纪商&#xff0c;它是交…

中国电子学会2023年03月份青少年软件编程Scratch图形化等级考试试卷一级真题(含答案)

一、单选题(共25题&#xff0c;共50分) 1.下列说法不正确的是&#xff1f;&#xff08;2分&#xff09; A.可以从声音库中随机导入声音 B.可以录制自己的声音上传 C.可以修改声音的大小 D.不能修改声音的速度 试题解析&#xff1a;针对声音可以进行导入&#xff0c;上传&…

开源模型应用落地-业务整合篇(三)

一、前言 在之前的两篇文章中&#xff0c;我们学习了如何构建基本的即时消息&#xff08;IM&#xff09;功能。今天&#xff0c;我们将进一步将IM模块与AI服务进行连接&#xff0c;实现用户提问并由模型进行回答&#xff0c;最后将结果展示在用户界面上。 二、术语 2.1. Sprin…

sqli-labs通关笔记(less-11 ~ less16)

上一篇文章说了sqli-labs的less-1到less-10的注入方法&#xff0c;这一篇从less-11开始。 由于从11关开始都是post请求&#xff0c;不会像前十关一样存在符号转成url编码的麻烦&#xff0c;所以不再使用apifox&#xff0c;直接从页面上进行测试。 Less-11 老规矩&#xff0c;…

esp32-idf eclipse 分区表(partition table / NVS)的读写demo

前言&#xff1a; 分区表&#xff08;Partition Table&#xff09;和 NVS&#xff08;Non-Volatile Storage&#xff09;是 ESP-IDF 中用于存储数据的两种不同机制。 分区表&#xff08;Partition Table&#xff09;&#xff1a; 分区表定义了将 Flash 存储器划分为不同逻辑分…

什么是浏览器指纹?详解浏览器指纹识别技术,教你防止浏览器指纹识别

在数字时代&#xff0c;我们的在线活动几乎总是留下痕迹。其中&#xff0c;浏览器指纹就像我们的数字身份证&#xff0c;让网站能够识别和追踪用户。对于跨境电商行业来说&#xff0c;了解这种追踪技术尤其重要&#xff0c;因为它可能影响账号的管理和安全。本文将详细介绍浏览…

Laykefu客服系统 任意文件上传漏洞复现

0x01 产品简介 Laykefu 是一款基于workerman+gatawayworker+thinkphp5搭建的全功能webim客服系统,旨在帮助企业有效管理和提供优质的客户服务。 0x02 漏洞概述 Laykefu客服系统/admin/users/upavatar.html接口处存在文件上传漏洞,而且当请求中Cookie中的”user_name“不为…