基于SSH框架的学生成绩管理系统源码+数据库,Struts2、Spring与Hibernate整合应用,实验报告

news2024/11/18 19:28:26

Struts2、Spring与Hibernate整合应用:基于SSH框架的学生成绩管理系统

最近一个实验课程,需要做一个基于SSH框架学生成绩管理系统。就简简单单做了一下……

1.1 实验要求:

(1) 整合Struts2、Spring和Hibernate框架

(2) 实现“登录”功能

(3) 实现“学生信息管理”功能

(4) 实现“学生成绩管理”功能

(5) 实现分页功能

1.2 实验目的:

  • 掌握Struts2的开发步骤
  • 掌握Hibernate的开发步骤
  • 掌握Spring的开发步骤,理解依赖注入、AOP、事务管理等
  • 掌握Struts2、Spring和Hibernate框架的整合
  • 掌握分页技术

1.3 实验思路:

1、 建库建表

2、 利用分层思想,建package

3、 添加Spring开发能力

4、 添加Hibernate开发能力

5、 生成Hibernate所需的POJO类和映射文件

6、 开发DAO层

​ (1) 新建DAO层接口。

​ (2) 新建DAO层实现类(该类要实现DAO层接口,继承HibernateDaoSupport类)。

​ (3) 在Spring配置文件中增加该DAO层实现类的定义,并需要依赖注入一个SessionFactory bean的引用。

7、 开发Service层

​ (1) 新建Service层接口。

​ (2) 新建Service层实现类,该类中需要声明所调用DAO层接口,并生其setter方法。

​ (3) 在Spring配置文件中增加该Service层实现类的定义,并需要依赖注入DAO层的bean。

8、 实现WEB层

​ (1) 在web.xml中增加struts2的过滤器和Spring的监听器。

​ (2) 增加Spring和Struts2的整合文件struts.properties。

​ (3) 新建所需的jsp文件。

​ (4) 新建Action类,该类要继承ActionSupport,同时该类要依赖注入Service的bean(声明+setter方法)。

​ (5) 在Spring配置文件中增加该Action类的定义,并注入Service层的bean。

​ (6) 在struts.xml中增加该Action的定义,其中class的属性是在Spring中定义的该Action bean的id。

9、部署运行

1.4 创建数据库:

在原文中,项目要求建立的数据库有相信的说明。这里不再赘述。

完整的数据库文件,请见 database/j2ee_student_db.sql

数据表主要有:

  1. 登录表User

  2. 学生信息表Student

  3. 专业表Major

  4. 课程表Course

  5. 成绩表Grade

2. 项目实现

2.1 技术栈与开发环境

  • 后台基于SSH框架、采用Maven进行包管理,使用Idea 2018进行开发
  • 前端基于 JSP,使用JQuery,使用ymPrompt框架的弹窗
  • 数据库 MySQL,版本为5.5.62,编码格式为 UTF-8
  • 容器为 Tomcat,版本为 8.0
  • 全部字符集编码为 UTF-8

2.3 项目运行图

以下截图中的数据,非真实数据

登录页面:

在这里插入图片描述

后台主页:

在这里插入图片描述

如果直接访问后台主页,拦截器进行拦截,并返回登录页。

学生管理之学生列表页:

在这里插入图片描述

主要是分页显示数据。

学生模糊查询页面

在这里插入图片描述

在这里插入图片描述

新增学生页面:

在这里插入图片描述

其中学号是不可编辑的,由系统生成!

添加成功后:

在这里插入图片描述

添加成功后,提示“添加成功”,并且页面自动刷新加载新数据

查看学生详细信息页:

在这里插入图片描述

只能查看,不可编辑(主要是查看照片)

编辑学生信息页:

在这里插入图片描述

加载原始信息(包括照片),修改后,所有信息替换成新的。学号不可编辑。

删除学生提示页:

在这里插入图片描述

需要两步确认

学生成绩管理页:

在这里插入图片描述

这里懒得写分页了,逻辑和学生列表一致。

筛选查询:

在这里插入图片描述

编辑成绩:

在这里插入图片描述

关于成绩管理模块,上图中的“新增”和“删除”功能未实现,如有需要可扩充。

课程管理:

在这里插入图片描述

上图"新增"、“编辑”、“删除”功能未写。

专业管理:

在这里插入图片描述

上图"新增"、“编辑”、“删除”功能未写。

完整代码下载地址:

基于SSH框架的学生成绩管理系统源码+数据库

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

​箭头函数和普通函数的区别​

一.外形不同:箭头函数使用箭头定义,普通函数中没有 代码实例如下: // 普通函数 function func(){// code } // 箭头函数 let func()>{// code } 二.箭头函数都是匿名函数 普通函数可以有匿名函数,也可以有具体名函数&#xf…

框架高级课程系列之Redis6笔记

文章目录前言NoSQL数据库简介技术发展NoSQL数据库NoSQL适用场景NoSQL不适用场景Redis概述安装配合关系型数据库做高速缓存多样的数据结构存储持久化数据Redis 安装准备工作:下载安装最新版的gcc编译器启动 Redis方式Redis 关闭方式Redis介绍相关知识常用五大数据类型…

如何利用python机器学习解决空间模拟与时间预测问题及经典案例分析

目录 专题一 机器学习原理与概述 专题二 Python编译工具组合安装教程 专题三 掌握Python语法及常见科学计算方法 专题四 机器学习数据清洗 专题五 机器学习与深度学习方法 专题六 机器学习空间模拟实践操作 专题七 机器学习时间预测实践操作 更多推荐 了解机器学习的发…

