基于Java(Struts2 框架)+Mysql实现(Web)学生成绩管理系统【100010053】

news2024/11/24 15:40:06

学生成绩信息管理系统

Summary

JavaWeb 课程设计作品。类似学校的教务管理系统,实现了其中的部分功能,包括学生的增删改查,成绩的增删改查等。

Note

关于数据库

  • 数据库名称:smxy_class
  • 字符集:UTF-8
  • 先建立数据库,再运行.sql文件
  • 连接字符串在org.myweb.dao包中的Dao.java文件中

技术

1、 前端:HTML5、Bootstrap框架、JavaScript、JSP的EL(Expression Language)表达式、Struts2标签
2、 后端:JavaEE的Struts2框架、MySQL数据库(多表查询,级联删除、触发器、存储过程)、JavaBean
3、 数据验证:HTML5的原生验证模式、Struts2的Validation验证框架以及Interceptor拦截器、JavaEE的Filter过滤器

数据库ER图

在这里插入图片描述

登陆界面

在这里插入图片描述
采用Struts2的Validation验证框架中的XML验证模式,对登陆的Action进行验证,若登陆失败,将由FieldError抛出错误信息
在这里插入图片描述
在这里插入图片描述
系统设有老师和学生两个角色,老师和学生的界面不能互相登陆
二级页面,如果是jsp,通过Filter验证是否登陆,如果是Action,则使用自定义的Struts2的拦截器验证是否登陆

学生端界面(个人信息使用EL表达式显示,第一次用)

在这里插入图片描述

1、 修改个人信息

在这里插入图片描述
其中,登录名、联系电话、家庭住址都不允许为空,联系电话输入必须是数字,长度至少8位,不能超过11位(通过Struts2的Validation验证框架中的XML模式实现)
在这里插入图片描述
2、 修改密码

在这里插入图片描述
能够提示原始密码错误,新密码不能为空,新密码与确认密码输入不一致。验证由HTML5原生属性、Struts2的ActionError,还有XML实现
3、 查看成绩
能够显示所有学年的成绩,如果有不及格,将会标红
在这里插入图片描述
在这里插入图片描述

教师端界面(信息由EL表达式显示)

在这里插入图片描述
其中,修改个人信息与修改密码功能与验证方式与学生端相同
1、 成绩查看与修改
在这里插入图片描述
用户能够通过输入学生姓名进行搜索,如果为空则搜索全部
用户可点击每位学生后面的查看所有成绩来查看用户的成绩(只显示当前老师所教课程的成绩),同时,修改也只能改当前老师所教课程的成绩
在这里插入图片描述
点击修改按钮可对成绩进行更新,如果当前老师已经不再上某年级的某个课程,也就是该课程从教师的授课表中删除的话,将不可修改成绩,只能查看历史成绩
在这里插入图片描述
在这里插入图片描述
修改时,成绩的范围被限制在0-100分之间,且只能输入数字,不为空(XML验证、H5验证)
在这里插入图片描述
2、 录入成绩
在这里插入图片描述
用户可通过输入学生姓名来查找学生,如果输入为空,则搜索全部,点击学生后面的录入成绩按钮,将执行录入操作
在这里插入图片描述
课程选项中,将自动列出与当前学生年级匹配的又是当前教师授课的所有课程,如果已经录入过成绩的,将不再显示
成绩的输入验证为输入必须是数字、不为空、范围限制在0-100 (XML验证与HTML5原生验证)
在这里插入图片描述
如果成绩已经全部录入完毕,再尝试提交,系统将会提示
在这里插入图片描述
3、 所教科目管理
在这里插入图片描述
教师可对课程进行增删改
A、 添加课程
在这里插入图片描述
课程名输入不能为空(XML验证)
由于老师与课程是多对一的关系,所以在添加课程时,同一门课程,允许多位老师添加,有自己的课程ID,但是同一位老师不能重复添加同一门课程
在这里插入图片描述
B、 删除,删除前会有确认提示框提示是否确认删除(Js)
在这里插入图片描述
C、 修改课程与添加课程相似,验证为输入不能为空(XML验证)
在这里插入图片描述
在这里插入图片描述
4、 学生管理
在这里插入图片描述
教师可通过输入学生姓名进行搜索,如果为空则搜索全部
A、 添加学生
在这里插入图片描述
其中,真实姓名、登录名、电话号码、家庭住址为必填(XML)。鼠标移至登陆名上时,会有系统给出的建议(Bootstrap),电话号码被设置为只能输入数字,至少8位,不能超过11位(XML)
B、 修改学生
在这里插入图片描述
与增加学生的要求相同
C、 删除学生
系统会弹出提示框要求用户确认,并且删除后,与该用户有关的所有信息将一并从数据库中删除(MySQL数据库外键级联删除,防止数据碎片化)
在这里插入图片描述

