JSP+Servlet+JavaBean+DAOWeb—学生成绩管理系统

项目文档 专栏收录该内容
6 篇文章 0 订阅

博客概要

     简单分享基于JSP+Servlet+JavaBean+DAOWeb架构设计完成的成绩管理系统~

系统开发概要

     这是基于JSP+Servlet+JavaBean+DAOWeb架构设计完成成绩管理系统的一次大作业,是针对学习完java Web课程后进行的一次对学生综合知识应用能力可动手实践能力的考查。其成绩将作为本课程的期末考核成绩。通过本作业,使学生能够得到较系统的技能训练,从而巩固和加深对Java Web编程的基础理论知识的理解,培养学生综合运用所学理论解决实际问题的能力,使学生成为具有扎实的计算机理论基础和较强的独立动手能力的应用型人才。

项目名称:Grade(学生成绩管理系统)
开发环境:Jdk8+Tomcat+Idea+MySql
相关技术:JSP+Servlet+JavaBean+DAOWeb
项目描述:项目旨在实现计算机数据化管理学生成绩以及相关人员的信息,方便学校管理。
项目功能:
1.提供登录注册验证,分三类用户
2.学生可以查询个人信息,包括个人成绩查询和修改密码
3. 教师可以查询个人信息、学生成绩的录入和查询,个人密码的修改
4. 管理员可以实现对用户(学生和教师)的管理,成绩的管理以及学生、教师和本人的密码修改
责任描述:独立开发,负责技术文档的全部撰写,负责全部的开发过程
1.负责对学生信息管理模块、教师信息管理模块、学生成绩管理模块、全部用户管理模块等的代码编撰
2.负责对技术文档,说明文档的编写,运用多种word技巧以及Axure RP画流程图等,ps处理相关图片
技术描述:基础架构技术
1.项目利用JQuery、Bootstrap等前端技术进行项目构架
2.此项目采用JSP+Servlet+JavaBean+DAOWeb这一基础架构技术,并融入了小部分mvc框架的设计思路,运用了面向切面的编程思想
3.项目简单实用了登录过滤

开发要求

(1)用户分为三类:管理员,教师和学生。
(2)提供用户登录验证功能;
(3)学生可以查询个人信息,包括个人成绩查询和修改密码;
(4)教师可以查询个人信息、学生成绩的录入和查询,个人密码和学生密码的修改;
(5)管理员可以实现对用户(学生和教师)的管理(增删改查),班级的管理(增删改查)。成绩的管理(增删改查)以及学生、教师和本人的密码修改;

需求分析

     学生成绩管理系统,能够实现计算机数据化管理学生成绩及相关人员的信息,能够提供方便快捷的学生信息检索、成绩查询、信息修改等功能,并能够对学生信息、教师信息和管理员信息等使用者进行管理,方便学校管理。因此要求系统:

(1)操作简单,易用。
(2)数据存储可靠,具备较高的处理效率。
(3)系统安全、稳定。
(4)开发技术先进、功能完备、扩展性强。

整体结构图

总体设计

基础架构理解图

系统功能描述

     学生成绩管理系统,由管理员在登录验证后,进行对用户、成绩的相关录入,并在必要时由管理员对这些信息进行增删改查等操作,管理员可直接查看学生成绩,可以查阅所有用户信息,包括学生、教师以及管理员;在注册、登录验证后,学生可以查询个人信息,还可以修改密码;教师可以查询学生信息和个人信息,可以对学生的信息以及成绩进行修改,包括个人信息和相对应的密码。

E-R

用户功能

数据流图

数据库设计

数据项和数据结构

1.用户信息:用户编号、用户名、密码、类型
2.学生信息:学生编号、学生名、班级、年龄、成绩、密码
3.教师信息:教师号、教师名、教师年龄、密码
4.成绩信息:成绩号、学生名、课程名、分数

详细设计

代码目录结构