Web服务器TomCat快速入门(从安装到部署)

文章目录什么是Web服务器?相关概念基本使用下载安装卸载启动关闭配置部署📂橙子精品文章学习推荐什么是Web服务器? Web 服务器是一个应用程序,对 HTTP 协议的操作进行封装,使得程序员不必直接对协议进行操作&#xff…

【Linux 系统运维基础】Linux命令大全

Linux 命令大全立志列举出Linux中常用的所有命令(有很多命令不使用的话,很快会忘记哦)。 1. cd 目录前进/ 后缀 cd /表示跳转到根目录下,无论是哪个目录下,执行此命令后一定会跳转到根目录下。 cd ~ 表示跳转到主目录下。 cd . 表示跳转还…

【5.2】Nacos注册中心--服务多级存储模型

【【5.2】Nacos注册中心--服务多级存储模型1 Nacos服务多级存储模型2 服务跨集群调用问题3 配置集群属性4 总结1 Nacos服务多级存储模型 之前有服务的概念: 例如:提供用户查询的use-service和提供订单查询的order-service,它们都叫服务。 我…

Linux安装配置JDK安装运行Tomcat

Linux软件主流安装方式: tar:解压安装(前提将安装包下载下来) 安装包格式:tar,tar.gz,tar.bz 安装解压包命令: tar -zxvf 包名xxx rpm:直接安装,需要将安装包下载下来(好比双击window里的.exe文件) 安装包格式:rpm 安装命令:rpm -ivh 软件路径 卸载命令:rpm -e 软件包全名 y…

【GPLT 二阶题目集】L2-014 列车调度

火车站的列车调度铁轨的结构如下图所示。 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车&am…

(蓝桥杯 刷题全集)【备战(蓝桥杯)算法竞赛-第1天】( 从头开始重新做题,记录备战竞赛路上的每一道题 )距离蓝桥杯还有75天

🏆🏆🏆🏆🏆🏆🏆 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录&a…

2023年“华数杯”国际数模赛赛题浅析

2023华数杯如期开赛,本次比赛作为美赛的模拟赛,赛题和比赛时间都和美赛高度相似,因此大家 完全可以当作一次美赛之前的练习赛进行。美赛的发题时间与华数杯一致,都是早晨六点,现已经将机器翻译的初步翻译 结果进行了分…

Gdb调试复现Dirty Pipe漏洞(CVE-2022-0847)之内核态调试

第一、准备环节-增加内核调试辅助语句: 首先,为了更好的查看关键因素的变化:稍微做了两处修改: 第一处:splice前后,增加getchar和puts; 第二处:prepare pipe过程中,增加getchar和puts; 修改后代码执行结…

Spring Bean生命周期,就像人的一生

这篇我们来看一看Spring中Bean的生命周期,我发现,和人的一生真的很像。1 简单说说IoC和BeanIoC,控制反转,想必大家都知道,所谓的控制反转,就是把new对象的权利交给容器,所有的对象都被容器控制&…

利用STC15输出两路互补SPWM波形

利用STC15输出两路互补SPWM波形🎞逻辑分析仪信号采集演示: 🔖本案例使用的是IAP15W4K61S4验证。 📍相关篇《STC15系列PWM相关功能寄存器介绍》 📌相关开源PCB《【PCB开源分享】STC/IAP15W4K61S4开发板》 &#…

Linux(七)进程间通信

进程间是如何进行通信的? 通过前面的学习之后,我们知道进程间是具有独立性的,在操作系统的层面来看,进程就是一块pcb,是对运行中的程序动态运行过程的描述,在Linux角度下,进程就是一个task_stru…

2-2JVM-GC垃圾回收

GC垃圾回收 了解什么是垃圾回收掌握垃圾会回收的常见算法学习串行、并行、并发、G1垃圾收集器学习GC日志的可视化查看 1.什么是垃圾回收? 程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内…

YOLOv5/v7 Falsk Web 监测平台 | YOLOv5/v7 Falsk Web 部署

YOLOv7 Falsk Web 监测平台图片效果展示 YOLOv7 Falsk Web 监测平台视频效果展示 YOLOv7 Flask Web 检测平台 什么是Flask? 简介 Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开…

HTB_Jerry tomcat弱口令war包getshell

文章目录信息收集Tomcat war 包 getshell信息收集 扫描发现 8080 端口存在 tomcat 服务,访问 manage app 管理接口,需要输入账号密码 点击取消,看到默认账号密码,重新登录,登录成功,未修改 一般就是上传或…

JVM类加载

作用:负责从硬盘/网络中加载字节码信息,加载到内存中(运行时数据区的方法区中) 类加载过程: 加载 使用IO读取字节码文件,转换并存储 为每个类创建一个Class类的对象 存储在方法区中 链接(…

Jackson注解使用分析

文章目录Jackson常用注解1. 常用注解汇总2. 注解使用分析JsonIncludeJsonAnyGetterJsonAnySetterJsonNamingJsonAutoDetectJacksonInjectJsonAliasJsonValueJsonMergeJsonRawValueJsonEnumDefaultValueJsonFilterJsonSerializeJsonDeserializeJacksonAnnotationJacksonAnnotati…

excel合并技巧:查找函数遇到合并单元格怎么应对

大家都在期盼奖金的到来,可是核算奖金的同事正在苦恼,因为以前用得好好的VLOOKUP函数突然不合适了,很多人的奖金计算出来都变成了乱码:使用VLOOKUP函数每个部门只有第一行正确,其他都是乱码。看到这个表,相…