♻️ 资源

在这里插入图片描述

大小: 3.06MB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87248942

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

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

相关文章

Zookeeper下载、本地模式安装、集群操作

目录 1、Zookeeper下载地址 2 、本地模式安装 2.1安装前准备 2.2配置修改 2.3操作 Zookeeper 2.4配置参数解读 3、集群操作 3.1 集群安装 3.2 ZK 集群启动停止脚本 4、客户端命令行操作 4.1、命令行语法 4.2、znode 节点数据信息 4.3点类型(持久/短暂…

【案例教程】基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析实践技术应用

【点击观看视频】基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析实践技术应用 机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”,是发现新规律,总结和分析实验结果的利器。机器学习涉及的理论和方法繁多,编程…

【Unity篇】Unity入门介绍

目录 游戏引擎 Unity3D特点 窗口介绍 快捷键 创建工程 组件的获取 游戏引擎 程序的框架:一款游戏最最核心的代码。 包含以下系统:渲染系统,物理引擎,碰撞检测系统,音效,脚本引擎,动画系统,人工智能…

全志V85x芯片 Tina Linux RISC-V E907核心开发指南

全志V85x芯片 Tina Linux RISC-V E907核心开发指南 1 编写目的 介绍v85X 上E907 的启动环境和AMP 的环境搭建。 2 使用范围 全志V85X 系列芯片 3 环境 A7 SDK:Tina E907 SDK:melis 4 SDK 快捷命令说明 这里主要介绍几个下文会用到的命令&#xf…

【嵌入式项目开源】基于ESP32的墨水屏桌面小屏幕

首先简要介绍一下这个项目: 这个项目的开源主要包括硬件,固件和软件两部分,外壳后面如果做了也会开源出来。该项目主要是参考了以下教学视频。 链接:桌面小屏幕实战教学 其中硬件部分改动不大,主要是把USB驱动改成了Ty…

推荐系统从入门到入门(1)——推荐系统综述与协同过滤

本系列博客总结了不同框架、不同算法、不同界面的推荐系统,完整阅读需要大量时间(又臭又长),建议根据目录选择需要的内容查看,欢迎讨论与指出问题。 目录 系列文章梗概 系列文章目录 一、问题背景介绍 1.推荐算法与…

企业拥有PMO(项目管理办公室)的好处

PMO(项目管理办公室),是一个企业内定义和维护项目管理标准的办公室或部门。PMO为项目的执行提供指导和标准。他们创造切实的目标,与整个企业的愿景保持一致,并确保所有目标的实现。 PMO指导以项目模板、标准化流程、…

DoIP协议概述

大家好哈,我是穿拖鞋的汉子! 伴随着需求不断提升(车身数据传输速率和带宽需求),为了满足需求将以太网引进到车载网络中。车载以太网在诊断传输层的应用协议是ISO 13400(Diagnostic On IP—DoIP)…

模型实战(1)之YOLOv5 实现目标检测+训练自己的数据集

模型实战(1)之YOLOv5 实现目标检测训练自己的数据集 写一个小总结吧,关于yolov5使用可以参考我的两外两篇博文: 1.YOLOV5算法一之Windows10下yolov5安装测试并训练自己的数据集 2.YOLOV5算法二之数据集转换及自动划分训练集与测试…

代理模式之提出问题和代理模式的概念

代理模式之提出问题和代理模式的概念 1. 提出问题 ①现有代码缺陷 针对带日志功能的实现类,我们发现有如下缺陷: 对核心业务功能有干扰,导致程序员在开发核心业务功能时分散了精力 附加功能分散在各个业务功能方法中,不利于统一…

docker创建带有用户密码认证和web可视化界面的私有仓库

docker-registry的搭建 有时候使用Docker Hub这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。 docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。 安装运行docker-registry…

Go语言设计与实现 -- 上下文

我们先来看一下context.Context的接口: // A Context carries a deadline, a cancellation signal, and other values across // API boundaries. // // Contexts methods may be called by multiple goroutines simultaneously. type Context interface {// Deadl…

【TypeScript】TS接口类型(三)

🐱个人主页:不叫猫先生 🙋‍♂️作者简介:前端领域新星创作者、华为云享专家、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏&#xff…

modnet:real-time trimap-free portrail matting via objective decomposition

目前抠图(Image Matting)的主流算法有哪些? - 知乎什么是抠图对于一张图I, 我们感兴趣的人像部分称为前景F,其余部分为背景B,则图像I可以视为F与B的加权…https://www.zhihu.com/question/68146993/answer/…

SpringCloud-Gateway配置及持久化、过滤器、异常处理

文章目录yml配置代码配置持久化数据结构predicates(断言) 和filters&#xff08;过滤&#xff09;新增配置说明相关接口全局过滤器局部过滤器全局异常处理gateway不能和web一起使用 需要排除掉<dependency><groupId>org.springframework.cloud</groupId><…

【Unity】Delegate, Event, UnityEvent, Action, UnityAction, Func 傻傻分不清

【Unity】Delegate, Event, UnityEvent, Action, UnityAction, Func 傻傻分不清Delegate 委托&#xff0c;函数指针一个简单的例子&#xff1a;一对一依赖一个简单的例子&#xff1a;一对多依赖所以话说……委托有啥用呢&#xff1f;事件 Event&#xff0c;特殊的委托UnityEven…

Failed to read artifact descriptor for XXX.jar错误分析

今天遇到极其恶心的坑&#xff0c;自己定义编写的工具类&#xff0c;之前使用一直没有问题&#xff0c;正常引入pom文件中&#xff0c;也能正常的使用工具类中自建类。今天就是无法导入包&#xff0c;报错信息如下。 Failed to read artifact descriptor for com.yuxuntoo.www…

JavaScript篇.day03-循环结构(while, for)

目录 1.循环结构 2.例题 (1)奇数乘积(while/do-while) (2)水仙花数(while) (3)最大公约数(for) (4)最小公倍数(for) (5)打印星星(for) (6)乘法表(for) 1.循环结构 循环结构在程序中可执行多次循环结构有while循环, do-while循环, for循环 名称执行顺序循环执行次数应用…

wireshark练习抓取网络数据包用C编程完成modbus协议,从云端服务器读取温湿度数据。

文章目录前言一、疯狂聊天室1、配置网络2、创建房间3、互发消息二、wireshark抓取网络数据包1.找到对应的包2、分析抓取包中的信息三、Modbus协议概述1、Modbus主/从协议原理2、通用Modbus帧结构---协议数据单元(PDU)3、两种Modbus串行传输模式4、ModbusTCP通信结构四、C编程完…

零基础自学网络安全,如何3个月快速入门?

说到自学网络安全这一块&#xff0c;我来给大家分享一下我的经验。 一、了解相关网站 在入这行之前&#xff0c;我是先泡了一段时间网络安全相关的论坛&#xff0c;了解行业的信息&#xff0c;也可以确认自己是否真的想做这一行&#xff0c;毕竟这一行看起来很炫酷&#xff0…