总结

     这次大作业要全靠自己,所以一上来有点慌,完全搞不懂思路,没有丁点头绪,再加上基础知识本就掌握不牢,所以就想自己学一点知识后再写,想好步骤再动手。反正整个过程真是无比纠结,最后我发现写代码嘛,即使不会,也要写,说不定写着写着就有思路了,如果你不写,只是在脑子里想,越想越乱。通过这次,我发现程序里面也是有很多套路的,很多地方都是差不多的,只有理解了他的意思、含义,一切就简单了,所以说学好基础知识很关键啊!!!

     过程中遇到好多不熟练的地方:

     1.无法连接上数据库数据:一开始是MySql数据库是zip版本的,我下好了但是没配置环境变量,后来懒得配环境就找了一个msi的,next&finish一步到位。至此数据库方面弄好之后我就创建数据库制作表单,然后在工程里撰写数据库相关的代码,毕,连接数据库,还是不行,反复查看代码和数据库相关设置,无果,于是找来葛三金同学帮忙查看,他检查了代码和数据库发现都没问题,僵持了一会,发现是连接数据库要用到的jar包啥的没有导入工程,这个错误其实挺糗大的,当时急忙忙就写代码了,也无奈被嘲笑~

     2.jsp页面无法跳转调用Servlet:form表单里的action属性中路径添加对应想要实现跳转的Servlet的class名无法成功完成动作,试着把路径改成绝对路径和相对路径,但都无功而返,于是先放着去撰写其他代码了。后来解决是因为版本的问题,改了一下版本就没事了。

     3.工作量大:其实个人感觉是两个人的工作量。前后端设计,工作量还是挺大的,我前端设计花了好久,总是有灵感了就去改改,一来二去就花了很长时间,后端就更别说了,本以为数据库连上了就差不多了,结果错综复杂的跳转调用,花了我好久去搞清楚整个逻辑关系,然后就是几百几千行的代码撰写,老师真的,你是魔鬼么。

     4.数据库小问题集:会有timezone的问题,mysql返回的时间总是有问题,所以jdbc连接的url中配置的时区会有问题,需要在原先数据库url路径后面新增“?serverTimezone=GMT%2B8”这段内容,即可解决;jdbc中数据库属性值的位置,可以放在数据库连接函数里面,如若放在外面要设置为全局变量static属性,不然会报错;密码不能忘,不然初始化很烦,最好就别设密码了; 数据库的sql语句语法不熟练,像增加(insert into 表)、删除(delete from 表 where 条件)、查询(select from 表 where 条件)、修改(update 表 set 属性 = ‘值’ where 条件)这些语句的书写,我以为我写的是对的,结果放到mysql里运行总有错误,每每都要修改,对,写好语句先去数据库运行看看试错结果会更有效率;

     5.引用的选择:照着书上或者复制网络代码到工程的时候,会有报错和修改意见提示,选择引用的时候要仔细,我有几次瞎选,选完还是错的,浪费心情了不就~

     6.代码格式小问题集:名称取得太详细也不是好事,在登录这块我分读者登录和管理员登录,一开始读者账户我设置为readerName,密码为readerPassword,管理员的分别设置为adminName和adminPassword,后来发现不行,字母好多码起来好累,于是缩减名称reader和admin为名称rd和ad,但其实码起来还是挺多的,唉谁让老师是个魔鬼呢;本人有强迫症,空格、括号位置啥的都要很对齐,这也是门力气活;名称也是个让人头大的东西,有时候调用的时候会乱,大小写问题还好,糟糕的是名称有些取的如果不详细,会看不懂,详细了,可能代码量就多了,输的时候还容易出错,就很烦;sql语句里的引号好麻烦,单引号、双引号很多时候好难分清楚的,我都是先拿纸一排写清楚,然后再按自己看着舒服的格式撰写好,耐心很关键;

     7.流程的整体把控:一开始着手开发其实挺棘手的,可以说是无从下手,我自己是先设计前台,然后通过前台把各个流程通过简单的页面跳转走几遍,让脑子里有一个具体的系统流程轮廓,然后通过前台的流程再去具体设计实现后台的一系列功能。其中,走流程的时候,为了一开始构建轮廓嘛,我在button需要提交数据的地方,全部放了一个跳转制定网页的路径,通过这个让轮廓先逐渐清晰可见,紧接着开始在后台添加血肉生气~

     8.tomcat问题集:在我把登录注册增删功能都实现了以后,突然之间,在撰写查询功能的时候,tomcat突然宕机,怎么都启动不了,把项目remove之后又可以启动,但是不把项目导入我要你空服务器何用?!试了很多方法,在大佬群里也咨询了前辈,从傍晚弄到深夜,还是没能修复,撰写节奏全无,遇到这种情况,我只能说,心态一定要好~目前来说打算重新新建项目和服务器,然后代码复制粘贴。。。糟心!之后再新建项目将源代码全部拷贝还是出问题之后,我仔细想了一下出问题前后的事,是在编辑SelectBookServlet代码完之后就无法运行的,那么删除这段代码能解决么。于是删除,然后,解决了。。。糟心了好几个小时的事,原来只是代码错误导致项目过大,致使服务器溢出无法带动。当然最后能解决还是很开心的,停滞几个小时之后,终于又可以继续赶进度了。这次教训告诫我们,出问题不能急,不要一股脑就去网上找解决方案,先思考一下问题的前后,找准问题所在,说不定就不用这么大费周章了!

     还有就是,有!很!多!异!常!不过,只要知道它是什么异常,把异常代码百度翻译一下,知道了意思,基本也能想到解决的方法,只要善于思考,异常是很好解决的。在这么多天的码代码的道路上,我学到了很多很多,感觉对以前有点不理解的问题都有了新的认知,新的理解,有很大滴收获呢~

©️2022 CSDN 皮肤主题:书香水墨 设计师:CSDN官方博客 返回首页

打赏作者

一一丨一禾呈人韦

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值