基于web的课程管理系统(共47页).doc
精选优质文档-倾情为你奉上吉林大学远程教育 专科生毕业论文(设计) 中文题目基于web的课程管理系统学生姓名 袁丽丽 专业 经济管理 层次年级 2009秋专科 学号110指导教师(苗健) 职称 讲师 学习中心金铖教学中心 成绩 2011年8 月30 日专心-专注-专业摘 要本论文主要介绍基于Web的课程设计管理系统的研究和设计,以及系统设计中所涉及的技术。进行了模块划分,而后分析了各个模块和流程的具体划分和最后的编程实现,从问题的提出到最后逐步的实现。都一步一步作了系统的介绍,在实际开发阶段,本文将比较有代表性的代码给出,并作了相关注释,便于理解和对照。 本系统在当前流行的web开发平台上进行课程管理系统的设计与开发。系统使用XML、JAVA等当前流行的技术进行系统实现。他给学生带来了很多的方便,学生可以在线选择自己想要选的课题。老师也可以在线添加课题、给学生打分等。管理员可以在线对老师、学生、课程进行管理。总体上实现了预期的目的。在实现方面,该毕业设计最大的特点是使用JSP+JavaBean+Servlet开发模式,将系统中的表示层和业务逻辑层分开。这种开发模式在一定程度上体现了MVC的思想,又减少的常规MVC模式的复杂性,在中小型Web应用的软件开发中具有一定的应用价值。而且采用MVC开发模式进行该系统的具体实现,为日后程序的修改和扩展提供了很好的可扩展性。关键词:JSP,Servlet,JavaBean,iReport,JavaMail目 录 第一章 绪论1.1基于web的课程设计管理系统发展特点。基于web的课程设计管理系统,根据高校课程管理的基本流程,实现课程信息管理的电子化,减轻管理人员的负担。管理人员能够很好对课程进行管理。长期以来,学校基本都是使用传统人工的方式管理学生课程信息,效率低、保密性差,随着计算机和网络技术的发展,使用计算机来管理课程信息已经成为发展趋势。这样可以提高学生选课和成绩管理工作的效率,围绕此管理所需要的学生个人信息、课程和任课教师信息、所选课程信息进行管理及维护。随着科学技术的不断提高,计算机科学日渐成熟其强大的功能已为人们深刻认识,他已经进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分,使用计算机对高校课程进行管理,有着手工管理所无法比拟的优点。例如:检索迅速,查找方便,可靠性高存储量大成本低等。这些有点都能够极大的提高高校课程管理的效率也是企业的科学化正规化管理,与世界接轨的重要条件。所以说,程管理系统是高校不可缺少的一部分,他的内容对于学校的决策者和管理者来说都至关重要1.2 主要功能 开发课程管理系统的总体任务是实现学生网上选课功能,将学生选择的课程和学生成绩通过网络进行管理等。本系统的主要功能如下:管理员登录:管理学生、教师、课程和班级信息。学生:学生学籍的管理,基本信息的查询,成绩查询,选课查询 教师:选择学生、任教科目查询、成绩录入、师基本信息查询第二章 开发语言及相关技术概述2.1 Java语言简介Java语言是当今流行的网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的概念,使WWW从最初的单纯提供静态信息发展到现在的能够提供各种的动态服务。Java不仅能通过编写小应用程序实现嵌入网页的声音和动画功能,而且还哪个应用与独立的大中型应用程序中,其强大的网络功能可以把整个Internet最为一个统一的运行平台。Java的诞生从根本上解决了Internet的异构、代码交换以及网络程序的安全性等诸多问题。Java语言且有平台无关性,程序经过编译后,生成字节代码并运行在Java虚拟机上,随着Java Servlet的推出 ,Java的应用更加广泛,目前Java技术已成为项目开发的主要选择。2.2 Java 语言在网络上的应用Java程序可以获取网络上结点的图像、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。2.3 JSP技术简介JSP(Java Server Pages)是一种基于Java的脚本技术,这种技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序哪个与各种Web服务器、应用服务器、浏览器和开发工具共同工作。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用 JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。可用两种方法访问 JSP 文件:浏览器发送 JSP 文件请求、发送至 Servlet 的请求。1. JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件。图1.1说明了该 JSP 访问模型。当 Web 服务器接收到一个 JSP 文件请求时,服务器将请求发送至 WebSphere应用服务器。WebSphere应用服务器 对 JSP 文件进行语法分析并生成 Java 源文件(被编译和执行为 Servlet)。Java 源文件的生成和编译仅在初次调用 Servlet 时发生,除非已经更新了原始的 JSP 文件。在这种情况下,WebSphere应用服务器 将检测所做的更新,并在执行它之前重新生成和编译 Servlet。图1.1:浏览器发送 JSP 文件请求2. 发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器。图1.2说明了该访问模型。该访问模型使得将内容生成从内容显示中分离出来更为方便。WebSphere应用服务器 支持 HttpServiceRequest 对象和 HttpServiceResponse 对象的一套新方法。这些方法允许调用的 Servlet 将一个对象放入(通常是一个 Bean)请求对象中,并将该请求传递到另一个页面(通常是一个 JSP 文件)以供显示。调用的页面从请求对象中检索 Bean, 并用 JSP 来生成客户机端的 HTML。图1.2:发送至 Servlet 的请求1.4 Servlet技术简介Servlet是用Java书写的一种协议,是与平台无关的服务器端的构件。它可以在支持Servlet的Web服务器或应用服务器上运行。Servlet被装载到Web服务器或应用服务器后,在Java虚拟机上执行,所以不需要呗装载到Web客户端的JVM上执行是同样的方式。由于Servlet在服务器上执行,所以不需要任何图形用户界面。从这个意义上讲,Servlet是一个“无面”对象。Servlet为客户端和服务器端的信息处理提供了一种“请求/回答”机制。Java的Servlet API为处理客户端和服务器端之间的请求和回答信息定义了标准接口。Java Servlet处理技术与传统的CGI和许多其他类似CGI的技术相比,具有许多优点。高效在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程而不是重量级的操作系统进程来处理。方便Servlet提供了大量的实用工程,例如自动解析和解码HTML表单数据、读取、和设置HTTP头、处理Cookie、跟踪会话状态等。功能强大在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。可移植性好Servlet用Java编写,Servlet API具有完善的标准。因此,为某个Enterprise Server写的Servlet无须任何实质上的改动即可移植到Apache、Microsoft IIS 或者WebStar上。节省投资不仅有很多廉价甚至免费的Web服务器供供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet,那么要加上这部分功能也往往是免费的或是只需要极少的投资。1.5 JavaBean技术简介JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。1.6 Tomcat简介 Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat6支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。选课工作是学校课程管理的重要组成部分,为老师和学生提供一个课程管理的平台,长期以来,学校基本都是使用传统人工的方式管理学生课程信息,效率低、保密性差,但随着某高等学院教学体制的不断改革,信息化的不断发展,特别是学分制、选课制等展开和深入,各大院校教务日常管理工作日趋繁重、复杂,迫切需要研制开发一套基于Internet网络的计算机课程管理软件,从而减轻教务管理的压力,更好的为师生服务。本系统正是为适应这种需求而研发的。本文从课程管理系统的开发背景、相关技术、需求分析、详细设计、系统测试与维护等方面详细阐述了整个系统的开发过程。1.7 B/S与C/S 模式随着网络的发展,在web应用程序中,程序的部署简单、开发高效、平台兼容、程序的维护是越来越重要。由于编程语言越来越多,以至于程序员的通信和维护更加的困难,因此需要一个统一的平台和架构来解决编程语言和平台的兼容问题。当前流行的架构有B/S和C/S模式,B/S的市场规模每年都在快速增长,越来越成为当今开发的主流模式。然而当前的技术有微软的.net平台提供的web应用架构和SUN公司开发的java。 按照系统终端情况的不同,可将高职院校辅助教学平台系统的开发结构分为C/S(客户端/服务器)和B/S(浏览器/服务器)两种模式,它们各具特色,是当前高职院校辅助教学平台系统开发的主流。C/S是一种client客户端和serves服务器的架构,其中客户端负责接受用户的请求,然后发给服务器,由服务器处理然后在返回给客户端。B/S 作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,九江职业技术学院辅助教学平台采用的是B/S的体系结构模式。客户器/服务器系统的主要优点为能最大体现客户和服务器或客户间的交互性。作为本基于B/S模式的教学管理系统主要特点表现为:学生和老师的交互,学生几乎可以随时和老师进行互动,学生学习中问题的提出,老师对相应问题进行回答;老师通过该系统平台发布有关通知,布置作业题目、家庭学习任务等,学生既可及时地通过该系统平台得到相关信息,并可通过该系统提交自己完成的任务或作业等;老师对重点难点课件或教授视频的上传,学生通过该系统加强对相应重点难点内容的学习;学生并可以通过该系统及时查看自己的某次考试的分数,并及时与相应老师进行交流.(1) 系统易于扩展和维护。该平台系统可随时根据需要上传任何格式的文件(只要服务器的空间足够),对过期的资料进行相应的处理。学生成绩查询子系统采用数据库存放个学生相应信息,可随时根据具体的考试情况对数据库进行维护和管理。并且系统的各个模块之间相对独立但又相互关联,易于对相应模块单独进行调整与完善。(2) 大大降低对网络带宽的要求。采用客户端/服务器系统可避免点对点网络传输所产生的过分的网络阻塞与延迟。可以说,只要服务器端的带宽足够,并具备大规模服务的能力,对于客户端的网络带宽要求是非常低的第3章 需求分析3.1设计目标本系统是一个网络版的管理系统,主要针对高效学生教务流程开发设计,系统提供了较好的功能扩充接口。下面简要分析系统大致的功能需求。1) 管理员登录在管理员进入系统前,首先要求管理员进行登录,防止非法用户对系统进行操作,登录时要验证用户名和密码是否匹配,验证通过后允许管理员进入本系统操作。同时特别注意sql系统注入漏洞问题。2) 学生信息管理提供包括学生学籍的管理,基本信息的查询,成绩查询,选课查询。(a) 填写学生信息(b) 查询学生信息(c)修改学生信息(d)删除学生信息3) 教师管理教师对学生信息的查询,任教科目查询,成绩录入,教师基本信息查询。(a) 填写教师信息(b) 添加教师信息(c) 修改教师信息(d) 删除教师信息4) 选课管理提供学生每学期的公选课的选择。a) 设定选课时间、人数b) 选上课的学生名单c) 未选上课的学生名单并用邮件通知d) 选课成绩信息可用邮件通知其一门课或学期所有课的成绩3.2功能概图 本系统的流程主要描述的是学生选择课程后,教师为学生录入成绩。该系统的适用对象包括学生、教师和管理员。3.3 性能需求可靠性系统7×24小时持续可用,可在每日特定时间段内对系统进行维护。传输数据服务要求准确,不能丢失数据。系统应有分级权限和逐级授权管理功能。可维护性软件采用面向对象技术开发,较之过程化技术,更容易维护。软件严格和规范文档化,给系统的维护带来方便。软件规范模块化,尽量做到低耦合,便于软件的更新修改,增强可维护性性能,效率本软件安全保护优良,可提供备份,工作有较好的稳定性,响应时间短,系统可以在1小时内实现恢复。如果硬件损坏,应提供应急和替代方案。可扩展性系统功能扩充或使用单位增加时应不影响现有系统功能和结构。系统建设要求能够保护投资,当系统数据量和访问量增大而导致系统配置不能满足要求时,可以通过仅增加服务器等硬件进行解决,而不是在软件上做修改。安全性硬件设备的安全性。操作系统及支持软件的安全性(必须进行安全配置)。应用及数据的安全性。易用性要求管理用户具有一定的计算机知识和操作能力,按照数据流程进行操作兼容性本软件在windows系列操作系统上都可以正常运行。对硬件的要求也不高,一般PC机上均可。可移植性本系统可以移植到windows系统的计算机上,也可以移植到Linux系统的计算机上。3.4 数据需求(1)数据录入和处理的准确性和实时性数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。(2)数据的安全性 本系统为企业人事管理部门设计,因此只有特定的人事管理者才能对数据实现增,删,改,查等操作。未获授权人员不能进入系统。(3)数据的备份要定期对数据库中的数据进行全部或新增部分的备份工作,以保证在硬件出现故障或人为原因导致无法运行时是可以快速及时的还原到原来的正常状态。本章小结:本章主要介绍了本系统的设计目的已经系统的功能和数据需求第4章 系统概要设计4.1 系统运行平台设置本系统的运行平台设置分为硬件环境和软件环境。4.2 运行环境1硬件环境系统的硬件环境配置为处理器Pentium III800,内存1G,硬盘1G。2软件环境系统的软件环境配置为Windows XP操作系统,SQL Server 2005数据库,JDK1.5、MyEclipse5.1开发工具包和Tomcat6.0服务器。4.3 开发工具及技术简介以下内容是对本系统所采用的开发工具和技术进行的简单介绍。4.3.1 开发工具简介MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。在结构上,MyEclipse的特征可以分为7类:(1)J2EE模型;(2)WEB开发工具;(3)EJB开发工具;(4)应用程序服务器的连接器;(5)J2EE项目部署服务;(6)数据库服务;(7)MyEclipse整合帮助。对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。SQL Server 2005是一种采用T-SQL语言,基于C/S模式的关系型数据库管理系统。SQL Server 2005存储和管理数据有以下优点(1)每个数据项都存储在中央位置,所有用户都可在这个位置使用它们;(2)各个客户端上不单独存储数据项复本,从而消除了因用户不得不确保使用的信息相同所带来的麻烦。系统不需要确保使用当前值更新所有数据复本,因为中央位置仅有一个复本;(3) 可以在服务器上一次性定义业务和安全规则,并对所有的用户平等执行;(4)可以在数据库内通过使用约束、存储过程和触发器来强制执行规则。还可在服务器应用程序中执行规则,因为这些应用程序也是许多客户端访问的中央资源;(5)关系数据库服务器只返回应用程序所需要的数据,优化了网络流量;(6)最大程度地降低硬件的成本,由于数据不是存储在每个客户端上,客户端不必耗费磁盘空间来存储数据。客户端无需在本地增加管理数据的功能,同时,服务器不需将处理能力耗费在显示数据上;(7)可以配置服务器以优化检索数据所需的磁盘输入/输出容量,配置客户端以优化从服务器检索数据的格式;(8)可以将服务器存储在一个相对安全的位置,并配备如不间断电源供应系统这样的设备,这比完全保护每个客户端更经济; (9)维护任务(例如备份和恢复数据)得到简化,因为这些任务都可以集中在中央服务器上执行。4.3.2技术简介本系统采用MVC框架,MVC(Model-View-Controller)是一种设计 模式,它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成3个核心:模型层、视图层和控制层,它们分别担负不同的任务。其中视图层向用户显示相关的数据,并能接受用户的输入数据,但是它并不进行任何实际的业务处理。模型层表示业务数据和业务逻辑。控制层接收用户输入并调用模型和视图去完成用户的需求。本系统需要用到的Java相关技术有jsp技术、servlet技术、jdbc技术、SSH框架。其中,关键的技术难点在于Struts技术的运用。Struts技术是基于MVC的Web应用框架。在Struts框架中,模型层由实现业务逻辑的JavaBean组件构成,控制层由ActionServlet和Action来实现,视图层由一组JSP文件构成。4.4 数据库概念结构设计数据库表如下:4.4.1.登录表(user)属性类型主键/外键是否为空注释idchar(12)主键否用户IDpasswordchar(12)否密码namechar(8)否用户名4.4.2.管理员表(admin)属性类型主键/外键是否为空注释aidchar(12)外键(user)否管理员IDpasswordchar(12)否密码namechar(8)否用户名4.4.3.教师表(teacher)属性类型主键/外键是否为空注释tidchar(12)外键(user)否教师IDpasswordchar(12)否密码namechar(8)否用户名4.4.4.学生表(student)属性类型主键/外键是否为空注释sidchar(12)外键(user)否学生IDpasswordchar(12)否密码namechar(8)否用户名classchar(4)班级departmentnchar(20)系科majornchar(20)专业4.4.5.课程表(course)属性类型主键/外键是否为空注释cidchar(12)外键(user)否课程IDnamechar(8)否课程名capcitysmallint课程容量remainsmallint剩余容量classTimesmalldate上课时间classAdressnchar(20)上课地点startSCTimesmalldate开始选课时间endSCTimesmalldate结束选课时间4.4.6.选课表(selectCourse)属性类型主键/外键是否为空注释sidchar(12)外键(student)否学生IDcidchar(12)外键(course)否课程IDnamefloat否成绩4.4.7.评教表(judgeTeacher)属性类型主键/外键是否为空注释tidchar(12)外键(teacher)否教师IDcidchar(12)外键(course)否课程IDnamefloat否成绩4.5 数据库的完整性和安全性4.5.1 数据库的完整性数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。4.5.2 数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。4.6登录用到的触发器-当插入学生时,自动的在用户(admin)表中插入相应的学生编号且级别为1、密码为默认值create trigger insert_student on studentfor insertasbegindeclare id char(20),name char(20)select id=inserted.studentId,name=inserted.studentName from inserted;if not exists(select userId from admin where userId=id)insert into admin(userId,userJiBie,userName) values(id,1,name);endGO-当插入教师时,自动的在用户(admin)表中插入相应的教师编号且级别为3、密码为默认值create trigger insert_teacheron teacherfor insert as begindeclare id char(20),name char(20)select id=inserted.teacherId,name=inserted.teacherName from inserted;if not exists(select userId from admin where userId=id)insert into admin(userId,userJiBie,userName) values(id,3,name);endGO-当插入管理员时,自动的在用户(admin)表中插入相应的管理员编号且级别为5、密码为默认值create trigger insert_administratoron administratorfor insertasbegindeclare id char(20),name char(20)select id=inserted.adminId,name=inserted.adminName from inserted;if not exists(select userId from admin where userId=id)insert into admin(userId,userJiBie,userName) values(id,5,name);endGO4.7 数据库逻辑结构设计4.7.1数据库的需求分析依据课程管理系统的处理需求,对就数据表的设计及功能如下:(1)班级信息表:存放所有班级的基本信息。(2)课程信息表:存放所有课程的基本信息。(3)学生信息表:存放学生的基本信息。(4)教师信息表:存放教师的基本信息。(5)管理员信息表:存放订管理员的基本信息。(6)选课信息表:存放学生选课的基本信息。(7)评教表:存放学生评价教师的基本信息(8)信息表:存放一些登录信息的表。4.7.2数据库的逻辑设计4.7.2.1 实体与属性之间的关系E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。(1)模型中的实体相当于实体集、一个表,而不是单个实体或表中的一行。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。(2)属性是实体的性质。用椭圆框表示,与实体之间用一条线相连表的主码是关键属性,关键属性项加下划线。(3)各子系统模块中主键相同的字段之间存在着相互关联的关系。(4)在程序中实现对他们的完整性和一致性控制。4.7.2.2 E-R模型管理员学生课程教师选课N1N管理M管理NMID姓名班级系科专业学生ID课程ID密码成绩ID上课时间开始选课时间结束选课时间讲授N1密码ID课程名姓名密码ID姓名课程容量剩余容量管理MN上课地点系科4.8 数据流图及程序结构框图4.8.1、核心模块数据流图选课通知学生评教表教师管理员课程表选课处理评教处理生成网上选课名单选课成功选课时间未到或选课失败选课表设置选课时间选课成功评教成绩处理录入成绩成绩录入设置评教时间评教通知4.8.2、程序结构图系统采用MVC设计模式,M(Model)模型层用javabean表示业务逻辑连接操作数据库等,V(View)视图层用jsp表示各用户界面,C(Control)控制层用Servlet快速的控制反转功能调用M业务逻辑层。因此,系统程序结构为(由于空间有限只列出了部分类的属性和方法,其他都隐藏了):4.8.2.1.用户登录及其处理类图:4.8.2.2.接数据库类: 4.8.2.3.个性服务信息及其处理类图 : 4.8.2.4.管理员及其处理类图: 4.8.2.5.课程及其处理类: 4.8.2.6.学生及其处理类图: 4.8.2.7.教师及其处理类图: 4.8.2.8.评教及其处理类图: 4.8.2.9.选课及其处理类:第5章 程序源代码及其说明5.1、登录模块核心代码:说明:a)课程管理系统中系统安全性方面非常重要,防止数据库注入漏洞,用户名、密码、级别分开判断b)创建系统失效时间,进一步增强安全性。可在刚登录进系统时为每个用户创建一个Session,并设置失效时间。代码如:HttpSession hs=request.getSession();hs.setMaxInactiveInterval(600);/600秒即10分钟然后在每个页面判断Session是否为空,若为空则回到登录界面重新登录。/* * 数据库连接类 * author 王龙 11/06/10 * */public class ConnectDB private Connection ct=null;/* * 数据库连接方法 * author王龙 11/06/10 * return 连接Connection */public Connection getConnection()tryClass.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");ct=DriverManager.getConnection("jdbc:sqlserver:/localhost:1500;DatabaseName=EMS","zck", "583");catch(Exception e)System.err.println("-ConnectDB.getConnection()-");e.printStackTrace();return ct;/* * function:完成用户登录验证 * author 王龙 * param user:用户ID * param password:用户密码 * param grade:用户级别 * return 用户级别 */public int checkUser(String user, String password, String grade) int b = -1; /用户级别tryct=new ConnectDB().getConnection();/单写的ConnectDB类,其中getConnection()用于与数据库连接,以增加系统扩展性ps=ct.prepareStatement("select rtrim(userPassword), "+ "rtrim(userJiBie)" +" from admin where userId=?");ps.setString(1, user);rs=ps.executeQuery();if(rs.next()if(rs.getString(1).equals(password)if(rs.getString(2).equals("" + grade)b = Integer.parseInt(grade); /单独判断以防止注入数据库漏洞catch(Exception e)System.err.println("-checkUser出错-");e.printStackTrace();finallythis.close(); /单写的一个方法专用于关闭数据库连接return b;/* * fuction:用户关闭数据库连接 * author 王龙 */public void close()try if(rs!=null)rs.close();rs=null;if