




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录目录第1章 绪 论11.1 课题背景11.2 国内外现状11.3 发展趋势2第2章 技术及开发工具介绍32.1 系统开发涉及的技术32.1.1 SERVLET技术简介32.1.2 JSP及其特点42.1.3 JDBC技术42.2 系统开发所用工具52.2.1 Apache Tomcat52.2.2 MySQL数据库52.3 系统开发采用的设计模式62.4开发平台的选择72.5系统运行环境72.5.1 硬件环境72.5.2 软件环境7第3章 系统总体设计93.1教学管理系统需求分析93.2教学管理系统的功能分析113.2.1 管理员登录模块113.2.2 教师基本信息管理模块113.2.3 学生课程管理模块113.2.4 学生基本信息管理模块123.3 系统结构图133.4 数据库概念结构设计133.5 实体E-R图143.6 实体联系E-R图163.6.1 E-R图向关系模型的转换173.6.2 关系模式设计173.6.3 数据表结构18第4章 系统实现详细设计与实现214.1 系统登陆界面的设计与实现214.2 主控制平台的设计与实现224.3 教师管理系统界面的设计与实现234.4 课程管理界面的设计与实现294.5 学生管理界面的设计与实现31第5章 测 试355.1 常用的测试方法355.2 系统测试365.3 系统的安全性分析385.4 系统的实用性分析38结 论39致 谢40参考文献41II第1章 绪 论1.1 课题背景 随着国民经济的加速发展,我校办学规模的不断扩大,按照传统的人工方式进行教学管理,由于业务量大,以及人为主观因素的影响,已难以适应新形势的需要,不便于工作的顺利开展。为了加强管理,减轻工作人员的负担,提高工作效率,设计出一套实用性较强的教学管理系统。为用户提供丰富的信息、快捷的查询手段。使用户摆脱人工操作的工作模式,实现教学信息管理的科学化、现代化。作为培养人才的基地,各个学校的进步与发展对整个社会起着巨大的作用。没有管理的自动化,就没有管理的现代化。各个学校都朝着现代化、科学化的方向发展,而确保这两条出路畅通的基本条件就是计算机在学校各项管理工作的广泛应用。现在我国许多学校的教学管理水平还处于手工阶段,造成了严重落后的局面,这样的机制已经不能适应时代的发展。为此,以智能化为导向,基于计算机硬件的软件管理系统开始应运而生。1.2 国内外现状 Web作为教学管理系统的媒体,其优势不仅在于它是很好的内容载体,可以随时随地地访问,还在于它提供了很多交流渠道,可以促进师生之间、学生之间的充分讨论,这对于提高教学质量、促进学生高级认知能力的开发是十分重要的。所以,也有一些远程教学管理平台就是在远程会议系统之上增加了教育管理功能,并逐步向全面支持网上教学方向扩展。如DataBeam公司DataBeam Learning Server。Lotus 的LearningSpace是基于 Lotus Domino框架,提供了学生与学生、学生与老师之间强大的交流功能。现在国际上最有影响的WBT System的TopClass 、Lotus公司的 LearningSpace英属哥伦比亚大学计算机科学系开发的WebCT (Web Course Tools)、加拿大Simon Fraser大学的VirtualU都在全球发展了一定的用户群,每种软件都至少有10所大学或公司在使用,各开设了上百门课程,授课学生人数均超过5000人次。其中一些产品已进入中国市场,如中国有四所大学在使用Lotus 公司的 LearningSpace,VirtualU也在去年到中国做过宣传。目前大量的教学支撑平台还只是大学实验室的产物,处于继续开发或beta测试阶段。1.3 发展趋势1系统日趋开放,遵从标准:为了更好地交流和服务,促进资源的共享和优势互补,研究制定相关的标准并遵从实施,是大趋势。标准化也是开放性的前提。2与学校的其他有关系统有机结合,这不仅是数据交换层面的结合,还包括用户统一的门户界面,统一身份验证和授权等一系列互操作问题。3强调对教学策略的支持,特别是对混合学习方式的支持:这包括课堂教学管理和课程网站如何更合理结合,异步学习资源和同步学习材料如何配合,服务器的一般性服务和本地个性服务如何更好融合等一系列问题,其实现技术涉及WEB SERVICES,XML MESSAGING。42 第2章 技术及开发工具介绍2.1 系统开发涉及的技术本系统采用Servlet+JSP+Apache(MVC模式)技术配MySQL数据库进行系统开发1。2.1.1 SERVLET技术简介Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。同时它也作为一个中间层,负责连接来自Web浏览器或其他HTTP客户程序的请求和HTTP服务器上的数据库或应用程序。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资,更高效。Servlet被调用的流程如图2.1所示。图2.1 Servlet被调用的流程图2.1说明:(1)客户端(通常为Web浏览器)向Web服务器发送一个基于HTTP协议的请求。(2)Web服务器接收到该请求,并将请求交给Servlet容器处理。(3)Servlet容器根据Servlet的配置来查找或创建Servlet的实例,并执行该Servlet,Servlet容器必须把客户端请求和响应封装成Servlet规范中规定的请求和响应对象传给Servlet。(4)Servlet可以使用请求对象获取客户端的信息,比如IP地址、请求的参数等,以及执行特定的业务逻辑。Servlet可以使用响应对象向客户端发送业务数据及业务执行的结果。(5)Servlet处理完该请求后,Servlet容器要保证Servlet的响应内容能够发送到客户端去(flush),最后返回到Web服务器。2.1.2 JSP及其特点JSP及其特点2:JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术。JSP和ASP相比具有两方面的优点首先,动态部分用Java编写,而不是VB Script或其他Microsoft语言,不仅功能更强大而且更易于使用。第二,JSP应用可以移植到其他操作系统和非Microsoft的Web服务器上。JSP和纯Servlet相比JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计专家进行HTML设计,同时留出供Servlet程序员插入动态内容的空间4。2.1.3 JDBC技术JDBC技术3:Java联接数据库引擎。一个独立于DBMS的接口将使得与各种各样DBMS连接变得最为便捷,开发更加迅速。定义一个通用的SQL数据库存取框架,在各种各样的提供数据库连接模块上提供统一的界面是十分有意义的。Sun公司设计了一个适合于Java使用的数据库操作引擎:JDBC(Java Data Base Connectivity)6,并于1996年3月份发布。它为各种常用数据库提供无缝联接的技术,并且沿袭了ODBC的设计思想,采用了与ODBC一样的设计基础:X/Open SQL Call Level Interface(简称CLI)。ODBC(OpenData Base Connectivity),称为开放式数据库互联技术,是由Microsoft公司倡导并得到业界普遍响应的一门数据库连接技术。为了使JDBC功能更加强大,还开发了一个“JDBC-ODBC的翻译器”(也被称为桥接器)。通过它,还可以使用数据库的ODBC驱动程序。2.2 系统开发所用工具2.2.1 Apache TomcatTomcat是Servlet 2.2和JSP 1.1规范的官方参考实现。Tomcat既可以单独作为小型Servlet、JSP测试服务器,也可以集成到Apache Web服务器。直到2000年早期,Tomcat还是唯一的支持Servlet 2.2和JSP 1.1规范的服务器,但已经有许多其它服务器宣布提供这方面的支持5。2.2.2 MySQL数据库MySQL数据库技术:MySQL是一个快速的多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务。重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。(1)MySQL是一个数据库管理系统。一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个美术馆、或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。(2)MySQL是一个关系数据库管理系统。关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”(结构化查询语言)。(3)MySQL服务器是一个快的、可靠的和易于使用的数据库服务器。如果这是你正在寻找的,你可以试一试。MySQL服务器还包含了一个由用户紧密合作开发的实用特性集。(4)MySQL服务器工作在客户/服务器或嵌入系统中。MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端。多个不同的客户程序和库。管理工具和广泛的应用程序接口(APIs)。(5)MySQL也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、快且易于管理的产品。2.3 系统开发采用的设计模式设计模式是面向对象的程序设计人员用来解决编程问题的一种形式化表示。目前,在大多数Browser/Server结构的Web应用中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求7。虽然很直观,但是大多数管理信息系统操作的数据量都是惊人的,随着代码的增多会使JSP页面臃肿不堪,Web服务器的负荷过重。因此,在中间层上采用基于模型视图控制器(MVC,Model-View-Controller)的设计模式。Model层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View层和Model层之间的控制关系。具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBeans被用来表示模型。所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。同时,Servlet还根据JSP的需求生成JavaBeans的实例并输出给JSP环境。JSP可以通过直接调用方法或使用Use Bean的自定义标签得到Java Beans中的数据。这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速10。数据库是管理信息系统的核心内容。目前,Web与数据库接口技术有很多,其中JDBC是Java程序连接和存取数据库的应用程序接口,由一组用Java语言编写的类与接口组成,是执行SQL语句的Java API。本文介绍的管理信息系统中,在数据的存取方面,采用了 JSP/Servlet+JDBC的技术,即客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建立连接。Web服务器主要负责接收本地或远程浏览器的HTTP数据请求,然后中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进行访问和相应的操作处理。Servlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器。这样,不仅将客户端与数据库服务器端分开,同时提高了数据库的访问效率8。2.4开发平台的选择在现阶段软件开发领域,用于网站设计主流软件有许多,例如JSP、ASP.NET、Dreamweaver 系列、FrontPage系列等,由于JSP流行且功能强大,可跨平台操作,我个人比较了解和熟悉,所以我选用了JSP作为开发工具。开发平台我选择MyEclipse,它可以支持各种不同的开发技术及相应的代码,并有很强的可视化操作能力,与后台数据库连接相当快捷,是目前开发B/S系统最流行的开发平台9。有以下优势:1可以对JSP代码进行颜色识别,自动完成代码。2内置数据库管理工具,可以直接进行数据库查询、修改工作。3内置群体开发协作管理功能,支持多人同时开发一个网站11。2.5系统运行环境2.5.1 硬件环境后台数据库服务器:因为服务器为数据库服务器,且要完成高密度的运算量,所以应采用较高档的服务器。考虑到与软件的兼容性,建议采用Intel Pentium 4多处理器系统、512MB RAM、80GB以上硬盘。客户机:采用Intel Pentium 4 多处理器系统、512MB RAM、80GB以上硬盘。网络配置:10M/100M 网络带宽、100Mb/s网卡、16口交换机。2.5.2 软件环境操作系统的选择:数据库服务器:因为服务器为数据库服务器,特别对稳定性有极高的要求,且支持多CPU。所以应采用Windows 2000 Server,因为它有优良的稳定性和操作性。数据库的选择:因大部分情况下软件都是在Windows系统下使用的,考虑MySQL的优势在于中国普遍使用的免费数据库软件并且与系统的兼容度较高,并支持集成性安全检测,且对系统的资源消耗较小。相比之下,Oracle数据库虽然性能较高,但由于其可操作性和方便性不如MySQL好,并且服务器没有使用磁盘阵列和多处理器,无法发挥Oracle数据库设计上的性能优势,并且对系统性能要求较高。至于Access之类的数据库,由于其性能较低,且并发度太低又不具安全性,故不予考虑。最终决定后台数据库用MySQL5.0。当然整个系统只能在Windows下运行。 第3章 系统总体设计3.1教学管理系统需求分析总体目标是实现教学系统的科学管理。系统管理人员可以实现对所管辖内的教师基本信息、课程的科学管理和安排、学生基本信息的统一管理。在教师管理模块中可以根据教师的基本信息进行相应的方便快捷操作。当该名教师产生人事变动或离职时,操作员根据主管领导的指示可以进行方便快捷的修改。对教师员工的职称评定情况进行录入,方便统计和查询。在课程管理模块中,可以根据教师的任课情况和每课程一学期所要安排的课节数进行科学的学生选课功能。选课后的学生还可以通过查询所选课程进行相应的统计学分,在查询所选课程的过程中,还可以查到相应的教师信息和上课地点。在学生管理的模块中,可以插入新学生的基本信息和按类型删除学生的信息。例如,一个班级的毕业,那么通过一次次的删除学生会显得很麻烦,那么通过班级类型的选择进行学生信息的删除会提高效率,带给系统管理人员方便快捷的操作。在查询的过程中也可以同样选择不同的类型进行有条理,有规矩的查询。总体功能简洁明了,充分利用现有资源达到数据快速准确及时可靠地输出,同时节省人力和时间,不但实现数据的共享,而且能够及时准确地掌握课程选择的各种情况,以此达到综合管理的科学化。教学管理系统流程图,如图3.1所示。开始管理员登录验证教师管理系统课程管理系统学生管理系统教师信息添加教师信息删除教师信息查询教师信息修改按类型查询查询全部按类型删除查看授课教师信息学生选择课程统计课程学分查询课程信息学生信息添加学生信息删除学生信息查询确定是否存在存在提示确定删除确定删除确定是否存在按类型查询查询全部查看是否已选学生信息修改退出确定是否退出未通过验证通过验证是否图3.1教学管理系统流程图3.2教学管理系统的功能分析3.2.1 管理员登录模块主要功能:通过该模块检测用户身份是否合法,这是整个系统的登录页面。只有键入正确的帐号和密码才可以被系统识别并进入具体的系统管理部分;当不键入密码时,系统窗口会给出提示;当键入错误密码时,系统不会有任何的页面跳转,并由窗口弹出提示“帐号或密码错误”消息。3.2.2 教师基本信息管理模块主要功能:此系统模块为管理员提供了新教师的信息添加,教师的信息修改,教师的信息删除,查询教师信息等功能,通过这些功能来实现对教师基本信息的管理。(1)教师的基本信息添加:管理员通过填写表单的形式往数据库中添加教师的基本信息。在添加的过程中,通过对提取数据与数据库的数据进行比较,如果存在该名称的教师,那么系统给予管理员已存在该信息的提示。(2)教师的基本信息修改:管理员可以通过键入要修改教师的名字来对数据库中的信息进行修改,在修改的过成中,界面会将数据库中已存在该学生的信息读取到文本框中,根据所要修改的内容进行重新写入,通过确定修改按钮,提交给数据库,同样也是通过表单操作。(3)教师的基本信息删除:管理员可以通过表单提交要删除教师的姓名来完成对数据库中该教师基本信息的全部删除。在删除的过程中,可以按照所提供的类型进行按类型删除。在系统提示确定删除后再提交给数据库删除信息。(4)教师的基本信息的查询:管理员通过选择查询的方式和类型来查询全体教师信息或是有针对性的查询某个具体的教师信息。3.2.3 学生课程管理模块课程管理系统模块,即学生选课系统,通过此功能实现对学生选课的管理和统计。(1)通过键入学生号和个人密码可以针对该学生进行课程的选择管理。在选课的过程中,如果再次选择了已选课程,便会有系统提示并要求重新选课。并且,限制每人每学期的选课数不得超过规定数。(2)备选课程:罗列出数据库中存在的可供选择的课程信息,包括授课教师信息和学分等信息的统计。如果已选择了该课,那么系统就会提示给用户此课程已被选择,返回选课界面。另外,在选课的过程中,如果选择课程错误,可以在查询自己选择的课程列表中进行删除。(3)已选课程:可查看有登录的学生学号对应的学生的选课情况以及计算出所选课程的总学分。也可以在此界面进行所选课程的相关信息查询。(4)选课查询:可通过课程编号或是教师姓名等信息有针对性的查找课程情况及课程的上课地点等信息。3.2.4 学生基本信息管理模块学生管理系统,即学生的班级管理,通过此功能实现对学生以班级为单位的管理。(1)学生的基本信息添加:管理员通过填写表单的形式往数据库中添加学生的基本信息。在添加的过程中,通过对提取数据与数据库的数据进行比较,如果存在该名称的教师,那么系统给予管理员已存在该信息的提示。(2)学生的基本信息修改:管理员可以通过键入要修改学生的名字来对数据库中的信息进行相关信息修改。在修改的过成中,界面会将数据库中已存在该学生的信息读取到文本框中,根据所要修改的内容进行重新写入,通过确定修改按钮,提交给数据库,同样也是通过表单操作。(3)学生的基本信息删除:管理员可以通过表单提交要删除学生的姓名来完成对数据库中该学生基本信息的全部删除。在删除的过程中,可以按照所提供的类型进行按类型删除。在系统提示确定删除后再提交给数据库删除信息。(4)学生的基本信息的查询:管理员通过选择查询的方式和类型来查询全体学生信息或是有针对性的查询某个具体的学生的基本信息。3.3 系统结构图系统整体结构图,如图3.2所示。系统登录的主界面管理员登录教师管理课程管理学生管理新任教师管理人事变动管理离职退休管理全员查询管理查看授课教师信息学生选择课程统计课程学分查询课程信息按班级管理个人管理信息添加信息修改信息删除类型信息查询图3.2 系统整体结构图3.4 数据库概念结构设计在一个数据库应用系统的开发过程中,数据库的设计是整个系统的基础。良好的数据结构设计不仅可以减少数据冗余、提高查询效率,而且还可以降低应用程序的编写难度,提高工作效率。3.5 实体E-R图在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,才能更好的更准确的用数据库管理系统实现这些需求。根据需求分析画出E-R图。教学管理系统的E-R图如图3.3、图3.4、图3.5、图3.6所示。登录密码登录帐号管理员图3.3 管理员实体E-R图 学生性别所属班级学生年龄所在寝室学生号联系方式学生姓名学生信息图3.4 学生基本信息E-R图教师性别教研室教师年龄职 称教师姓名个人信息教师信息图3.5 教师基本信息E-R图授课教师上课地点课程学分座位数课程名选课人数课程号课程信息 图3.6 课程信息E-R图3.6 实体联系E-R图实体联系E-R图如图3.7所示。授 课课 程教师信息 1 n 1 1授 课选修 n n学生信息图3.7 实体联系图3.6.1 E-R图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体,实体的属性和实体间的联系三个要素组成。所以将E-R图转换为关系模型实际上就是要将实体,实体的属性和实体间的联系转换为关系模式。转换原则如下:(1) 实体类型的转换:将每个实体类型转换成一个关系模式,实体的属性及为关系模式的属性,实体标识符及为关系模式的键。(2) 联系类型的转换,根据不同的情况做不同的处理:若实体间的联系是1:1,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一各关系模式的键和联系类型的属性。 若实体间的联系1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。若实体间的联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上关系类型的属性,而键为两端实体间的组合。3.6.2 关系模式设计依照该规则将教学管理系统的E-R图转换为关系模型如下:将每一个实体转换成一个关系(关系就是给出关系名,写出属性,并标明该关系的主键)。JB031模式:1gmlogin(gmid,gmpwd)管理员信息(管理员帐号,管理员密码)2students(stname,stid,stage,stsex,stclass,sthome,stphone)学生信息(学生姓名,学生号,学生年龄,学生性别,学生所在班级,学生寝室,学生电话)3teacher(name,age,sex,job,part,info)教师信息(教师姓名,教师年龄,教师性别,教师职称,教师所属教研室,教师基本信息)SC模式:1course(cid,cno,cname,credit,teacher,address,seats,choosed)课程信息(课程编号,课程号,课程名称,课程学分,授课教师,上课地点,座位数,选修该课程人数)2sc(scid,sid,cid)课程与学生的关联表(关联号,对应学生表的外键号,对应课程表的外键号)3student(sid,sname,spassword,username,ssex,majoy,email)选课模式下学生信息(学生号,学生姓名,学生登录密码,用户名,性别,所学专业,邮箱)3.6.3 数据表结构1.管理员信息表,如表3-1。表3-1 管理员信息表中文名称 字段名 数据类型 大小管理员帐号 gmid VARCHAR10管理员密码gmpwd VARCHAR202.学生信息表,如表3-2。表3-2 学生信息表中文名称字段名数据类型大小学生姓名stnameVARCHAR10学生号 stidVARCHAR45学生年龄stageVARCHAR45学生性别 stsexVARCHAR45学生所在班级 stclassVARCHAR45学生寝室sthomeVARCHAR45学生电话stphoneVARCHAR453.教师信息表,如表3-3。 表3-3 教师信息表中文名称字段名数据类型大小教师姓名nameVARCHAR 10教师年龄 ageVARCHAR 3教师性别sexVARCHAR5教师职称 job VARCHAR 10教师所属教研室 partVARCHAR25教师基本信息InfoVARCHAR1004.课程信息表,如表3-4。 表3-4 课程信息表中文名称字段名数据类型大小课程编号cidINTEGER 课程号cnoINTEGER课程名称 cnameVARCHAR45课程学分creditINTEGER授课教师 teacherVARCHAR45上课地点 addressVARCHAR45座位数seatsINTEGER选修该课程人数choosedINTEGER5.课程与学生的关联表,如表3-5。 表3-5 课程与学生关联表中文名称字段名 数据类型 大小关联号scidINTEGER对应学生表的外键号sidINTEGER对应课程表的外键号cidINTEGER6.选课模式下学生信息表,如表3-6。 表3-6 选课模式下的学生信息表中文名称字段名数据类型大小学生号sidINTEGER10学生姓名 snameVARCHAR45学生登录密码spasswordVARCHAR45用户名 usernameVARCHAR45性别 ssexVARCHAR45所学专业majoyVARCHAR45邮箱emailVARCHAR45 第4章 系统实现详细设计与实现根据已有的需求信息和总体设计,来进行系统的详细设计和实现。为此,我们建立了一个Web工程,系统的设计和实现如下。4.1 系统登陆界面的设计与实现用户登陆模块最基本的作用是为了限制该管理系统资源的使用,只有经过身份确认的操作员才能对其教学管理系统进行相关操作。其基本过程是从客户端取得提交的用户名和密码,然后到数据库中进行核对。如果该信息在数据库中存在,那么就可以成功登录到下一界面,否则就会被该系统拒之门外。选择连接数据库后,进入用户登陆界面。在用户登陆界面中输入用户名和密码,从数据库表中检查是否有相应的用户名和密码。如果用户名和密码错误,系统就会给出错误提示,并且不会有任何的页面跳转。如果输入的用户名和相应密码正确,则可以点击“确定”进入主控制平台。用户登陆的界面如图4.1所示。图4.1管理员登录系统界面4.2 主控制平台的设计与实现通过用户登陆界面,进入主控制平台。在主控制界面中,包括教师基本信息管理、课程管理、学生管理、返回管理员登录页面等功能模块的连接,管理员可通过对管理模块的选择进行相应的操作。主控界面如图4.2所示。图4.2 主控制界面4.3 教师管理系统界面的设计与实现此模块的功能是实现了对系部教师基本信息的管理。在增加教师信息的过程中通过对文本框的添写来提交给所对应的Servlet,Servlet通过request.getparam()方法来提取出来,通过调用DB类中的addteacher()方法来实现对教师各个信息的属性添加。在添加教师信息页面,文本框后显示有*的部分为必须添加的内容。此时,如果忘记填写的话就会有对话框弹出,提醒管理员添加教师信息的属性不能为空。这么做是对系统一些部分的严格要求或是备忘12。教师基本信息添加界面如图4.3所示。图4.3 教师基本信息的添加点击“查询”可根据需要进行查询全部教师信息和按姓名、职称或教研室进行类型区别的和有针对性的查询。在查询的过程中申明一个数组的时候必须首先固定数组的大小,否则编译会出错,但是在很多时候,我们事先并不能确定数组的大小,这时为了保证程序能够顺利的运行我们可能不得不尽量将数组的长度定的很大,这样当数组的实际长度比较小时,就会浪费掉很多资源。为了解决在程序运行时动态改变数组大小地问题,在java中提供了这样一个类ArrayList,它能够实现与数组同样的功能,并能够动态地改变大小,就像一个能够自己伸缩的容器一样13。在ArrayList有一个内部数组,专门用来存放放在ArrayList中的对象的reference。通过不断调用ArrayList的add(Object object)方法增加对象,最终那个内部数组会full,这个时候,ArrayList会自动创建一个更大的内部数组把那些references从较小的数组中拷贝过来同时把要add的那个对象也塞进去,当然这样会引起额外的开销。在查询的过程中所采用的技术是ArrayList动态数组技术结合EL,JSTL语言来实现。一般来讲,在对每个数据的整体做全部属性的查询时,需要从数据库中提取出该数据的所有属性时,会用到循环SQL语句去显示查询的结果,并调用语句来显示在页面上。那么在本系统中采用到的循环显示查询结果时,我把每一个对象的所有信息一并全部从数据库中提取,然后封装到类中,这还不够,在本系统中还设置了ArrayList动态数组,把这些被封装后的对象都逐一的放在动态数组中,这样就可以方便对每一个对象的操作。当被从动态数组中取出来显示在Web页面上时,系统采用的是EL与JSTL语言的结合来实现从动态数组中取一组数据,并在适当的位置显示该对象的各个属性,所写命令简单明了。以下是数据库类中的取出所有对象和所有对象属性的方法,并把这些属性都封装到了名为r1的ArrayList类型的动态数组中。public ArrayList showall()ArrayList r1=new ArrayList();try st = conn.createStatement();String sql=select * from teacher;rs=st.executeQuery(sql);while(rs.next()Teacher m=new Teacher();m.setName(rs.getString(name);m.setAge(rs.getString(age);m.setSex(rs.getString(sex);m.setJob(rs.getString(job);m.setPart(rs.getString(part);m.setInfo(rs.getString(info);r1.add(m); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return r1;以下程序是Servlet中取得了数据库类的r1的值,并设置为request的共享范围中,命名为teacher,再调用getServletConfig的方法在下页Web中实现循环显示。public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException ArrayList a=new ArrayList();a=new DB().showall();request.setAttribute(teacher,a);getServletConfig().getServletContext().getRequestDispatcher(/showteacher.jsp).forward(request,response);在Web中给传过来的数组起了个别名a,用$获取值,用$的形式进行输出,具体语句为:14。教师基本信息的查询类型选择后查询结果如图4.4所示。图4.4 查询结果的显示点击“修改”可以修改教师基本信息。此过程是通过填写所要修改的教师姓名来是实现对数据库中该名教师的基本信息的修改。所用的SQL语句是UPDATE 字段名 SET 所获的信息来实现的16。修改信息操作如图4.5所示。图4.5 修改教师信息界面值得注意的是:在删除的过程中,当确定所要删除的教师而还没有进行数据库相应的操作时,此时如果发生了一系列的包括硬件或是软件的异常时,就会对数据库中的信息造成一些不必要的错误或是未完成的运算,那么,解决方案是:在servlet调用DB类中的修改教师信息的方法时,在运行到SQL语句的前端,我把自动的数据库提交给设置成FALSE,而把执行整个的修改语句用一个异常来控制,在异常的末端,如果这段代码出现了问题,那么程序就会自动抛出异常,去解决问题。我在抛出异常的语句中填写的程序代码的作用是ROLLBACK回滚。然后在整个代码块的后面执行数据库信息的提交。就是说,要么就把程序的这段代码一起执行结束,然后整体提交给数据库,要么就是出现了问题或异常是把整体都回滚,表示什么也不会对数据库做,这样就实现了对数据库的正确操作。在其中的代码块称之为“事务”模式17。4.4 课程管理界面的设计与实现在主控制界面中点击“课程管理”按钮,进入课程管理界面。此模块实现了针对某一位学生对课程信息的选择及查询功能。在界面中输入该选课学生的学号的密码点击“进入”即可以通过观看备选课程中的记录进行课程的选择;在备选课程的页面可以通过点击“选课”进行选择并存入数据库中。被选课信息如图4.6所示。图4.6学生备选课程界面在选课的系统模块中,我用到了session会话,用以保证每位学生在选课的过程中不被页面的跳转所打扰。就是在选课的过程中,通过刷新页面或是页面跳转也不会导致未保存临时数据的丢失。然后在每一位学生选择所有课结束后会进行统一的写进数据库中18。public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException request.setCharacterEncoding(gb2312);response.setCharacterEncoding(gb2312);int cid=Integer.parseInt(request.getParameter(cid);HttpSession session=request.getSession();String username=(String)session.getAttribute(username);DB db= new DB();int sid=db.getsid(username);new DB().selectcourse(sid,cid);response.sendRedirect(./manager.jsp);Session结束时,调用的释放语句。HttpSession session = request.getSession();session.invalidate();在以学生个人登录系统的过程中,通过点击进入课程查询的按钮对类型的区别的课程进行个人相关信息的所有查询,包括上课地点、教师姓名等信息。其实现的过程是用session会话来进行全程的跟踪。当一个学生以自己的学生号为帐号进入到系统的开始,经过servlet的转接,从而对其进行设置session的赋值,以保证接下来的功能都是为该名学生服务的。当调用结束时通过以上的释放语句去结束跟踪19。选课系统查询界面如图4.7所示。图4.7 学生选课查询界面4.5 学生管理界面的设计与实现通过在主控页面中点击“进入学生管理界面”按钮进入到学生管理系统。本系统模块通过对表单的提交可以实现对数据库中学生信息的管理操作。其中的新入学校学生的添加包括学生的姓名、所在班级、学号、性别等基本信息。在Servlet中添加学生信息的程序如下:public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException request.setCharacterEncoding(gb2312);response.setCharacterEncoding(gb2312);Students s=new Students();s.setStname(request.getParameter(stname);s.setStid(request.getParameter(stid);s.setStage(request.getParameter(stage);s.setStsex(request.getParameter(stsex);s.setStclass(request.getParameter(stclass);s.setSthome(request.getParameter(sthome);s.setStphone(request.getParameter(stphone);new DB().addstudents(s);response.sendRedirect(./addstudentok.jsp);在数据库类中被Servlet中程序调用的增加学生信息的方法为:public void addstudents(Students s) try conn.setAutoCommit(false);stmt=conn.prepareStatement(insertinto students(stname,stid,stage,stsex,stclass,sthome,stphone) values(?,?,?,?,?,?,?);stmt.setString(1,s.getStname();stmt.setString(2,s.getStid();stmt.setString(3,s.getStage();stmt.setString(4,s.getStsex();stmt.setString(5,s.getStclass();stmt.setString(6,s.getSthome();stmt.setString(7,s.getStphone();stmt.execute();mit(); catch (SQLException e) try conn.rollback(); catch (SQLException e1) / TODO Auto-generated catch blocke1.p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1220-2025商用车离合器用液压软管总成
- GB/T 45963.2-2025数字政府架构框架第2部分:架构设计
- 2025年航空航天产业集团招聘面试模拟题及备考技巧
- 消费品安全责任协议样本
- 2025年弱电维修工职业资格测试题
- 2025年汽车销售顾问职业素质评估考试试题及答案解析
- 2025年农业科技推广员技能水平考试试题及答案解析
- 2025年山东安全员C考试重点难点题库
- 2025年航海安全法规题库
- 2025年建筑工程质量监督员资格考试试题及答案解析
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
- 幼儿园 中班语言绘本《章鱼先生卖雨伞》
- 中医学藏象学说课件
- 软件平台建设和运营合同
- 连锁酒店相关行业项目操作方案
- AQ/T 7014-2018 新型干法水泥生产安全规程(正式版)
- 全案设计高级感合同
评论
0/150
提交评论