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

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

1. 要求原文

其实这个要求文档,网上有…

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 实验步骤:

在原文中,项目要求建立的数据库是这样的:

image-20210419200209103

image-20210419200221424

这种字段的数据库,对我来说,实在难以理解……

所以就将各个表修改字段后,建立成如下所示(其中数据类型未按上述表格修改)

登录表User:

image-20210419201450917

学生信息表Student:

image-20210419201502186

专业表Major:

image-20210419201638575

课程表Course:

image-20210419201556428

成绩表Grade:

image-20210419201711906

2. 项目实现

2.1 技术栈与开发环境

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

2.2 项目框架

本项目的框架,如图所示:

image-20210419202838289

后台源码有详细的注释:

image-20210419202958712

前端JSP页面也有详细的源码注释:

image-20210419203043101

2.3 项目演示截图

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

登录页面:

image-20210419203255142

后台主页:

image-20210419203309031

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

学生管理之学生列表页:

image-20210419203417776

主要是分页显示数据。

学生模糊查询页面

image-20210419203530244

image-20210419203750906

新增学生页面:

image-20210419203621881

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

添加成功后:

image-20210419203706243

添加成功后,提示“添加成功”。然后可以继续添加下一位学生新=信息。关闭添加窗口,页面自动刷新加载新数据。

查看学生详细信息页:

image-20210419203848655

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

编辑学生信息页:

image-20210419203932264

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

删除学生提示页:

image-20210419204012532

需要两步确认

学生成绩管理页:

image-20210419204404388

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

筛选查询:

image-20210419204457727

编辑成绩:

image-20210419204522067

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

课程管理:

image-20210419204642204

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

专业管理:

image-20210419204649661

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

3. 项目源码下载:

本项目的仓库地址如下所示。国内建议使用Gitee。

如果有帮助,欢迎点亮 Star ~

3.1 Gitee下载:

  https://gitee.com/ZXAcademy/StudentManagementSystem-SSH

3.2 GitHub下载:

  https://github.com/ZXAcademy/StudentManagementSystem-SSH

参考资料

  1. 后台SSH框架基于:https://github.com/sysuKinthon/SSHLearning_pure_version

  2. 前端模板来自:https://www.oneyuanma.com/code/27d4ceb7bc7c4741a9247b69143bc9bd.html

    image-20210419202045140

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拾年之璐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值