基于JSP和MYSQL实现的学生信息管理系统
摘 要
进行学生信息管理是学校的重要工作之一。传统的学生信息管理由于是手工操作,工作量大且容易出错。随着计算机和网络技术的迅速发展,越来越多的院校都拥有了自己的学生信息管理系统,而采用B/S架构的学生信息管理系统进行学生信息的管理则是其趋势。
Java web技术的基础就是核心Java平台,它有许多优点,例如:“编写一次、随处运行”的特性、方便存取数据库的JDBC API技术以及能够在Internet应用中保护数据的安全模式等等。J2EE体系结构提供中间层集成框架用来满足高可用性、高可靠性以及可扩展性的应用需求,为搭建具有可伸缩性、灵活性、易维护性的网络应用系统提供了良好的机制。
本文基于Java web平台技术、采用Browser/Server结构,设计并实现了该系统的简化版学生信息管理系统。
论文首先介绍了系统开发涉及的相关技术及开发平台,主要围绕学生信息管理系统实现的相关技术和系统的体系结构,介绍了学生信息管理系统的总体分析与设计,包括需求分析、功能模块分析和数据库设计。最后,利用Jsp+Servlet+JavaBean模式对简单学生信息管理子系统进行了实现,并作了详细描述,主要采用图片与代码结合的方式详细地叙述了系统功能的实现。
关键词 :学生信息管理系统,Java web,Servlet,JSP
一、绪论
1.1 课题背景及现状
随着信息技术在学生信息管理上的广泛应用,学生信息管理系统的实施在技术上已逐步成熟。学生信息的管理对于学校管理者来说至关重要,是学校不可缺少的数据资源。特别是近几年,学生数量的增多使学校的管理面临更大压力和挑战。目前大多数学校仍然采用传统的人工管理方式,对学生信息的管理还停留在纸介质的基础上,这既不易于规范化,管理效率也不高,浪费了大量人力物力财力。
作为计算机应用的一部分,使用计算机进行学生信息的管理,有着手工管理无法比拟的优点。本系统针对学校及学生的信息特点,可以对学生信息进行高效率、规范化的管理,大大减轻了人员的工作负担,并避免了人工管理时容易出现的错误。
1.2 开发环境及工具介绍
1.2.1 操作系统及配置
-
Windows 10 专业版 x64位
-
Pentium(R) Dual-Core CPU
-
2GB
1.2.2 编译环境
1.2.2.1 Eclipse Neon Release (4.6.0)
Eclipse是著名的跨平台开源集成开发环境(IDE)。最初主要用来Java语言开发,目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性,所以许多软件开发商以Eclipse为框架开发自己的IDE。
1.2.2.2 JetBrains WebStorm 2016.2.4
WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。
1.2.2.3 Apache Tomcat v8.0
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
1.2.2.4 MySQL Workbench 6.3 CE
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS应用软件之一。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
1.3 编程语言
-
Java
-
html
-
css
-
javascipt
二、需求分析
2.1 面向人群
学校的学生信息管理人员以及老师和学生。
2.2 总体功能描述
本系统利用Java Web技术实现了学生信息管理系统,具有简单的学生信息管理功能。
实现了以下功能模块:
-
院系信息管理模块
-
学生信息管理模块
-
课程信息管理模块
-
成绩管理模块
并能根据登入用户的权限自动展示相关操作。
2.3 功能描述
2.3.1 用户登录系统实现功能
-
查看全部用户,用页面返回结果
-
查看全部院系,用页面返回结果
-
查看全部学生信息,用页面返回结果
-
查看全部课程信息,课程平均分,课程不及格率,用页面返回结果
-
查看全部成绩,用页面返回结果
2.3.2 管理员登录系统实现功能
-
对用户进行增删改查,用页面返回处理以及查询结果
-
对院系进行增删改查,用页面返回处理以及查询结果
-
对学生进行增删改查,用页面返回处理以及查询结果
-
对课程进行增删改查,并可以查看平均分、不及格率和成绩排名,用页面返回处理以及查询结果
-
对成绩进行增删改查,用页面返回处理以及查询结果
三、总体设计
3.1 运行环境
-
硬件环境 :Windows 7 及以上
-
处理器 :Intel Pentium及以上
-
内存 :2G以上
-
浏览器 :IE9 以上及Chrome,FireFox,Safari等现代浏览器
3.2 基本处理流程
3.2.1 用户登录流程图
3.2.2 子模块操作处理流程图
3.3 模块结构
3.3.1 系统结构图
3.3.2 功能模块简介
-
用户管理模块 :对用户的信息进行增删改查
-
院系管理模块 :对院系的信息进行增删改查
-
班级管理模块 :对班级的信息进行增删改查
-
学生管理模块 :对学生的基本信息进行增删改查
-
课程管理模块 :对课程进行增删改查,并能查看平均分,不及格率,成绩排名
四、详细设计
4.1 子管理模块设计
4.1.1 程序流程图
4.1.2 算法描述
-
用户在前台操作,向后台发送带参数的GET请求
-
AdminDao.java捕捉到请求,根据类型分发到不同处理方法中
-
处理方法中实例化XXXDao对象并调用DBUtils.java提供的方法连接和操作数据库
-
用ajax向前台user.jsp或者admin.jsp发送操作后的数据
4.2 关键类说明
-
LoginServlet.java :负责处理用户登录操作
-
RegisterServlet.java :负责处理用户注册操作
-
AdminDao.java :一个Servlet文件,接收前台发送的操作指令
-
XXXDao.java :封装了关于该信息在数据库中增删改查的方法
-
DBUtils.java :封装了获取数据库连接和释放数据库连接的方法
-
Admin.jsp :管理员操作界面
-
User.jsp :用户操作界面
五、数据库设计
5.1 概念结构设计
E-R图
本数据库有实体集:User(用户),Department(院系),Class(班级),Student(学生),Course(课程)
它们之间的联系有:
-
1对1 :Student和User
-
1对多 :Department和Class,Class和Studen
-
多对多 :Course和Student
5.2 逻辑结构设计
关系模式(下划线为主键,#表示外键)
-
User(Username,Password,Level)
-
Department(Dno,Dname)
-
Class(Clno,Clname,#Dno)
-
Student(Sno,Sname,Ssex,Sage,#Clno)
-
Course(Cno,Cname,Cteacher,Ccredit)
-
SC(#Sno,#Cno,Grade)
5.3 物理结构设计
表汇总
表名 | 功能说明 |
---|---|
User | 账号 |
Department | 院系 |
Class | 班级 |
Student | 学生 |
Course | 课程 |
SC | 成绩 |
User表(用户表)
列名 | 数据类型(精度范围) | 空/非空 | 约束条件 |
---|---|---|---|
Username | Char(12) | 非空 | |
Password | Char(12) | 空 | |
Level | Char(6) | 空 | 用户or管理员 |
Department表(院系表)
列名 | 数据类型(精度范围) | 空/非空 | 约束条件 |
---|---|---|---|
Dno | Char(12) | 非空 | |
Dname | Char(12) | 空 |
Class表(班级表)
列名 | 数据类型(精度范围) | 空/非空 | 约束条件 |
---|---|---|---|
Clno | Char(12) | 非空 | |
Clname | Char(12) | 空 | |
Dno | Char(12) | 空 |
student表(学生表)
列名 | 数据类型(精度范围) | 空/非空 | 约束条件 |
---|---|---|---|
Sno | Char(12) | 非空 | |
Sname | Char(8) | 空 | |
Ssex | Char(2) | 空 | ‘男’or‘女’ |
Sage | Smallint(6) | 空 | >0 |
Clno | Char(12) | 空 |
SC表(成绩表)
列名 | 数据类型(精度范围) | 空/非空 | 约束条件 |
---|---|---|---|
Sno | Char(12) | 非空 | |
Cno | Char(12) | 非空 | |
Grade | Smallint(6) | 空 | 0~100 |
六、编码与测试
6.1 操作界面截图
登录界面
登录失败界面
管理员操作界面
用户操作界面
新增信息界面
删除信息界面
修改信息界面
操作提示界面
6.2 调试过程
我在调试这些功能时选择了按操作类型逐项调试,进行增删改查的调试,过程持续地比较久。在调试中出现了点击修改信息完成后,数据库中未进行更新的错误,后来经分析,是由于发送的请求里缺少了一些属性,导致操作失败。有的时候会出现用户注册信息为空也能注册成功并登录,后来给前台输入信息时加了js输入限制避免了此类错误。
七、实验总结
本次实验遇到了许多问题,由于我对Servlet和Jsp以及前后台交互不熟悉导致前期进度相对缓慢,并且在代码上出现了很多重复的地方,导致了代码比较混乱,功能重复度太高,这个地方我还有很大的改进空间。在编程中,因为我采用了Ajax进行操作界面的异步刷新,而我不太会编写javascript代码,所有在这方面实现起来比较吃力,最后通过从图书馆借阅资料,百度解决方案,观看Java Web教学视频还是比较顺利地解决这个问题。其次,在本系统的界面设计上,我也琢磨了比较长的时间,经过不断地试错修正,利用所学的Html5以及CSS 3设计出了一个较为美观的界面。
虽然在这次课程设计中,我遇到了许许多多的问题,但在这几天的时间里,我还是实现了学生信息管理系统的大致功能。虽然过程比较辛苦,但通过这次的学习与实践,我对Java Web编写动态页面更加熟悉了,也收获了很多解决此类问题的经验,相信面对以后的课程设计或者实际开发项目,我能更好地去处理解决它。
参考文献
- 基于B/S模式和JSP技术的教师办公管理系统的设计与实现(华东师范大学·包子建)
- 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
- 基于Web Services的学生数据共享的研究(东北大学·杨川)
- 高校学生信息综合管理系统开发实践(电子科技大学·窦继惠)
- 基于JSP的校园网站的设计与实现(吉林大学·张帆)
- 基于JSP技术动态教学管理系统设计与实现(电子科技大学·董豪)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
- 基于JSP的校园网站的设计与实现(吉林大学·张帆)
- 基于Web Services的学生数据共享的研究(东北大学·杨川)
- 基于MVC和ExtJS的高校学生信息管理系统的设计与实现(大连理工大学·顾立业)
- 浙江横店影视职业学院学生管理信息系统的设计与实现(电子科技大学·杨韬)
- 基于Web Services的学生数据共享的研究(东北大学·杨川)
- 四川文理学院学生管理系统的设计与实现(电子科技大学·贺建英)
- 基于J2EE的学生信息管理系统(电子科技大学·钟海琴)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码海岸 ,原文地址:https://bishedaima.com/yuanma/35456.html