版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于JSP的毕业设计选题系统的设计与实现30 / 39目录1绪论 .11.1选题的目的与意义 .11.2系统开发的关键技术 .11.3本课题研究的主要内容以与展望 .12系统开发技术 .32. 1语言可行性的分析 .32. 1. 1 SERVLET 技术简介.32.1.2JSP与其特点 .42.2框架的可行性 .42. 2. 1 MrC (Model ViewController)分层结构.42. 2. 2基于MVC结构web系统设计.52.3系统开发所用工具 .62. 3. 1 Apache Tomcat. 62. 3. 2 MySQL 数据库 .62.4系统运行环境 .72. 4.1硬件环
2、境.72. 4. 2软件环境 .73需求分析 .83.1需求说明 .83.2功能泄义 .103. 2.1功能结构图.103.2.2系统模块介绍.103. 3系统的总体结构 .113.4业务流程分析 . 123. 4.1学生志愿课题管理.123. 4. 2教师课题管理 .133. 4.3用户基本信息管理.133. 4.4自动生成终表.143. 4. 5手动生成终表 .144数据库设计 .164.1数据库概念结构设计 .164. 1. 1 实体 E-R 图 .164. 1.2实体联系E-R图 .184.1.3E-R图向关系模型的转换 .194.1.4关系模式设计.194. 1. 5数据表结构 .2
3、0基于JSP的毕业设计选题系统的设计与实现30 / 395系统实现详细设计与实现 .25基于JSP的毕业设计选题系统的设计与实现5.1系统登陆界面的设计与实现 .255.2主控制平台的设计与实现 .255.3用户操作总体设计 .265. 3.1用户登录设计.265. 3. 2教师管理模块设计 .295.4技术难点 .315. 4. 1中文乱码 .315. 4. 2 HQL 语言 .316测试 .326.1常用的测试方法 .326.2系统测试 .336.3系统的安全性分析 .346.4系统的实用性分析 .34总结 .35参考文献 .36致谢 .37基于JSP的毕业设计选题系统的设计与实现2 /
4、39基于JSP的毕业设计选题系统的设计与实现30 / 391绪论1.1选题的目的与意义随着网络和信息技术的发展,20世纪80年代人们提出了 “办公自动化”的 概念,经过20多年两代的发展,办公自动化系统发生了根本的变化,它主要采 用客户/服务器的二层结构、浏览器/服务器/数据库的三层结构,以网络技术和 协同工作技术为主要特征,实现工作流程自动化和非结构化数据库的功能,实现 了收发文件从传统的手工方式向工作流程自动化方式飞跃,可以方便的实现非结 构化文档的处理。学校处在信息接受的前沿,实现教学办公自动化是必然趋势,毕业生的“毕 业设讣选题管理系统”就是办公自动化的一项主要内容。“毕业设讣选题管理
5、系 统”利用了方便的网络通信技术,使得管理员管理教师课题和学生的志愿工作变 得非常方便。该系统采用JSP(Jdva Server Pages) 发技术,基于B/S模式的 工作方式使得数据的维护也显得非常方便1.2系统开发的关键技术本系统采用了基于MVC模式的Struts框架与Hibernate框架进行开发。开 发的关键技术:(1)JSP技术的应用。(2) Struts框架的使用。(3) Hibernate框架的使用。1.3本课题研究的主要内容以与展望“毕业设计选题管理系统“是基于浏览器/服务器架构的软件管理系统,它 的开发技术是U前比较流行的基于windows平台的JSP结合JAVASCRIP
6、T技术, 数据库采用了 SU公司开发的MYSQL数据库,MYSQL是高性能的数据库管理系统, 在可靠性、易用性、可伸缩性、业务职能功能等方面都具有非常优秀的表现,它 具有支持多用户同时访问,自适应内存调节特性等优点,有良好的可扩展性和可 维护性,更容易控制。“毕业设计选题管理系统”分为“前台”和“后台“两部分,前台是实现 学生和教师浏览网站的功能,学生用户通过网上浏览教师的课题选择自己喜欢的 课题,然后提交到后台数据库保存选题信息,待山管理员处理信息,而教师则可 以通过网上浏览申请课题,然后提交到后台数据库,待山管理员处理信息,学生 和教师只能浏览数据库信息,不能修改,数据库的相关信息处理山管
7、理员完成。 基于JSP的毕业设计选题系统的设计与实现30 / 39管理员处理教师课题和学生志愿要完成的操作有:对学生志愿的添加、删除、修 改,能够查看有哪些学生选择了志愿,哪些学生还没有选择志愿。对教师课题管 理要完成的操作有:对教师课题的添加、删除、修改,并要对教师申请的课题进 行审查、批准。另外,管理员还要完成学生课题的排列:分为两种方式:自动生 成终表和手动生成终表,按志愿优先级进行排列。发布公告,查看公告。基于JSP的毕业设计选题系统的设计与实现30 / 392系统开发技术2. 1语言可行性的分析2. 1. 1 SERVLET技术简介Servlet 是 Java 技术对 CGI (Co
8、mmon Gateway Interface)编程的回答。 Servlet程序在服务器端运行,动态地生成Web页面。同时它也作为一个中间层, 负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库 或应用程序。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具 有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资,图2.1说明:(1)客户端(通常为Web浏览器)向Web服务器发送一个基于HTTP协议的 请求。(2)Web服务器接收到该请求,并将请求交给Servlet容器处理。(3)Servlet容器根据Servlet的配置来查找或创
9、建Servlet的实例,并执 行该Servlet, Servlet容器必须把客户端请求和响应封装成Servlet规范中规 定的请求和响应对象传给Servlet o(4)Servlet可以使用请求对象获取客户端的信息,比如IP地址、请求的 参数等,以与执行特定的业务逻辑。Servlet可以使用响应对象向客户端发送业 务数据与业务执行的结果。基于JSP的毕业设计选题系统的设计与实现30 / 39(5) Servlet处理完该请求后,Servlet容器要保证Servlet的响应内容能够 发送到客户端去(flush),最后返回到Web服务器2.1.2 JSP与其特点JSP与其特点叫JavaServer
10、 Pages (JSP)是一种实现普通静态HTML和动 态HTML混合编码的技术。JSP和ASP相比具有两方面的优点。首先,动态部分 用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且 更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服 务器上。JSP和纯Servlet相比JSP并没有增加任何本质上不能用Servlet实现 的功能。但是,在JSP中编写静态HTML更加方便,不必再用printin语句来输 出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性 质的任务可以方便地分开:比如,由页面设计专家进行
11、HTML设计,同时留出供 Servlet程序员插入动态内容的空间。2. 2框架的可行性2. 2. 1 MVC (Mode I View Contro I I er)分层结构MVC即模型一视图一控制器模式是一种“分治”的思想。模型,即相关的数 据,它是对象的内在属性;视图是模型的外在表现形式,一个模型可以对应一个 或者多个视图,视图还具有与外界交互的功能;控制器是模型与视图的联系纽带, 控制器提取通过视图传输进来的外部信息转化成相应事件,然后山对应的控制器 对模型进行更新;相应的,模型的更新与修改将通过控制器通知视图,保持视图 与模型的一致性。图2-2揭示了这三者之间的关系:图2-2 MVC模型
12、图基于JSP的毕业设计选题系统的设计与实现30 / 392. 2. 2基于MVC结构web系统设计MVC是包含模型、视力、控制器的分层结构,其系统设计也分别从这三个方 面入手,图2-3为基于MVCWEB系统的图形化描述。(1)控制器的设计控制器是模型和视图联系的纽带,同时也是系统的控制中心。根据控制器在 系统中的不同作用,将控制器抽象成四种控制器类型,即主控制器 (MainContro 11 er) 请求映射控制器(RequestMappingConntroller视图选 择控制器(ViewController)和模型控制器(ModelControl 1 er)o其中,主控制 器在系统服务器最
13、前端,用于从xml配置文件中获取HTTP请求映射表,接收客 户的HTTP请求并且将该请求传送给请求映射控制器和视图选择控制器;请求映 射控制器将传送来的HTTP请求映射到相应的处理器(处理器采用JavaBean形式) 进行处理,其映射表直接从Servlet Context的变量中获取(因为该映射表已经 山主控制器装入),处理完后返回结果;视图控制器根据HTTP请求映射表与处理 器处理后的结果进行下一个视图的选择;模型控制器负责客户会话数据的处理: 每一个客户对应一个会话模型,用来描述客户的各种状态等。(2)视图层设计视图层即用户界面,在WEB系统中表现为用户可见的网页,对于每一个使用 HTTP
14、请求响应模型WEB应用,View组件基本上总是和响应相关联的组件,并将 结果返回给用户,视图层应该尽量减少业务逻辑或复杂的分析。(3)模型层设计图2-3 MVC模型佝 EXTRACT|基于JSP的毕业设计选题系统的设计与实现30 / 39模型层通常表现为业务对象或者物理后端系统。模型层通常都是业务相关 的,对于数据库的相关操作,与复杂的业务逻辑分析都应该在模型层实现。山) 2.3系统开发所用工具2. 3. 1 Apache TomcatTomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软 件基金会(Apache Software Foundation)的 Jakart
15、a 项 U 中的一个核心项 U , ill ApacheSun和其他一些公司与个人共同开发而成。由于有了 Sun的参与和支 持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最 新的Servlet 2. 4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且 免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前 比较流行的Web应用服务器。2. 3. 2 MySQL 数据库MySQL数据库技术:MySQL是一个快速的多线程、多用户和健壮的SQL数据 库服务器。MySQL服务器支持关键任务。重负载生产系统的使用,也可以将它嵌 入到
16、一个大配置(mass-deployed)的软件中去。(1)MySQL是一个数据库管理系统。一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个 美术馆、或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在 一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。从 计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独 立应用程序或其他部分应用程序一样扮演着一个重要的角色。(2)MySQL是一个关系数据库管理系统。关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库 中要好得多,这样做将增加你的速度和灵活性。“MySQL”中
17、的SQL代表 Structured Query Language n (结构化查询语言)。(3)MySQL服务器是一个快的、可靠的和易于使用的数据库服务器。如果这是你正在寻找的,你可以试一试。MySQL服务器还包含了一个由用户 紧密合作开发的实用特性集。(4)MySQL服务器工作在客户/服务器或嵌入系统中。MySQL数据库服务器是一个客户/服务器系统,它山多线程SQL服务器组成, 支持不同的后端。多个不同的客户程序和库。管理工具和广泛的应用程序接口 (APIs)o基于JSP的毕业设计选题系统的设计与实现30 / 39(5) MySQL也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而 得
18、到一个小、快且易于管理的产品。2. 4系统运行环境2. 4. 1硬件环境后台数据库服务器:因为服务器为数据库服务器,且要完成高密度的运算量,所以应釆用较高档 的服务器。考虑到与软件的兼容性,建议采用Intel Pentium 4多处理器系统、 512MB RAM、80GB 以上硬盘。客户机:采用Intel Pentium 4多处理器系统、512MB RAM、80GB以上硕盘。网络配置:10M/100M网络带宽、100Mb/s网卡、16 口交换机。2. 4. 2软件环境操作系统的选择:数据库服务器:因为服务器为数据库服务器,特别对稳定性有极高的要求, 且支持多CPU。所以应釆用Windows 2
19、000 Server,因为它有优良的稳定性和操 作性。数据库的选择:因大部分情况下软件都是在Windows系统下使用的,考虑MySQL的优势在于 中国普遍使用的免费数据库软件并且与系统的兼容度较高,并支持集成性安全检 测,且对系统的资源消耗较小。相比之下,Oracle数据库虽然性能较高,但由 于其可操作性和方便性不如MySQL好,并且服务器没有使用磁盘阵列和多处理 器,无法发挥Oracle数据库设计上的性能优势,并且对系统性能要求较高。至 于Access之类的数据库,由于其性能较低,且并发度太低乂不具安全性,故不 予考虑。最终决定后台数据库用MySQL5.0。当然整个系统只能在Windows下
20、运 行。3需求分析毕业生选题管理一直是学校为培养合格的毕业生所做的最重要的工作,学校 为毕业提供合适的课题,毕业生通过对课题的设计,综合复习学习过的知识,将 理论和实践结合起来,为以后的工作积累宝贵的经验。传统的毕业设计的选题过程是:指导老师根据院(系)的要求,设计出一定 数量的毕业课题并提交给教学管理人员审阅;教学管理人员审阅课题,检查出重 复的课题,并根据学生的知识水平判断课题的难易是否适宜,提出修改意见,反 馈给教师修改;毕业课题设计完成之后,山学院负责人将全部课题发给毕业生, 基于JSP的毕业设计选题系统的设计与实现30 / 39班级负责人组织毕业生选题,然后交给教学管理人员,教学管理
21、人员检查学生的 选题情况,并最终确定选题结果。虽然是个合理的有序的过程,但在实际过程中, 这种管理仍然存在着过程繁琐、工作效率低等问题。随着计算机的普与、网络和信息化的迅速发展,计算机选课系统、计算机信 息管理系统正在普与、然而针对毕业设讣双向选题的系统设计却少见报道。开发 一个基于WEB的毕业选题系统,在提高毕业设计选题的工作效率,节省人力、物 理资源方面都有极大的优势。U前,在大多数高校院(系)都没有一套完整的选 题系统,因此设计和开发这样的一个选题系统具有极大的现实意义。针对上述情况,本文采用目前流行的B/S架构模式,设计了一套基于 JSP+MYSQL的毕业设计选题系统。该系统增强了指导
22、教师、学生和管理人员在毕 业设讣选题过程中的交互性,教师能够在线提交和更新待审题U,学生可以在线 选题并且查看选题结果,管理人员可以在审阅待审题LI并且调整学生选题 3.1需求说明(1)管理员录入或导入教师信息,管理员将毕业学生基本信息导入,管理员是所有用户 中权限级别最高的用户,能够对教师、学生和个人信息、出题信息、选题信息进 行修改。同时,还要负责通知发布、选题结果公布等。(2)教师教师登录系统后,能够修改的数据有:密码、个人联系方式、包括Email 和电话,其它信息不能私自修改。对于题LI信息和要求,可以对题口信息和要求, 可以通过管理员来修改。教师能后查看到选自己课题的学生人数和学生基
23、本情 况。(3)学生学生登录系统后,只能修改密码、个人的联系方式、其它信息不能修改。每基于JSP的毕业设计选题系统的设计与实现30 / 39系统设置学生管理学生査看课题确宀止是否选上个学生只能选一个题LI或者一个课题项的一个模块部分,选择之后在规定的时 间内可以更改,规定时间以外不能更改,对于已选题LI不能再次被选,除非其他 学生在规定的时间内退选。发教师毕业生选题管理系统总体流程图,如图31所示。查看审核状态确左删除按类型删除学生课题退选基于JSP的毕业设计选题系统的设计与实现30 / 393. 2功能定义用列表的方式,逐项定量和定性地叙述对系统所提出的功能要求,说明输入 什么量、经怎样的处
24、理、得到什么输出,说明系统的容量,包括系统支持的终端 数据和应支持的并行操作的用户数等指标。对出题的要求:(1)每位有资格教师可以出不少于指导名额、不多于8个论题;(2)在管理员确定的时间内出题;(3)不能与已有出题重复。审查的程序:(1)管理员将所有教师出题提交学院学术委员会进行审查;(2)管理员将审查后的备选论题公布在学院网站上,备选论题与指导教师 -对应。选题要求:(1)每个学生只能选择一个题目;(2)对于同一课题只能一个学生选择(多人合作完成除外);3.2. 1功能结构图根据用户和系统需求,本系统划分为三个子系统,即管理员子系统、教师子 系统、学生子系统。ZX毕业生选题管理系统学生子系
25、统管理员子系统教师子系统a _丿3.2系统功能结构图3. 2. 2系统模块介绍根据实际情况,系统分为三大模块,即三个子系统。下面详细介绍各系统的 功能与要求。(1)管理员模块网络的维护需要管理员对系统的必要的设置。并保证系统的正常运行。在不 系统中,系统规定了管理员的权限与功能,管理员有权对数据库进行维护。管理 员功能系统包括添加功能、修改功能以与统讣功能。添加功能能够添加其他管理 基于JSP的毕业设计选题系统的设计与实现30 / 39员、教师或者学生;修改功能能够修改教师、学生资料,能够根据专业设置情况 基于JSP的毕业设计选题系统的设计与实现11/39选题题添加课题类别,修改/添加课题的相
26、关信息;统计功能主要是在选题过程结束后, 由管理员对结果进行统计,便于院(系)与时掌握学生选题情况。(2)教师模块课题信息发布,教师可以录入每个选题信息,但是需要管理员审核后才能供 学生选择;个人资料的修改与添加,教师资料的修改与添加可山管理员或者教师 自己来完成;查看选课学生资料,教师可以查看选择自己课题的学生的资料,决 定是否指导该学生的毕业设计。(3)学生模块学生登录系统需要自己的学号,登录后学生可以进行的操作:仅能修改个人 的联系方式;浏览供选择的课题信息,选择课题;在规定时间内的选择和更改课 题;在规定的时间内查询选题结果。3.3系统的总体结构图3. 3系统总体结构图根据毕业设计选题
27、的业务悄况,系统共分成管理员,教师,学生三大系统模 块,系统功能设置,管理员用户操作,教师信息修改,选题题目提交, 目审核,学生信息导入,学生信息修改,题H选报,信息浏览功能。功能如图所示:基于JSP的毕业设计选题系统的设计与实现30 / 393. 4业务流程分析图3.4业务流程示意图3.4.1学生志愿课题管理在这一块里,可以分为修改学生志愿、删除学生志愿、删除学生课题和查看 未选志愿学生四大部分,它的处理流程可以用以下图表(图3.5)方式描述:图3.5管理员对学生志愿操作流程管理人员首先查看要更新的数据,进行修改后,保存进数据库。基于JSP的毕业设计选题系统的设计与实现30 / 393. 4
28、. 2教师课题管理管理员对教师课题管理分为:修改教师课题、添加教师课题、删除教师课题 和教师申请课题管理四部分,同时对数据库中的信息进行最后的处理,拿出最终 的毕业设计课题小组分组情况,处理流程如下图(图3.6):图3. 6教师课题管理部分流程3.4.3用户基本信息管理用户基本信息管理包括了对用户信息的添加、删除、修改等基本操作,添加 用户后,该用户可以凭借自己的帐号登陆管理系统;删除用户信息后,该用户登 陆信息被删除,不能进行登陆;需要注意的是,在修改用户信息时,不要轻易改 动用户登陆信息,否则会造成用户无法登陆。其数据处理流程如下图(图3. 7) 所示:基于JSP的毕业设计选题系统的设计与
29、实现30 / 39图3.7用户信息管理操作3.4.4自动生成终表自动生成终表是按学生志愿顺序生成终表,处理流程如图3&图3.8自动生成终表3. 4. 5手动生成终表手动生成终表是山管理员判断哪位学生修哪门课题,不一定要按学生志愿的基于JSP的毕业设计选题系统的设计与实现30 / 39顺序生成终表,比如一位学生的第一志愿是空调设计S第二志愿是“网络设 计”,在手动排列生成终表时,管理员很可能直接就将该学生的设计课题定为第 二志愿“网络设计S而不会考虑第一志愿。处理流程如下图(图3.9):图3. 9手动排列生成终表流程基于JSP的毕业设计选题系统的设计与实现30 / 394数据库设计4.1数据库概
30、念结构设计在一个数据库应用系统的开发过程中,数据库的设讣是整个系统的基础。良 好的数据结构设计不仅可以减少数据冗余、提高查询效率,而且还可以降低应用 程序的编写难度,提高工作效率。4. 1. 1实体E-R图在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更 好的更准确的用数据库管理系统实现这些需求。根据需求分析画出E-R图。毕业 生选题管理系统的E-R图如下图所示。图4.1管理员基本信息E-R图学生信息图4. 2学生基本信息E-R图基于JSP的毕业设计选题系统的设计与实现30 / 39教师信息图4. 3教师基本信息E-R图图4.4课程信息E-R图以下儿个图示实体与实体之间的关系
31、:图45学生信息实体和课题实体之间的联系基于JSP的毕业设计选题系统的设计与实现30 / 39基于JSP的毕业设计选题系统的设计与实现30 / 39图牛6教师信息实体与课题信息实体之间的联系图47学院实体和专业实体之间的联系图48学院实体和教师实体之间的关系图牛9课题实体和课题申请信息实体之间的关系4.1.2实体联系E-R图实体联系E-R图如图4.10所示。图4.10实体联系图基于JSP的毕业设计选题系统的设计与实现30 / 39基于JSP的毕业设计选题系统的设计与实现30 / 394.1.3 E-R图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。E-R图则是山实体,实体的属 性和实
32、体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将 实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:(1)实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性 与为关系模式的属性,实体标识符与为关系模式的键。(2)联系类型的转换,根据不同的情况做不同的处理: 若实体间的联系是1: 1,可以在两个实体类型转换成的两个关系模式中 的任意一个关系模式的属性中加入另一各关系模式的键和联系类型的属性。 若实体间的联系1: N,则在?(端实体类型转换成的关系模式中加入1端 实体类型转换成的关系模式的键和联系类型的属性。 若实体间的联系是M: ,则将联系类型也转换成关系模
33、式,其属性为两 端实体类型的键加上关系类型的属性,而键为两端实体间的组合。4.1.4关系模式设计依照该规则将教学管理系统的E-R图转换为关系模型如下:将每一个实体转换成一个关系(关系就是给出关系名,写出属性,并标明该 关系的主键)。JB031模式:(1 ) admin_t (id, account, name, password, college, phone, mail, role) 管理员信息(管理员帐号,管理员姓名,管理员密码,所属院系,联系方式,邮 箱,角色)(2) student_id(id, stuid, name, password, sex, class, profession
34、, phon e, mail, topic, role)学生信息(学号,学生姓名,登录密码,性别,所在班级,所属院系,联系方式, 邮箱,课题,角色)(3) teacher_t (id, teach_id, name, password, sex, title, education, col lege, phone, mail, role)教师信息(教师工号,教师姓名,登录密码,性别,职称,学历,所属院系,联 系方式,邮箱,角色)(4). college(id, college_id, college_name)学院信息(学院编号,学院名称)(5). professions (id, profe
35、ssion_id, profession_name, college)基于JSP的毕业设计选题系统的设计与实现30 / 39专业信息(专业编号,专业名称,所属院系)(6) topic_t (id, topic_name, teacher, permit_col, permitprof, limit_ no,difficult,workload, topic_prop, topic_source, topic_intro, topic_ask, t opic_date)课题信息(课题名称,出题教师,允许学院,允许专业,限选人数,课题难度, 工作量,课题性质,课题来源,课题简介,课题要求,出题日期
36、)(7). apply_t (id, topic_state, student_state, topic_num, select_num, a pply_date)课题申请信息(审核状态,正选状态,课题编号,已选人数,申请日期)(8). wash_t (id, student_id, wash_id, topic_id, select_time)预选信息(学号,志愿号,课题名称,预选日期)(9). systems(id, college, college_state, produce_topic, view_topic ,select_topic, produce_no)系统信息(学院,学院选
37、题状态,出题状态,预览状态,选题状态,允许出题 数)(10). document_t (id, user_id, user_name, to_who, user_type,)文件(用户账号,用户姓名,接收者,用户角色,文件名称,文件路径,文件内 容,文件归类,发表日期)4.1.5数据表结构1 管理员信息表,如表4.11o表4.11管理员信息表中文名称字段名数据类型约束管理员帐号accountVARCHARNot null unique管理员姓名nameVARCHARNot null管理员密码passwordVARCHARNot null所属院系collegeINTEGERReferencesc
38、ollege, (college_id)联系方式phoneVARCHARyes邮箱mailVARCHARyes角色roleVARCHARNot null2.学生信息表, 如表4. 12o表42学生信息表基于JSP的毕业设计选题系统的设计与实现30 / 39中文名称字段名数据类型约束学号stuidVARCHARNot null unique学生姓爼nameVARCHARNot null登录密码passwordVARCHARNot null学生性别sexVARCHARNot null学生所在班级classVARCHARNot null学生所属院系professionINTEGERReference
39、s profession (pro fession_id)联系方式phoneVARCHARyes邮箱mailVARCHARyes课题topicINTEGERReferencestopic_t(topic_name)角色roleVARCHARNot null3教师信息表,如表4. 13o表4.13教师信息表中文名称字段名数据类型约束教师工号teachjdVARCHARNot null uniqu教师姓爼nameVARCHARNot null登录密码passwordVARCHARNot null教师性别sexVARCHARNot null教师职称titleVARCHARNot null教师学历ed
40、ucationVARCHARNot null所属院系collegeINTEGERReferences college, (colleg e_id)联系方式phoneVARCHARyes邮箱mailVARCHARyes角色roleVARCHARNot null基于JSP的毕业设计选题系统的设计与实现30 / 394课题信息表,如表4. 14o表4.14课题信息表中文名称字段名数据类型约束课程需称topicnameVAECHAENot null unique出题教师teacherINTEGERNot null允许学院permit_colINTEGERReferences college, (col
41、leg e_id)允许专业permit_profINTEGERReferences profession (pro fession_id)限选人数limit_noINTEGERNot null课题难度difficultVARCHARNot null课题工作量workloadVARCHARNot null课题性质topic_propVARCHARNot null课题来源topicsourceVARCHARNot null课题简介roVARCHARNot null课题要求topic_askVARCHARNot null岀题日期topic.dateTIMESTAMPNot null
42、5.学院信息表,如表4. 15o表4.15学院信息表中文名称字段名数据类型约束学院编号collegedINTEGERNot null unique学院需称collegejiameVARCHAENot null6.专业信息表, 如表4. 16o表4.16专业信息表中文名称字段名数据类型约束专业编号Profession_idINTEGERNot null unique专业名称Profession_nameVARCHARNot null所属院系collegeINTEGERReferences college, (colleg e id)基于JSP的毕业设计选题系统的设计与实现30 / 397课题申请
43、信息表,如表4.17o表4.17课题申请信息表中文名称字段名数据类型约束审核状态topic_stateINTEGERNot null正选状态student_stateVARCHARNot null已选人数topic_numVARCHARyes出题编号select_numVARCHARNot null申请日期apply dateTIMESTAMPNot null8学生预选信息表,如表4. 18o表4.18学生预选信息表中文名称字段名数据类型约束学号studentdINTEGERReferencesstudent_t(stuid)志愿编号washdVARCHARNot null课题topic_na
44、meVARCHARReferencestopic_t(topic_name)预选日期selectjimeTIMESTAMPNot null9系统设置信息表,如表4. 19o表4.19系统设置信息表中文名称字段名数据类型约束所属院系collegeINTEGERReferences profession (pro fession_id)院系状态college_stateINTEGERNot null出题状态producejopicINTEGERNot null预览状态viewjopicINTEGERNot null选题状态selectjopicINTEGERNot null出题个数producen
45、oINTEGERNot null基于JSP的毕业设计选题系统的设计与实现30 / 3910文件信息表, 如表4. 20o表4.20文件信息表中文名称字段名数据类型约束用户帐号UserjdVARCHARNot null unique用户姓划User_nameVARCHARNot null用户角色User_typeVARCHARNot null接收用户To_whoVARCHARyes文件名称VARCHARNot null文件路径VARCHARNot null文件内容TEXTyes发表日期upTIMESTAMPNot null25 / 39才生电孑AF0円上血阪 1织1稳卮你投約内作星轴幵:K与设讨
46、 血廖化的各尸关糸普疋最诞基于JSP的毕业设计选题系统的设计与实现5系统实现详细设计与实现根据已有的需求信息和总体设计,来进行系统的详细设汁和实现。为此,我 们建立了一个Web工程,系统的设计和实现如下。5.1系统登陆界面的设计与实现用户登陆模块最基本的作用是为了限制该管理系统资源的使用,只有经过身 份确认的操作员才能对其管理系统进行相关操作。其基本过程是从客户端取得提 交的用户名和密码,然后到数据库中进行核对。如果该信息在数据库中存在,那 么就可以成功登录到下一界面,否则就会被该系统拒之门外。选择连接数据库后,进入用户登陆界面。在用户登陆界面中输入用户名和密 码,从数据库表中检査是否有相应的
47、用户名和密码。如果用户名和密码错误,系 统就会给出错误提示,并且不会有任何的页面跳转。如果输入的用户名和相应密新才总刚池文4毎书厮擊钊论文华11炕丸砂工作计倔 311 总丈硝网*加刃图5登录系统界面5.2主控制平台的设计与实现通过用户登陆界面,进入主控制平台。在主控制界面中,包括教师管理、 课题管理、学生管理、返回管理员登录页面等功能模块的连接,管理员可通过对 管理模块的选择进行相应的操作。主控界面如图5. 2所示。巾2$码正确,则可以点击“确定”进入主控制平台。用户登陆的界面如图5.1所示。基于JSP的毕业设计选题系统的设计与实现30 / 39air,c?氏7个人J if HI ICFE8
48、I于生欢迎使用毕业生选题管理系统I_808橋VHfi |图5. 2主控制界而5.3用户操作总体设计用户操作主要包括管理员登录和学生与教师管理模块,具体功能如下:管理员登录:用于登录系统。学生管理模块:用于浏览、添加和修改学生与教师的信息,以与课题的管理。5.3.1用户登录设计用户登录是用户进入主页面的入口,其运行结果如图5.3所示。图5.3用户登录运行结果系统登陆是毕业生选题管理中最先使用的功能,因为用户登陆在数据库中使 用的是人员表,人员表中有一个role字段,是来标识是否是管理员的。在登陆时 要根据数据库的这个字段来判断此用户是否具有管理员的权限。在网页里添写用 户名和密码后点击登陆按钮,
49、网页会访问一个URL,这个URL是logon, action,这个action的name属性的值是login,它是Struts的Actoin的实现类在 配置文件中的名字,如下所示: action是Struts的Action的URL,他们在Struts的配置文件中都是已经 配好的,如下所示:基于JSP的毕业设计选题系统的设计与实现30 / 39/student/index.jsp login.j sp/teacher/index.jsplogin.jsp/admin/index.jsplogin.j sp 在这个配置文件中,可以了解到如下信息:根据name二login可以找到与之相对应的Acti
50、on的实现类 “com. graduate, action. LoginAction”。根据 type二com. graduate, action. LoginAction 可以找到处理用户数据 的 Action 类。根据/user/index. jsp可以了解,这 个Action返回success时,页面会被转至lj/user/index, jsp文件,这就是登陆 成功的页面。如果-=| Action返回fail时,页面会被转至lj login, jsp文件,用户 重新登录,并告诉用户的错误信息。Struts的Us er Ac tion实现类的execute ()方法是最先被执行的,这个方法
51、 本身也没有具体的事务,而是根据action的参数不同执行相应的方法。在登陆 页里面可以找到有一个“action二lon”的字样,它的LI的就是在这里做逻辑判 断。当action二logon时调用logon()方法。logon()方法从UsersForm中得到用 户提交的数据,然后在调用UsersDao ()的logonUsers ()方法。并且把UsersForm 转成Users类做为logonUsers ()方法的参数。调用后会返回一个boolean型的 值。如果为真,则返回mapping. findForward( success”否则返回 mapping, findForwardCfa
52、订);”也就是当用户登陆成功后,返回给用户登陆 成功的页面,登陆失败后返回用户一个登陆失败的页面。那么UsersDao的 logonUsers ()方法是根据什么得到的返回值呢,现在就让我们看看这个方法,这个方法先通过HibSessionFactory得到一个Hibernate的Session并且开 始一个事务,Session再像使用一个欲编译似的命令似的东西,设定参数、提交 事务和最后在关闭Session, o得到一个List里面就存储着所有查询出的结果。 根据这个结果就可以判断出该用户是否有登陆的权根了,在返回true或者 falseo就这样合法的用户就可以顺利的登陆了。那刚才那些有些类似
53、于欲编译 的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate查 询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。关键代码如下:public String execute () 基于JSP的毕业设计选题系统的设计与实现30 / 39if(hasErrors () return INPUT;Actioncontext. getContext () getSession () .put (,fusern z admin);return SUCCESS;public void validate () String number =(String)Action
54、context getContextgetSession() .get(nn umber11);System out:.printIn (nname-n+name);if (name = null | | name . trim () . equals (,f n) )addFieldError (Husernamen z ”用户名不能为空”);return;if (psw = null | | psw. trim() .equals (f H) )addFieldError (fluserpswn , ”密码不能为空”);return; if (!number equalsignoreCas
55、e(num)addFieldError (ncheckcodeu, ”验证码不正确”);return;AdminDAO dao =(AdminDAO)DAOFactory getDAOInstance(AdminDAO.class );admin = dao.findByUserld(name);if(admin=nullI|!psw.trim().equals(admin.getPassword() addFieldError (nloginnz ”不是合去用户”);return;基于JSP的毕业设计选题系统的设计与实现30 / 395. 3. 2教师管理模块设计教师管理模块主要包括审核课题
56、信息、添加课题、查看教师、添加教师。此模块文件架构如图5. 4所示。各项管理工作都是在用户成功登陆后的管理页面进行的,在管理控制页面的 左侧是各项的相关链接,右侧是操作平台。单击“添加课题信息”,即打开添加课题信息的页面如图5. 4所示。添加课题信息的链接是这样的,如下所示:在Struts配置文件中,添加课题信息的链接没有使用Action类,也没有使 用Action的实现类,如下所示:addTopic. jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与 TopicAction相对应的,TopicAction如下所示:TocpicAction类中的reset()方法作用是当用户点击“
57、重置”按钮时,清空 input输入框的内容,toString()方法覆盖了 Object和toStringO方法, populate ()方法很有,它把TopicAction转化成Topic实体类,大大方便了程序 在对数据库操作时使用的方便。而且这个方法中还把申请日期等表单元素的值山 字符型转成日期类型。在addTopic. jsp页面中的action上可以看到它要提交的URL,如下所示:, Topic 的 action 实现类是com. graduate. TopicAction”,如下所示: public T save(T entity) Session session =Hibernat
58、eSessionFactory.getSession();session save(entity);return entity;*締 序ittterns工号;ttA :WfeSQus: O O*xnt:。尢 -5基于JSP的毕业设计选题系统的设计与实现30 / 39在TopicAction找到参数action等于add时所调用的方法addTopic (),它 public T save (T entity) session session = HibernatesessionEactory ();。sessiontity);return entity;如果添加成功页面会被被重新加载回页面显示出
59、来topic, action的URL。这样就在页面做一次提交时它访问了二次TopicAction,第一次的作用是向 数据库中添加信息,随后乂把所添加的课题信息取出来显示给用户,同样 TopicAction 还只是调用 TopicDAO,TopicAction取出从TopicDAO中数据,在把它存到ActionContext里,然后 返回 return mapping. findForward(success);在 Strutsr 的配置文件里返回 页是addTopic. jsp。课题信息都在这个页中显示出来。这是添加课题信息的整个过程,在这个过程中,有一部分是用于显示课题信 息的,课题信息的列
60、表的最后一列可以对该条记录做删除和修改。删除的链接地址 是a href=,ztopic_deleteTopic, action删除/&它向 Action 的实现类提交了 两个参数,一个是action=deleteTopic是固定不变的,另一个是该课题的id 这是根据不同记录取出来的。在TopicAction类中根据action的值可以找到与 其相对的方法,在这个方法里得到页面提交过来的用户ID,把这个id存在Topic表中的实 例中,传给da。的delete ()方法,我们可以看到关于数据库方面的操作都被封 装在Dao中。删除用户时和添加用户一样都是先得到一个Hibernate的Session
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北汽集团秋招试题及答案
- 成都航空校招试题及答案
- TCL科技秋招笔试题及答案
- 2025年大学《金属材料工程-金属材料实验技术》考试参考题库及答案解析
- AI训练师招聘题目及答案
- 2025装备制造校招面试题及答案
- 2025年大学《网络与新媒体-新媒体编辑与运营》考试参考题库及答案解析
- 2025年大学《飞行器质量与可靠性-质量问题分析与改进》考试模拟试题及答案解析
- 小学生消防安全 课件
- 第16课《诫子书》教学设计 2024-2025学年统编版语文七年级上册
- 输卵管切除术护理查房
- 学生就餐安全课件
- 2025年网格员相关知识考核试题
- 项目工程材料员培训课件
- 2025年重庆特种作业考试试题及答案
- 2025年外交部遴选公务员面试题及答案详解
- 厨师保洁安全教育培训课件
- 《2025新版检验检测机构管理评审报告》
- 5 去外婆家(课件)
- 专业自动化专业毕业论文
- 2025年碳汇计量评估知识体系梳理与高级模拟题实战训练
评论
0/150
提交评论