版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸-第1章概论1.1课题背景在21世纪这个信息高度发达,并且高速流通的时代,计算机的普及以及计算机网络技术的应用,让大量普通人能够有机会接触到比以往更多的知识。建立一个自己的在线学习系统是十分必要的事情,这不仅能使更多的人享用宝贵的教育资料源,同时也对于提高学生自学能力,有相当大的帮助。随着互联网技术的飞速发展,利用网络进行学习已经成为时代发展的必然趋势,建立在线学习系统,尽可能提高优质学习的利用率,对实现人才培养,促进社会经济发展都能起到十分重要的作用。也可以引导用户主动年该学习,提高学习效率,更为学习双方提供一个进行写作学习和交流的平台。人口多而教育资源缺乏影响着我国受过高等教育的人在人口比例中所占的比重,这严重的制约了我国社会的发展与进步,这对于提高我国国民的文化科学素养十分不利。怎样才能让更多的人享有少部分人拥有的精品教育资源呢?对于这个问题,前人已经做了大量的研究。随着计算机技术以及计算机网络技术的飞速发展,人们终于找到了一条实现这种梦想的捷径,那就是寄希望于把各种教育资源移置到互联网上去,使得各地方的人都能够方便的获取到各种自己想要的知识,打破传统教育资源分配不均的限制,使得更多的人能够有机会获取到知识。近年来,学校学生的数量逐渐增加,人工书写学习的方式已经不能满足如此庞大的数据。为了更好的适应信息时代的高效性,一个利用计算机来实现学校在线学习系统管理工作的系统将必然诞生。基于这一点,设计了一个在线学习系统,用来就学生在线学习系统进行管理,以便在最短的时间内,高效准确的完成整个学习程。基于对上述的认识,收集相关资料和数据,查阅有关文献及技术参数,对学校的实际需求等方面进行了调研,发现目前所采用的手工记录的方法进行管理存在以下几个方面的弊端:对象范围广,数据存储不易;填写的数据多,且大量数据重复;不易存档,成千上万的信息和堆积如山的单据对管理人员来说是一个负担,需要大量的文档资料。鉴于以上种种原因,学校学习的管理急需一种软件来代替手工操作来管理数据资料。计算机技术在现代管理中的应用,使计算机成为领导者和管理人员应用现代技术的重要工具[1]。计算机辅助高校管理活动,可以极大地增强管理者采集、处理信息的能力,从而有利于管理者及时决策。计算机系统能根据管理过程的变化情况,将原始数据、资料等进行加工、保存,管理人员可以在解决具体问题需要信息资料时,随时进行检索查询,了解整个在线学习系统的动态情况,进行动态管理,从而有效的处理在线学习系统的管理工作,实现在线学习系统信息管理的自动化,提高办学效率。1.2课题意义与传统的教育相比,网络学习是一种全新的教育模式,它可以突破时间和空间的限制,让更多的学习者共享优秀的教育资源。网络学习既具有开放性、交互性、协作性和自主性等特点,有具有异步性、实时性、生动性、集成性和大容量等优势。因此在网络学习平台系统的建设中,单纯地构建各种功能单一的系统并不能完全满足网络学习平台建设的要求,只有那些对数据和信息进行有效组织,整合了多种业务,为用户提供个性化服务的系统才能充分地发挥精品课程学习平台的作用。建设在线学习网的根本目的是利用现代化的教育信息技术手段将相关学习知识内容上网并免费开放,以实现优质学习资源共享,提高学习质量和人才培养质量。1.3开发工具及技术1.3.1MyEclipseMyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开元产品的支持十分不错。MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,SQL,Hibernate。1.3.2ToMcatToMcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。可以这样认为,当在一台机器上配置好Apahce服务器,可利用它响应对HTML页面的访问请求。实际上ToMcat部分是Apache服务器的扩展,但它是独立运行的,所以当运行toMcat时,它实际上作为一个与Apache独立的进程单独运行的。1.3.3SqlServerSQL(StructuredQueryLanguage),结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。1.3.4JSPJSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端就是一个HTML文本,因此客户端只要有浏览器能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术的优点:(1)一次编写,到处运行。除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/.net的局限性是显而易见的。(3)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(4)多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(5)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。内部对象说明:request客户端请求,此请求会包含来自GET/POST请求的参数;response网页传回客户端的响应;pageContext网页的属性是在这里管理;session与请求有关的会话;applicationservlet正在执行的内容;out用来传送响应的输出流;config代码片段配置对象;pageJSP网页本身;exception针对错误网页,未捕捉的例外。1.3.5Servletservlet是在服务器上运行的小程序。这个词是在Javaapplet的环境中创造的,Javaapplet是一种当作单独文件跟网页一起发送的小程序,它通常用于在客户端运行,结果得到为用户进行运算或者根据用户互作用定位图形等服务。服务器上需要一些程序,常常是根据用户输入访问数据库的程序。这些通常是使用公共网关接口(CGI(CommonGatewayInterface))应用程序完成的。然而,在服务器上运行Java,这种程序可使用Java编程语言实现。在通信量大的服务器上,Javaservlet的优点在于它们的执行速度更快于CGI程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。(1)客户端发送请求至服务器端;(2)服务器将请求信息发送至Servlet;(3)Servlet生成响应内容并将其传给服务器。响应内容动态生成,取决于客户端的请求;(4)服务器将响应返回给客户端;Servlet看起来像是通常的Java程序。Servlet导入特定的属于JavaServletAPI的包。因为是对象字节码,可动态地从网络加载,可以说Servlet对Server就如同Applet对Client一样,但是,由于Servlet运行于Server中,它们并不需要一个图形用户界面。从这个角度讲,Servlet也被称为FacelessObject。一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。第2章可行性分析及总体设计原则2.1可行性分析可行性分析也称为可行性研究,是在调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会等方面进行分析和研究,以避免投资失误,保证新系统的开发成功[2]。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。下面将分别从技术、经济、社会三个方面对在线学习系统的建设进行分析和研究。2.1.1技术可行性根据在线学习网的系统功能、性能及实现系统的各种约束条件,根据新系统目标来衡量所需的技术是否具备,本系统是一个数据库管理和查询的系统,现有的技术已较为成熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发的。由以上分析可知,在线学习系统的开发在技术上是可行的2.1.2经济可行性学校具有信息化的处理设施,并且拥有支持本系统的应用平台。因此无需再投入资金购买其他设施。系统的开发基于本人对程序开发的实践学习而来,学校无需资金投入,并且软件开发过程投入的成本不高,因此开发经费完全可以接受。由以上分析可知,在线学习系统在经济上是可行的。2.1.3社会可行性本系统的社会可行性主要从法律因素、用户使用可行性两方面进行研究。(1)法律因素本系统是根据在线学习系统的实际情况开发研制的,是通过大量的调研得出的,系统的软件设计是在独立的环境下完成的,无可供抄袭的软件产品。(2)用户使用可行性本系统对用户的要求,除了需要具备在MicrosoftWindows平台上使用个人电脑的知识外,并不需要特别的技术能力。使用系统的管理员,需要具备对ToMcat服务器的使用能力,在投入使用前,无需对操作系统的人员进行培训。这样既减少投入成本又简化了操作环节。由以上分析可知,本系统具有社会可行性。2.2总体设计原则本系统为了设计、实现和后期维护的方便,以及系统用户使用的便利,所以必须采取一定的设计原则。其主要设计原则有:简单性:在实现系统的功能的同时,尽量让系统操作简单易懂,这对于一个系统来说是非常重要的。针对性:本系统设计是针对在线学习系统的需求定向开发设计,所以具有专业突出和很强的针对性。实用性:要求本系统能够满足在线学习系统的需求,因此具有良好的实用性。一致性:页面整体设计风格以及命名规则的一致性:整体页面布局和用图用色风格及变量、类名和其他元素的命名规则保持一致。功能一致性:完成同样的功能应该尽量使用同样的元素。元素风格一致性:界面元素的美观风格、摆放位置在同一个界面和不同界面之间都应该是一致的。变量命名规则的一致性:变量应该用统一的规则进行命名,做到任意变量均能从上下文推断其义。先进性:本系统采用JSP技术、SQLSERVER等被广泛采用系统开发技术和数据库,因此本设计具有良好的先进性,具体表现在其具有良好的可扩展性,可开发性。JavaServlet与JSP的相关功能JSP和Servlet的区别到底在应用上有哪些体现,很多人搞不清楚。简单的说,SUN首先发展出Servlet,其功能比较强劲,体系设计也很先进,只是,它输出HTML语句还是采用了老的CGI方式,是一句一句输出,所以,编写和修改HTML非常不方便。JavaServerPages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术,JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。后来SUN推出了类似于ASP的镶嵌型的JSP,把JSPTAG镶嵌到HTML语句中,这样,就大大简化和方便了网页的设计和修改。新型的网络语言如ASP,PHP,JSP都是镶嵌型的SCRIPT语言。这是JSP和Servlet区别的运作原理层面。从网络三层结构的角度看JSP和Servlet的区别,一个网络项目最少分三层:datalayer(数据层),businesslayer(业务层),presentationlayer(表现层)。当然也可以更复杂。Servlet用来写businesslayer是很强大的,但是对于写presentationlayer就很不方便。JSP则主要是为了方便写presentationlayer而设计的。当然也可以写businesslayer。写惯了ASP,PHP,CGI的朋友,经常会不自觉的把presentationlayer和businesslayer混在一起。根据SUN自己的推荐,JSP中应该仅仅存放与presentationlayer有关的东东,也就是说,只放输出HTML网页的部分。而所有的数据计算,数据分析,数据库联结处理,统统是属于businesslayer,应该放在JavaBEANS中。通过JSP调用JavaBEANS,实现两层的整合。实际上,微软前不久推出的DNA技术,简单说,就是ASP+COM/DCOM技术。与JSP+BEANS完全类似,所有的presentationlayer由ASP完成,所有的businesslayer由COM/DCOM完成。通过调用,实现整合。为什么要采用这些组件技术呢?因为单纯的ASP/JSP语言是非常低效率执行的,如果出现大量用户点击,纯SCRIPT语言很快就到达了他的功能上限,而组件技术就能大幅度提高功能上限,加快执行速度。另外一方面,纯SCRIPT语言将presentationlayer和businesslayer混在一起,造成修改不方便,并且代码不能重复利用。如果想修改一个地方,经常会牵涉到十几页CODE,采用组件技术就只改组件就可以了。Servlet是一个早期的不完善的产品,写businesslayer很好,写presentationlayer就很臭,并且两层混杂。所以,推出JSP+BEAN,用JSP写presentationlayer,用BEAN写businesslayer。SUN自己的意思也是将来用JSP替代Servlet。这是技术更新方面JSP和Servlet的区别。可是,这不是说,学了Servlet没用,实际上,你还是应该从Servlet入门,再上JSP,再上JSP+BEAN。强调的是:学了JSP,不会用JavaBEAN并进行整合,等于没学。大家多花点力气在JSP+BEAN上。我们可以看到,当ASP+COM和JSP+BEAN都采用组件技术后,所有的组件都是先进行编译,并驻留内存,然后快速执行。所以,大家经常吹的Servlet/JSP先编译驻内存后执行的速度优势就没有了。那么,为什么还用JSP+BEAN?因为Java实在前途远大。微软分拆后,操作系统将群雄并起,应用软件的开发商必定要找一个通用开发语言进行开发,Java一统天下的时机就到了。如果微软分拆顺利,从中分出的应用软件公司将成为Java的新领导者。目前的Java大头SUN和IBM都死气沉沉,令人失望。希望新公司能注入新活力。不过,新公司很有可能和旧SUN展开Java标准大战,双方各自制定标准,影响Java跨平台。简单分析了一下JSP和Servlet的区别和JavaWeb开发方面的发展。现在的机器速度越来越快,Java的速度劣势很快就可以被克服。太原理工大学毕业设计(论文)用纸第3章系统分析3.1业务流程分析在进行业务流程分析时,需要按照原有信息流动过程,逐个地调查分析所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各个环节需要的信息、信息来源、流经去向、处理方法、计算方法、提供信息的时间和信息形态(报告、报单、屏幕显示)等[4]。业务流程分析可以帮助开发者了解该业务处理过程,发现和处理系统调查工作中的错误和疏漏。业务流程分析是通过业务流程图来进行,即用一些规定的符号及连线来表示某个具体业务处理过程如图3.1。管理员管理员登录信息登录登录信息登录N登录与否登录与否会员信息管理题目信息管理学习资料管理视频管理公告管理会员信息管理题目信息管理学习资料管理视频管理公告管理题目信息资料信息视频信息公告信息会员信息题目信息资料信息视频信息公告信息会员信息图3.1业务流程图3.2数据流图数据流程是指数据在系统中产生、传输、加工处理、使用、存储的过程[6]。数据流程分析是把数据在现行系统内部的流动抽象的独立起来,舍去了具体组织机构、信息载体、处理工具、物质、材料等,单从数据流动过程来考查实际业务的数据处理模式。数据流程与数据流程分析是今后建立数据库系统和设计功能模块处理过程的基础。描述数据流程的工具是数据流程图以及其附带的数据字典、处理逻辑等图表。其中数据流程图是描述系统逻辑模型的主要工具,它以少数几种符号综合地反映出信息在系统中的流动、存储和传递。在业务流程分析的基础上,对数据流进行了分析,从数据流动过程考察了实际业务的数据处理模式。该系统的数据流图分为顶层、一层、二层。现行的顶层数据流图如图3.2所示。在线学习网管理员 系统信息在线学习网管理员 输入账号图3.2顶层数据流图具体分析第一层数据流图,该层数据流图如图3.3所示。图3.3第一层数据流图由于论文的篇幅限制不能一一列举数据流图,只给出了部分数据流图,其他的数据流图基本一致。太原理工大学毕业设计(论文)用纸第4章系统设计4.1系统功能设计系统设计是一个把软件需求转换成用软件系统表示的过程。通过对目标系统的分析和研究,做出了在线学习系统的总体规划,这是全面开发系统的重要基础。在对在线学习系统全面分析调查的基础上,制定出在线学习系统的总体规划。系统设计包括系统总体设计、系统详细设计、系统数据库设计、系统开发工具、开发技术和开发模式等。从数据流图出发,对数据流图进行分析,得出的层次化的模块结构图.在线学习系统前台功能模块图如图4-1所示。在线学习网前台在线学习网前台在线注册视频信息在线学习浏览学习参于自测在线注册视频信息在线学习浏览学习参于自测 图4-1前台功能模块图在线学习系统后台功能模块图如图4-2所示。在线学习网后台在线学习网后台留言信息管理学习资料学习视频修改密码会员信息自测题目留言信息管理学习资料学习视频修改密码会员信息自测题目公告信息会图4-2在线学习系统后台功能模块图4.2数据库设计数据库是本系统的核心和基础。它设计的好坏直接影响着整个系统的质量。数据是一切系统设计的基础,通俗地说,数据库设计就像高楼大厦的根基一样,如果设计的不合理、不完善,将在系统开发过程中,甚至到后期的系统维护、功能变更和功能扩充时,引起较多问题,严重时甚至要重新设计,重做大量已完成工作。数据库设计(DatabaseDesign)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。(1)需求分析调查和分析用户的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及它们在业务活动中交流的情况,确定用户对数据库系统的使用要求和各种约束条件等,形成用户需求规约。(2)概念设计对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中诸处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。(3)逻辑设计主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。(4)物理设计根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。4.2.1概念结构设计概念机构设计的任务是在需求分析阶段产生需求分析说明书的基础上按照特定的方法把他们抽象为一个不依赖与任何一个具体的的机器的数据模型,既概念模型,概念模型式设计在的直以来能够从复杂的细节中解脱出来。从而只集中在更重要的信息的组织机构和处理模型上。从数据需求分析中得出系统的实体属性图。管理员实体属性图如图4-3所示。用户ID用户ID登录帐号管理员管理员登录密码登录密码图4-3管理员实体属性图(2)会员信息实体属性图如图4-4所示。会员ID会员ID登录帐号会员信息会员信息会员姓名登录密码会员姓名登录密码图4-4会员实体属性图(3)学习资料实体属性图如图4-5所示。内容内容附件标题附件标题学习资料学习资料时间资料时间资料ID图4-5学习资料实体属性图(4)公告信息实体属性图如图4-6所示。标题内容标题内容公告信息公告信息公告ID公告ID发布时间图4-6公告信息实体属性图(5)留言信息实体属性图如图4-7所示。标题内容标题内容留言信息留言信息留言时间留言ID留言时间留言ID图4-7留言信息实体属性图(6)视频信息实体属性图如图4-8所示。附件内容附件内容标题标题视频信息视频信息发布时间视频ID发布时间视频ID图4-8视频信息实体属性图4.2.2数据库表设计(1)管理员信息表(t_adMin)管理员信息表主要用于系统管理员的信息,主要字段包括:编号、登陆账号、登陆密码。表4.1管理员信息表(t_adMin)字段名数据类型字段描述长度主键userIdInt编号10√userNaMevarchar登陆账号50userPwvarchar登陆密码50(2)学习资料信息表(t_doc)学习资料信息表主要用于管理员发布的学习资料信息,主要字段包括:编号、标题、介绍等。表4.2学习信息表(t_doc)字段名数据类型字段描述长度主键idInt编号10√titlevarchar标题50contentvarchar内容50fujianvarchar附件50fujianYuanshiMingvarchar附件原始名50shijianvarchar发布时间50(3)视频信息表(t_shipin)学习视频信息表主要用于管理员发布的视频信息,主要字段包括:编号、视频标题、附件等。表4.3学习视频信息表(t_shipin)字段名数据类型字段描述长度主键IdInt编号10√titlevarchar标题50contentvarchar内容50fujianvarchar附件50shijianvarchar发布时间50(4)会员信息表(t_user)学生表主要存储学生的基本信息,主要字段包括:ID、学号、姓名、性别、年龄、登录帐号、登录密码等。表4.4会员信息表(t_huiyuan)字段名数据类型字段描述长度主键idInt编号10√loginnaMevarchar账号50loginpwvarchar密码50xingMingvarchar姓名50(5)自测题目信息表(t_tiMu)自测题目信息表主要存储测试题目的基本信息,主要字段包括:ID、学号、姓名、性别、年龄、登录帐号、登录密码等。表4.5自测题信息表(t_zct)字段名数据类型字段描述长度主键idInt编号10√naMevarchar题目名称50xuanxiangavarchar选项A500xuanxiangbvarchar选项B500xuanxiangcvarchar选项C500xuanxiangdvarchar选项D500daanvarchar题目答案500fenshuInt题目分数5(6)公告信息表(t_gonggao)公告信息表主要存储管理员发布的公告信息,主要字段包括:ID、公告标题、公告内容、发布时间等。表4.6公告信息表(t_gonggao)字段名数据类型字段描述长度主键idIntID10√titlevarchar公告标题50contentvarchar公告内容5000shijianvarchar发布时间50(7)留言信息表(t_liuyan)公告信息表主要存储学生和老师的留言信息,主要字段包括:ID、留言标题、留言内容、留言时间等。表4.7留言信息表(t_liuyan)字段名数据类型字段描述长度主键idIntID10√titlevarchar公告标题50contentvarchar公告内容5000shijianvarchar发布时间50第5章系统实现5.1管理员登录图5.1系统登陆页面设计 publicStringlogin(StringuserNaMe,StringuserPw,intuserType) { Stringresult="no"; if(userType==0)//系统管理员登陆 { Stringsql="select*froMt_adMinwhereuserNaMe=?anduserPw=?"; Object[]paraMs={userNaMe,userPw}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); try { ResultSetrs=Mydb.getRs(); booleanMark=(rs==null||!rs.next()?false:true); if(Mark==false) { result="no"; } else { result="yes"; TAdMinadMin=newTAdMin(); adMin.setUserId(rs.getInt("userId")); adMin.setUserNaMe(rs.getString("userNaMe")); adMin.setUserPw(rs.getString("userPw")); WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); session.setAttribute("userType",0); session.setAttribute("adMin",adMin); } rs.close(); } catch(SQLExceptione) { SysteM.out.println("登录失败!"); e.printStackTrace(); } finally { Mydb.closed(); } }5.2管理员功能模块5.2.1公告信息管理(1)公告信息录入1.描述:管理员输入公告相关正确信息后点击录入按钮,如果是没有输入完整的公告信息,都会给出相应的错误提示,不能录入成功。输入数据都通过forM表单中定义的方法onsubMit="returncheckForM()"来检查,checkForM()函数中是各种的校验输入数据的方式。对于公告管理中的标题、内容应相应的填写,时间由本地时间提供不需要自己填写,将内容填写完后提交,只能在管理员见面进行修改,不能在用户见面进行修改。2.程序效果图如下图5.12所示。图5.2公告信息录入(2)公告信息管理1.描述:管理员点击左侧的菜单“公告信息管理”,页面跳转到公告信息管理界面,调用后台的action类查询出所有的公告信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,通过查询数据库中的数据对公告中的信息进行显示并有jsp见面显示出公告信息。2.程序效果图如下图5.13所示。图5.3公告信息管理页面公告信息管理关键代码: publicvoidgonggaoAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTiMe()); Stringtitle=req.getParaMeter("title"); Stringcontent=req.getParaMeter("content"); Stringshijian=newDate().toLocaleString(); Stringsql="insertintot_gonggaovalues(?,?,?,?)"; Object[]paraMs={id,title,content,shijian}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","gonggao?type=gonggaoMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoidgonggaoDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParaMeter("id"); Stringsql="deletefroMt_gonggaowhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","gonggao?type=gonggaoMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoidgonggaoMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListgonggaoList=newArrayList(); Stringsql="select*froMt_gonggao"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tgonggaogonggao=newTgonggao(); gonggao.setId(rs.getString("id")); gonggao.setTitle(rs.getString("title")); gonggao.setContent(rs.getString("content")); gonggao.setShijian(rs.getString("shijian")); gonggaoList.add(gonggao); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("gonggaoList",gonggaoList); req.getRequestDispatcher("adMin/gonggao/gonggaoMana.jsp").forward(req,res); }(3)公告详细信息查看1.描述:先是点击公告信息管理,页面跳转到公告信息管理界面,浏览所有的公告信息,点击要查看的公告信息,弹出公告信息详细信息界面。(4)公告信息删除1.描述:先是点击公告信息管理,页面跳转到公告信息管理界面,浏览所有的公告信息,点击要删除的公告信息,弹出的确定对话框,即可删除该公告信息。5.2.2留言信息管理(1)在线留言信息管理1.描述:管理员点击左侧的菜单“在线留言信息管理”,页面跳转到在线留言信息管理界面,调用后台的action类查询所有在线留言信息。并对相应的留言进行删除和修改,然后在action中,将相应的Id号发给数据库并进行del删除,及物理删除。这样就讲留言板的信息删除了。2.程序效果图如下图5.14所示。图5.4在线留言信息管理在对action的操作中先得到Id号然后对数据库中的操作将路径传给相应的表格,删除Id号后对刷新jsp页面并对其更新。这样就把留言板删除了,如果要添加留言,输入数据都通过forM表单中定义的方法onsubMit="returncheckForM()"来检查,checkForM()函数中是各种的校验输入数据的方式。在线留言信息管理关键代码: publicvoidliuyanDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParaMeter("id"); Stringsql="deletefroMt_liuyanwhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","liuyan?type=liuyanMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoidliuyanMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListliuyanList=newArrayList(); Stringsql="select*froMt_liuyan"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tliuyanliuyan=newTliuyan(); liuyan.setId(rs.getString("id")); liuyan.setTitle(rs.getString("title")); liuyan.setContent(rs.getString("content")); liuyan.setShijian(rs.getString("shijian")); liuyan.setUser_id(rs.getString("user_id")); liuyan.setUser_naMe(liuService.getUserNaMe(rs.getString("user_id"))); liuyanList.add(liuyan); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("liuyanList",liuyanList); req.getRequestDispatcher("adMin/liuyan/liuyanMana.jsp").forward(req,res); }(2)在线留言信息删除1.描述:先是点击在线留言信息管理,页面跳转到在线留言信息管理界面,浏览所有的在线留言信息,点击要删除的在线留言信息,即可删除该在线留言信息。5.2.3学习资料管理(1)资料信息录入1.描述:管理员输入资料相关正确信息后点击录入按钮,如果是没有输入完整的资料经理信息,都会给出相应的错误提示,不能录入成功。输入数据都通过forM表单中定义的方法onsubMit="returncheckForM()"来检查,checkForM()函数中是各种的校验输入数据的方式。2.程序效果图如下图5.15所示。图5.5资料信息录入(2)资料信息管理1.描述:管理员点击左侧的菜单“资料管理”,页面跳转到资料管理界面,调用后台的servlet类查询所有资料信息。2.程序效果图如下图5.16所示。图5.6资料信息管理资料管理关键代码: publicvoiddocAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTiMe()); Stringtitle=req.getParaMeter("title"); Stringcontent=req.getParaMeter("content"); Stringfujian=req.getParaMeter("fujian"); StringfujianYuanshiMing=req.getParaMeter("fujianYuanshiMing"); Stringshijian=req.getParaMeter("shijian"); Stringdel="no"; Stringsql="insertintot_docvalues(?,?,?,?,?,?,?)"; Object[]paraMs={id,title,content,fujian,fujianYuanshiMing,shijian,del}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","doc?type=docMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoiddocDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParaMeter("id"); Stringsql="deletefroMt_docwhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","doc?type=docMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoiddocMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListdocList=newArrayList(); Stringsql="select*froMt_docwheredel='no'"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tdocdoc=newTdoc(); doc.setId(rs.getString("id")); doc.setTitle(rs.getString("title")); doc.setContent(rs.getString("content")); doc.setFujian(rs.getString("fujian")); doc.setFujianYuanshiMing(rs.getString("fujianYuanshiMing")); doc.setShijian(rs.getString("shijian")); docList.add(doc); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("docList",docList); req.getRequestDispatcher("adMin/doc/docMana.jsp").forward(req,res); }(3)资料信息删除1.描述:先是点击资料管理,页面跳转到资料管理界面,浏览所有的资料信息,点击要删除的资料,弹出的确定对话框,即可删除该资料信息。5.2.4视频信息管理(1)视频信息录入1.描述:管理员输入视频相关正确信息后点击录入按钮,如果是没有输入完整的视频经理信息,都会给出相应的错误提示,不能录入成功。输入数据都通过forM表单中定义的方法onsubMit="returncheckForM()"来检查,checkForM()函数中是各种的校验输入数据的方式。2.程序效果图如下图5.17所示。图5.7视频信息录入(2)视频信息管理1.描述:管理员点击左侧的菜单“视频管理”,页面跳转到视频管理界面,调用后台的servlet类查询所有视频信息。2.程序效果图如下图5.18所示。图5.18视频信息管理视频管理关键代码: publicvoidshipinAdd(HttpServletRequestreq,HttpServletResponseres) { Stringid=String.valueOf(newDate().getTiMe()); Stringtitle=req.getParaMeter("title"); Stringcontent=req.getParaMeter("content"); Stringfujian=req.getParaMeter("fujian"); StringfujianYuanshiMing=req.getParaMeter("fujianYuanshiMing"); Stringshijian=req.getParaMeter("shijian"); Stringdel="no"; Stringsql="insertintot_shipinvalues(?,?,?,?,?,?,?)"; Object[]paraMs={id,title,content,fujian,fujianYuanshiMing,shijian,del}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","shipin?type=shipinMana");StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoidshipinDel(HttpServletRequestreq,HttpServletResponseres) { Stringid=req.getParaMeter("id"); Stringsql="deletefroMt_shipinwhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); Mydb.doPstM(sql,paraMs); Mydb.closed(); req.setAttribute("Message","操作成功"); req.setAttribute("path","shipin?type=shipinMana"); StringtargetURL="/coMMon/success.jsp"; dispatch(targetURL,req,res); } publicvoidshipinMana(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListshipinList=newArrayList(); Stringsql="select*froMt_shipinwheredel='no'"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tshipinshipin=newTshipin(); shipin.setId(rs.getString("id")); shipin.setTitle(rs.getString("title")); shipin.setContent(rs.getString("content")); shipin.setFujian(rs.getString("fujian")); shipin.setFujianYuanshiMing(rs.getString("fujianYuanshiMing")); shipin.setShijian(rs.getString("shijian")); shipinList.add(shipin); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("shipinList",shipinList); req.getRequestDispatcher("adMin/shipin/shipinMana.jsp").forward(req,res); }(3)视频信息删除1.描述:先是点击视频管理,页面跳转到视频管理界面,浏览所有的视频信息,点击要删除的视频,弹出的确定对话框,即可删除该视频信息。5.2.5修改个人密码1.描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。对于管理员。2.程序效果图如图5.21所示。图5.8修改密码5.3前台网站功能模块5.3.1网站首面1.描述:前台首页是浏览者打开一个网站后第一眼看到的网页,网站能不能吸引浏览者,在很大程度上取决于首页做得怎么样。首页包含内容虽然丰富但不杂乱,色彩搭配要合理,整体风格要独特。尤其是对于学习系统还要对网页的设计有学习的氛围,让人有学习的动力。2.程序效果图如下图5.22所示。图5.9网站首页5.3.2学习资料下载1.描述:点击网站主页菜单的学习资料,进入学习资料信息列表,点击资料信息浏览具体内容,并可以下载。2.程序效果图如下图5.23所示。图5.10学习资料下载对学习资料的下载首先用户找到相应的学习资源在学习视频模块中然后点击下载,通过action行为属性找到对于连接的URL属性中的地址,然后到数据库中查找对于的id号,通过在服务器中查找视频资源的源文件,并通过jsp页面现实下载文件对其下载,下载过程中不对数据库和服务器的资源修改,只是对其进行拷贝。学习资料下载关键代码: publicvoiddocAll(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListdocList=newArrayList(); Stringsql="select*froMt_docwheredel='no'"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tdocdoc=newTdoc(); doc.setId(rs.getString("id")); doc.setTitle(rs.getString("title")); doc.setContent(rs.getString("content")); doc.setFujian(rs.getString("fujian")); doc.setFujianYuanshiMing(rs.getString("fujianYuanshiMing")); doc.setShijian(rs.getString("shijian")); docList.add(doc); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("docList",docList); req.getRequestDispatcher("qiantai/doc/docAll.jsp").forward(req,res); } publicvoiddocDetailQian(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { Stringid=req.getParaMeter("id"); Tdocdoc=newTdoc(); Stringsql="select*froMt_docwhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); rs.next(); doc.setId(rs.getString("id")); doc.setTitle(rs.getString("title")); doc.setContent(rs.getString("content")); doc.setFujian(rs.getString("fujian")); doc.setFujianYuanshiMing(rs.getString("fujianYuanshiMing")); doc.setShijian(rs.getString("shijian")); rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("doc",doc); req.getRequestDispatcher("qiantai/doc/docDetailQian.jsp").forward(req,res); }5.3.3学习视频下载1.描述:点击网站主页菜单的学习视频,进入学习视频信息列表,点击视频标题信息超链接,可以在线观看视频,登录系统后可以下载该视频。2.程序效果图如图5.11学习视频下载视频下载的过程:首先用户找到相应的视频资源在学习视频模块中然后点击下载,通过action行为属性找到对于连接的URL属性中的地址,然后到数据库中查找对于的id号,通过在服务器中查找视频资源的源文件,并通过jsp页面现实下载文件对其下载,下载过程中不对数据库和服务器的资源修改,只是对其进行拷贝。学习视频下载关键代码: publicvoidshipinAll(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { ListshipinList=newArrayList(); Stringsql="select*froMt_shipinwheredel='no'"; Object[]paraMs={}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); while(rs.next()) { Tshipinshipin=newTshipin(); shipin.setId(rs.getString("id")); shipin.setTitle(rs.getString("title")); shipin.setContent(rs.getString("content")); shipin.setFujian(rs.getString("fujian")); shipin.setFujianYuanshiMing(rs.getString("fujianYuanshiMing")); shipin.setShijian(rs.getString("shijian")); shipinList.add(shipin); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } Mydb.closed(); req.setAttribute("shipinList",shipinList); req.getRequestDispatcher("qiantai/shipin/shipinAll.jsp").forward(req,res); } publicvoidshipinDetailQian(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { Stringid=req.getParaMeter("id"); Tshipinshipin=newTshipin(); Stringsql="select*froMt_shipinwhereid=?"; Object[]paraMs={id}; DBMydb=newDB(); try { Mydb.doPstM(sql,paraMs); ResultSetrs=Mydb.getRs(); rs.next(); shipin.setId(rs.getString("id")); shipin.setTitle(rs.getString("titl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年辽宁客运资格证考些什么
- 2024年湖南考客运资格证实操考的是什么
- 2024年昭通小型客运从业资格证试题答案
- 2024年果洛小型客运从业资格证2024年考试题
- 2024年荆门客运上岗证模拟考试题库
- 2024年杭州客运驾驶员从业资格证继续培训教育
- 公司年度计划书
- 公司建议书范文集锦6篇
- 琼海胡椒团体标准征求意见稿
- 2024-2025学年山东省德州市夏津县统编版三年级上册期中考试道德与法治试卷(无答案)
- 蚕豆根尖细胞微核实验报告
- 大理石检测报告
- 2022年深圳市地铁集团有限公司招聘笔试题库及答案解析
- (精选word)高支模安全监理巡视检查记录表
- 《分数四则混合运算》-完整版PPT
- 西师大版数学六年级上册:五单元《图形的放大与缩小》教学设计
- 高校教师岗前培训题库完整版
- 北师大版数学二年级上册《有多少张贴画》
- 食堂食品加工流程图
- 四年级数学上册课件-8. 田忌赛马(37)-人教版(共14张PPT)
- 妇产科课件-胎儿窘迫
评论
0/150
提交评论