• 3.49 MB
  • 2022-04-22 13:37:06 发布

基于WEB的Java精品课程网站的设计与实现毕业论文.doc

  • 47页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于WEB的Java精品课程网站的设计与实现毕业论文目录摘 要1ABSTRACT21绪论41.1系统开发背景41.2系统当前现状41.3精品课程网站研究的意义51.4本文的主要工作52系统所用技术概述72.1Java理论基础72.2jsp简介82.2.1什么是JSP82.2.2JSP技术原理92.2.3JSP运行机制102.3Servlet简介102.3.1什么是Servlet102.3.2Servlet技术的特点102.3.3Servlet的生命周期112.4Struts简介112.4.1什么是Struts112.4.2Struts框架的主要组件和原理112.5CSS简介122.5.1什么是CSS122.5.2CSS分类132.5.3CSS的特点132.6Access132.7XML的基本概念153系统的分析设计与实现183.1系统架构设计概述183.1.1三层架构183.1.2MVC简介193.1.3三层架构的优点213.1.4数据访问层213.2系统需求分析223.2.1系统定义223.2.2功能需求223.2.3数据需求223.3系统模块设计23 3.4数据库设计243.4.1数据库设计概述243.4.2数据库概念结构设计243.5系统详细设计与实现253.5.1网站首页253.5.2课程介绍273.5.3课程内容283.5.4网上课堂303.5.5常用下载353.5.6参考资料363.5.7后台管理374系统的难点及解决方案444.1文件上传问题444.2树形菜单的设计445系统总结与展望465.1系统的总结465.2系统的展望46致  谢47参考文献48 1绪论1.1系统开发背景人类社会的发展与知识的传递有着一种必然的联系,教育是人类传递知识的最直接最有效的方式。在21世纪这个信息高度发达,并且高速流通的时代,计算机的普及以及计算机网络技术的应用,让大量普通人能够有机会接触到比以往更多的知识。作为一个以传播知识为主要职能的机构——学校建立一个自己的精品课程网站是十分必要的事情,这不仅是能使更多的人享用宝贵的教育资料源,同时也对于提升学校自身的知名度,提高学生自学能力,有相当大的帮助。1.2系统当前现状在世界范围内来看,有关精品课程网站研究一直都在进行并且不断取得进步,特别是西方发达国家,他们在精品课程的理论研究与实际运用方法积累了大量的经验,虽然我们中国国内在精品课程网站这一方面的研究起步较晚,但我们同样也取得了大量丰硕的成果。各个高校相继创建了各自的精品课程网站,清华大学、人民大学、北京大学等一大批知名学府利用自身的资源优势,引领中国国内精品课程网站的发展方面。政府的大力支持,各高等学府的积极配合,使得我们国内精品课程网站的研究取得了不俗的成就。1.3精品课程网站研究的意义 根据我国教育水平的现状,尽管我国的现代教育水平在新中国成立之后取得了巨大的进步,但是相对于西方发达国家而言我们还十分落后。人口多而教育资源缺乏影响着我国受过高等教育的人在人口比例中所占的比重,这严重的制约了我国社会的发展与进步,这对于提高我国国民的文化科学素养十分不利。怎样才能让更多的人享有本因只有一少部分人才能享有的教育资源呢?对于这个问题,前人已经做了大量的研究。随着计算机技术以及计算机网络技术的飞速发展,人们终于找到了一条实现这种梦想的捷径,那就是寄希望于把各种教育资源移置到互联网上去,使得各地方的人都能够方便的获取到各种自己想要的知识,打破传统教育资源分配不均的限制,使得更多的人能够有机会获取到知识,这就是精品课程网站研究的实现意义。1.1本文的主要工作如果从一个较低层次来理解什么是精品课程网站。那么首先它是一个网站,因此它必须具备一个网站所应该拥有开放性、可用性、安全性、可维护性等属性。要做到这些,就必须要求在设计与实现过程中更多的去了解与网络有关的知识。其次,精品课程网站设计与实现的主要目的是传播知识,因此它必须具备一些与教育有关的功能,比如考试、答疑等功能。作者认为精品课程网站应是一个与时代接轨的产物,因此它还需要具备这一个时代所必须的一些特性,比如信息化、高效、远程和资源共享等特点。因此,本文的主要目的是分析说明精品课程网站研究应具有的各项功能以及其实现过程。本文的组织结构是这样安排的:“第1章绪论”,从系统开发背景、系统当前现状、国内外对精品课程网站的研究现状以及精品课程研究的意义等方面给大家做一个简要的介绍;“第2章系统所用技术说明与设计”,将着重介绍精品课程的发展概况,技术介绍;“第3章精品课程网站的实现”,重点介绍如何实现此精品课程网站各功能系统的需求分析,精品课程网站各个功能的设计以及系统的执行流程;“结论”部分对整篇文章进行总结分析,对此精品课程网站的优点与缺点进行简单总结。 系统所用技术概述2.1Java理论基础Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。(1)简单Java的风格类似于C++,并且摒弃了C++中容易引发程序错误的地方,如指针和内存管理。此外Java提供了丰富的类库。(2)面向对象面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的。Java支持静态和动态风格的代码继承及重用。(3)分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。(4)健壮Java致力于检查程序在编译和运行时的错误。Java自己操纵内存减少了内存出错的可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。(5)安全Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。(6)结构中立为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。 (7)可移植的Java的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。(8)高性能Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。(9)多线程Java支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。(10)动态Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。2.1jsp简介JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。JavaServlet是jsp技术的基础,而且大型的web应用程序的开发需要JavaServlet和jsp配合才能完成。Jsp具备了Java技术的简单易用,完全面向对象,具有平台无关性且安全可靠,主要面向Internet的所有特点。2.2.1什么是JSPJSP(JavaServerPages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。2.2.1JSP技术原理JSP和客户端的交互是通过HTTP协议实现的,这个过程主要分为以下4个步骤。(1)客户端和服务器建立连接(2)客户端发送请求(3)服务器发出响应(4)关闭连接浏览器Web服务器将数据发送到服务器向表单中输入数据,单击【提交】按钮内容返回到浏览器显示服务器端产生的响应编译JSP(如果第一次调用),解析JSP,生成动态内容图2-1客户端请求和响应的过程 2.2.1JSP运行机制所有的JSP程序在首次载入时都被翻译成Servlet文件,然后在运行,这个工作主要有jsp引擎来完成。当第一次运行一个jsp页面时,jsp引擎会完成以下操作:将jsp文件翻译成Servlet文件(以.Java为后缀),它是一个完整的Java应用程序。Jsp引擎调用Java编译器编译Servlet文件得到可执行的代码文件(以.class为后缀)。Jsp引擎调用Java虚拟机解释执行class文件,并将运行结果返回给客户端浏览器。服务器将运行结果以HTML形式作为响应返回给客户端浏览器。2.1Servlet简介2.3.1什么是ServletServlet是一种独立于平台和协议的服务器端的Java应用程序,可以生成动态的Web页面。它担当Web浏览器或其他Http客户程序发出请求,与HTTP服务器上的数据库或应用程序之间的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。2.3.2Servlet技术的特点Servlet带给开发人员的最大好处是它可以处理客户端传来的Http请求,并返回一个响应。Servlet是一个Java的类,Java语言能实现的功能,Servlet基本上都能实现。Servlet有以下优势。(1)可移植性(2)功能强大(3)安全(4)简洁 (5)集成(6)模块化(7)扩展性和灵活性(8)高效耐久2.3.1Servlet的生命周期Servlet生命周期定义了一个Servlet如何被加载,初始化,以及它怎样接收请求,响应请求,提供服务。Servlet生命周期如图所示。不存在Servlet实例容器装载Servlet不存在Servlet实例初始化Servlet对应Servlet的init方法调用service方法对应Servlet的service方法结束Servlet对应的Servlet的destory方法Servlet生命周期图2-2Servlet的生命周期2.1Struts简介2.4.1什么是StrutsStruts是一个开源的Javaweb框架。它很好的实现了MVC(模型,视图和控制器)设计模式。通过一个配置文件,它把各个层面的应用组件联系起来,使组件在程序层面上联系较少,耦合度较低,这就大大提高了应用程序的可维护性和可扩展性。2.4.2Struts框架的主要组件和原理Struts控制器组件主要包括:充当Struts框架的中央控制器的ActionServlet组件、充当每个子应用模块的请求处理器的 RequestProcessor组件、负责处理一项具体的业务的Action组件。Struts 的另一特点是使用ActionFormBean,ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。视图JSP控制器ActionServletActionForm模型JavaBeanActionStruts-config.xml图2-3Struts工作原理图2.1CSS简介CSS(层叠样式表)是用来进行网页风格设计的,它简化并扩展了HTML中的各种标记,使得各个标记的属性更具有一般性和通用性,大大提高了HTML开发的效率.在制作网页时采用CSS技术,可以有效地对页面的布局,字体,颜色,背景和其他效果实现更加精确的控制,只要对相应的代码作一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。2.5.1什么是CSS CSS是CascadingStyleSheet的缩写,可以译成“层叠样式表”或“级联样式表”。2.5.1CSS分类CSS中,Cascading是“层叠”的意思,也就是说在同一个Web文档中可以有多个样式表存在,这些样式表根据所在的位置,拥有不同的优先级,优先级越高,就会在最后显示时被采用。从样式表插入的形式看可以分为3种。(1)内联式样式表;(2)嵌入式样式表;(3)外部式样式表;2.5.2CSS的特点CSS是用来扩展HTML的,而不是用来替换HTML的,也就是说CSS不能脱离HTML,它只是一项辅助工具。除了可扩展HTML的样式设定外,CSS使得网页的设计与维护更加高效,这主要表现在以下几个方面。(1)减少图形文件的使用(2)集中管理样式信息(3)设定共享样式(4)将样式分类使用2.1AccessAccess作为最基本最常用的数据库技术,因其操作简单,可用性强,对当前系统配置要求低而被广泛利用。利用ADO访问数据库ADO(ActiveXDataObjects)是一种操作Microsoft所支持的数据库的新技术。在ASP中,ADO可以看作是一个服务器组件(ServerComponent),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。本文中个性化页面的实现便大量地用到了ADO技术。具体的操作步骤可以归纳为以下几步:  1.创建数据库源名(DSN)   2.创建数据库链接(Connection)  3.创建数据对象  4.操作数据库  5.关闭数据对象和链接每一步的作法如下:一、创建数据源名DSN(DateSourceName)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序中对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQLServer的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁。二、创建数据库链接(Connection)链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:setConn=Server.createObject(“ADOBD.CONNECTION”)这条语句创建了链接对象Conn,接下来:connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data.Source="&Server.MapPath(""&db&"")conn.Openconnstr这条语句打开链接,用到了DSN,本例为“connstr”。以上两个步骤缺一不可,因为链接对象的创建与打开是两回事,只有打开了才真正可以使用。 三、创建数据对象(RecordSet)ADO中的数据对象通常保存的是查询结果。RecordSet是ADO中最复杂的对象,有许多属性和方法。RecordSet保存的是一行行的记录,并标有一个当前记录。以下是创建方法:SetRecordSet=Conn.Execute(sqtStr)这条语句创建并打开了对象RecordSet,其中Con是先前创建的链接对象,rs是一个字串,代表一条标准的SQL语句。例如:rs=“SELECT*FROMshop_books”SetRecordSet=mConn.Execute(rs)这条语句执行后,对象RecordSet中就保存了表tab1中的所有记录。四、操作数据库我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象或进行插入、删除等操作。例如:  rs=“INSERTINTOtab1VALUES(1,2)”  mConn.Execute(rs)  /执行插入操作五、关闭数据对象和链接对象在使用了ADO对象之后要关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。  RecordSet.close  SetRecordSet=Nothing  /关闭创建的数据对象  mConn.close  SetmConn=Nothing  /关闭创建的链接对象2.1XML的基本概念简单地说,XML规范是一组由WordWideWebConsortium(W3C,万维网联盟)定义的规则,用于用普通的文本描述结构化的数据[7] 。与HTML一样,XML是一种标记语言,建立在放在尖括号中的标记的基础上,它也是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)的一个子集。与HTML一样,XML的文本本质使其数据具有高度的可移植性和广泛的可部署性。另外,XML文档可以在任意标准文本编辑器中创建和编辑。但与HTML不同的是,XML的标记集并不是固定的,它是一种元语言,允许创建其他标记语言。正是这种定义新标记的能力,使XML成为一种真正的可扩展语言。与HTML的另一个区别是,HTML主要用于显示,而XML主要考虑的是数据及其结构。因此,XML在其语法规则上要严格得多,或有“良好的格式”。在XML1.0标准中说明了XML的制定目标:(1)XML文档应该具有良好的可读性,并且比较清晰。(2)XML设计的置标语言应该真实、简洁。尽管因为XML出现时间不长,相应的编辑浏览工具不成熟,而且应用有限,但随着时间的推移,XML将成为网络开发和数据库的重要技术。XML具有如下一些特点:(1)内容与形式分离:在HTML中,数据内容和表现形式是混在一起的,这样当改变数据的表现形式时,更新文档的工作量很可观。对于XML文档而言,标记是包含信息的,比如关键字、继承关系等,这些信息对于数据的检索、描述起着巨大的简化作用。当只想改变数据的表现形式时,我们只需要修改从XML文档中分离出的用于数据表现的样式单就可以了。(2)良好的可扩展性:XML允许程序制定自己的标记集,满足自己的需要。同样,一个行业或某一特定人群也可以制定在自己范围内的通用标记集。这样,XML可以轻松地适应每一个领域而无需对语言本身作大修改。另外,要说明的是XML的数据定义也是与数据本身分离,独立存在的。这样使XML的标记集不断扩大,对于有特殊要求的人,他们可以选择需要的标记集。 (3)良好的移植性:XML语言可以定义各种数据,向文本、图像、声音等。这些数据往往有很多种不同的格式,使得数据不能在各种系统之间交流,或使用额外的转换软件来实现跨平台的交流。XML的这个特性使得只要交换数据的系统能够处理一种格式的文件,即XML文档,就能处理由XML标记的各种数据,从而实现了不同格式数据的跨平台交换。(4)良好的自描述性:良好的自描述性使得XML数据可以被不同的应用程序分析处理。并且XML的自描述性可以使一篇XML文档被人理解。通过标记、元素之间的关系,数据要表达的内容就会一清二楚。 系统的分析设计与实现3.1系统架构设计概述系统架构就是一个软件系统从整体到部分的最高层次的划分。其对系统的开发设计与后期维护和扩展有很重要作用。系统架构设计除了要实现用户要求的主要功能外,还应该实现以下的目标:(1)可扩展性:满足用户对新增功能的需求;(2)安全性:保护用户的数据是一个系统必须面对的问题;(3)可定制性:允许根据不同用户的需求进行调整;(4)稳定性:软件运行时保持稳定的性能,才可以提高用户的工作效率。系统架构设计主要包括:应用软件系统架构、系统集成架构设计、系统接口设计等。3.1.1三层架构三层结构最简单的说就是将系统分为表层、中间层和底层。表层就是与用户打交道,中间层就是传递用户的参数给底层,然后再返回底层处理的结果给表层。随着三层架构越来越多的应用,软件研发者细分了三层结构。图3-1是一个浏览器/服务器(B/S)结构的三层细分架构应用系统。Browse表示层功能层数据层ServerHTML服务Cookie服务安全处理缓冲处理任务处理业务实体类数据操作类 图3-1B/S模式三层结构图从图3-1中我们可以知道,整个应用系从处理功能上被分为3层。(1)表示层:用户接口部分,担负着用户与系统间的对话功能。(2)功能层:实现业务逻辑功能的算法和处理。处理表示层的输入或调用数据层返回数据结果。功能层主要包括业务功能和数据功能两部分。业务功能在功能层内部就可以解决,数据功能必须依靠数据层的交互才可以完成。(3)数据层:就是对数据库中数据的管理。通常为了提高数据读取速度,在数据库中使用大量的存储过程。在数据层中使用尽量少的SQL语句,便于以后的维护。3.1.1MVC简介模型-视图-控制器(MVC)是80年代Smalltalk-80出现的一种软件设计模式,现在已经被广泛的使用。1、模型(Model) 模型是应用程序的主体部分。模型表示业务数据,或者业务逻辑。2、视图(View) 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。3、控制器(controller)  控制器工作就是根据用户的输入,控制用户界面数据显示和更新model对象状态。   MVC式的出现不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。  早期的程序中,如果不注意对数功能和显示的解耦合,常常会导致程序的复杂及难以维护。很多VB,Delphi等RAD程序都有这种问题。甚至现在的C#,Java有时候也会出现把业务逻辑写在显示模块中的现象。管MVC设计模式很早就提出,但在Web项目的开发中引入MVC却是步履维艰。主要原因:一是在早期的Web项目的开发中,程序语言和HTML的分离一直难以实现。CGI程序以字符串输出的形式动态地生成HTML内容。后来随着脚本语言的出现,前面的方式又被倒了过来,改成将脚本语言书写的程序嵌入在HTML内容中。这两种方式有一个相同的不足之处即它们总是无法将程序语言和HTML分离。二是脚本语言的功能相对较弱,缺乏支持MVC设计模式的一些必要的技术基础。直到基于J2EE的JSPModel2问世时才得以改观。它用JSP技术实现视图的功能,用Servlet技术实现控制器的功能,用JavaBean技术实现模型的功能。JSPModel1与JSPModel2SUN在JSP出现早期制定了两种规范,称为Model1和Model2。虽然Model2在一定程度上实现了MVC,但是它的应用用并不尽如人意。  图3-3JSPModel1   图3-4JSPModel2  model2容易使系统出现多个Controller,并且对页面导航的处理比较复杂  有些人觉得model2仍不够好,于是CraigR.McClanahan2000年5月提交了一个WEBframework给JavaCommunity.这就是后来的Struts。  2001年7月,Struts1.0,正式发布。该项目也成为了ApacheJakarta的子项目之一。3.1.1三层架构的优点(1)提高程序的可维护性:三层架构层次分明,一旦运行出现问题,可以快速的判断是哪一层的问题,利于维护。(2)可以合理快速的开发:因为三层之间除了调用没有其它关系,只需先把三层之间的接口定义好,则程序员可以并行开发,提高了开发进度。(3)提高了系统安全性:每层都有安全设置,即使表示层被攻破,那下一层的安全还有保障。(4)提高了系统的扩展性:三层结构最大的好处就是在扩展应用系时,改动的部分不会影响大局。3.1.2数据访问层数据访问层一般由两部分组成:业务实体和数据访问逻辑组件。在三层架构中,数据访问层是唯一与数据库打交道的层,所以该层的设计要尽量以提高速度和安全为目标。 (1)数据访问逻辑组件数据访问逻辑组件简单来讲就是实现对数据库中数据进行操作的组件,以及实现数据相关操作所需的业务逻辑。(2)业务实体使用业务实体,必须明白业务实体的内部构造和关联方式。业务实体的主要特点如下:①提供对业务数据及相关功能进行编程访问。②可以使用具有复杂架构的数据来创建,这些复杂数据一般表现为数据库中相关联的多个表。③可以作为业务流程中的输入输出参数来传递整体数据。④业务实体可序列化,以保持其状态。⑤业务实体不参与事务处理,只是事务处理过程中的一部分数据。事务处理由数据访问组件完成。(3)业务实体的创建数据层中的业务实体类,主要功能是表示一个业务模型。业务实体与数据表之间有对应关系,即业务实体类的属性其实是数据表中的字段。3.1系统需求分析3.2.1系统定义Java精品课程是一个供Java学习爱好者学习与交流的学习网站。它应具有良好的可视性和较好的互动性。3.2.2功能需求Java精品课程网站的目的是为Java学习爱好者提供良好的学习环境,以弥补学生课堂学习的不足。要求知识点广,可视化强,交流方便,可利用性强。3.2.3数据需求(1)留言信息网友留言的信息包括网友姓名,邮箱,网站,QQ,以及留言主题,留言内容和发表留言时间。 (2)资源信息资源信息主要是上传文件和发表文章的相关信息,包括资源类别编号(1.课件资源2.工具资源3.视频资源4.参考源码5.发表文章),资源名称,资源大小,资源所在路径,资源提供者以及资源提供时间。(3)新闻信息新闻信息是管理员后台发布的新闻,包括新闻标题,新闻标题图片,新闻内容以及新闻发布时间。(4)论坛信息Java学习论坛主要为Java学习爱好者提供学习,讨论的平台。论坛信息包括主题标题,主题内容以及发表时间。(5)管理员信息管理员信息包括管理员编号,管理员名称,管理员密码,管理员IP,以及管理员注册时间。3.1系统模块设计Java精品课程网站整体设计主要有六个功能模块:课程介绍,包括Java语言简介,课程特色,教学条件以及教学方法等内容。主要让大家了解Java来源的相关知识,以及Java教学的相关问题。课程内容,主要是Java相关知识,共十一个篇章。包括:第1章介绍计算机语言的简单演化史、语言翻译程序和虚拟机的基本概念;第2章介绍Java开发环境JDK和Eclipse使用的一般知识;第3章以Java的主方法main()为背景,介绍Java语言的基础知识和简单算法;第4章介绍了Java面向对象的程序设计,这是本书的重点和难点;第5章介绍了Java异常处理;第6章介绍了Java的基本可重用类包(java.lang和java.io);第7章介绍Java图形用户界面;第8章介绍小应用程序(Applet);第9章介绍体现Java多线程编程;第10章介绍java网络编程基础;第11章介绍Java与数据库的连接——JDBC技术。网上课堂,主要为学生提供更加直观的教学方式。包括在线视频授课,学习留言,Java学习论坛,在线试题。 常用下载,主要供学生下载Java学习相关资源,包括Java相关资料下载,常用工具下载,参考代码下载以及学习教程下载。参考资料,主要为学生提供一些Java学习的相关书籍,网站网址,辅助学习。六、后台管理,主要实现常用下载的相关资料上传,留言内容管理,文章发表和文章管理,新闻管理等。3.1数据库设计3.4.1数据库设计概述数据库是信息管理系统的后台支持,存储着前台界面所需要的信息,在信息管理系统中有着很重要的地位。数据库设计的好与坏,直接影响到这个系统的运行效率。良好的数据库设计,可以提高数据信息的存储效率,保证数据信息的完整性和一直性。同时,一个合理的数据库结构有利于程序的实现。这里选用Access作为后台数据库。3.4.2数据库概念结构设计本系统中用到了四个实体类分别是:论坛信息实体类Article,留言本信息实体类Message,资源信息实体类Resouce,用户信息实体类User。本系统模块中用到的数据库逻辑结构有以下几个:(1)留言板信息表guestbook字段名称数据类型name文本email文本web文本qq文本title文本content备注time文本(2)论坛信息表article字段名称数据类型id自动编号 pid数字rootid数字title文本cont备注pdate日期/时间isleaf数字(3)新闻发布信息表news字段名称数据类型id自动编号d_title文本d_picture文本d_content备注d_date日期/时间(4)资源管理信息resource字段名称数据类型ResourceNum自动编号ResourceClassId数字ResourceName文本ResourceIntroduction文本ResourceContentPath文本ResourceFrom文本ResourceTime日期/时间3.1系统详细设计与实现3.5.1网站首页 网站首页主体部分大体分为三部分:第一部分是新闻中心,在这里可以阅读新近发布的新闻;第二部分是网上大学堂,在这里点击【网上留言板】直接进入留言板页面,点击【Java学习论坛】直接进入论坛页面,供网友进行在线交流。右侧有下载区,可以直接点击下载所需软件,点击【更多】将进入资源下载页面,那里有更多可供下载的资源;第三部分是日历和公告板,供网友了解更多信息。图3-5网站首页首页CSS控制3.5.1课程介绍在此可了解Java语言简介,课程特色,教学条件和教学方式。 图3-6课程介绍界面3.5.1课程内容这里以章节的形式显示Java语言课程知识。共十一个章节。 图3-7课程内容界面网页左侧用JavaScript控制树形结构functionturnit(ss){if(ss.style.display=="none"){ss.style.display="";}else{ss.style.display="none";}}树形结构的JavaScript应用 2.2JDK的安装,环境配置及使用3.5.1网上课堂该模块可供大家在线学习和交流。在网上课堂页面,点击【播放】可以直接观看java视频讲解,点击【下载】可以对视频进行下载。点击页面左侧“网上留言板”,将直接打开留言板页面,供大家留言;点击“学习园地”,将打开发表的文章页面,点击文章名可直接浏览文章;点击“Java学习论坛”,将打开论坛页面,供大家发表主题,回复网页问题等;点击“在线试题”,将打开试题页面,供大家对所学知识进行自我检测。(1)网上课堂图3-8网上课堂页面(2)Java学习论坛论坛回复列表实现树形显示<%!privatevoidtree(List
articles,Connectionconn,intid, intgrade){Stringsql="select*fromarticlewherepid="+id;Statementstmt=DB.createStmt(conn);ResultSetrs=DB.executeQuery(stmt,sql);try{while(rs.next()){Articlea=newArticle();a.initFromRs(rs);a.setGrade(grade);articles.add(a);if(!a.isLeaf()){tree(articles,conn,a.getId(),grade+1);}}}catch(SQLExceptione){e.printStackTrace();}finally{DB.close(rs);DB.close(stmt);}}%><%List
articles=newArrayList
();Connectionconn=DB.getConn();tree(articles,conn,0,0);DB.close(conn);%> 1).论坛列表图3-9论坛列表要对主题进行删除可以单击【DEL】,点击后会出现管理员登录页面,通过管理员登录验证即可进入修改和删除页面。管理员登录验证<%StringadminLogined=(String)session.getAttribute("adminLogined");if(adminLogined==null||!adminLogined.trim().equals("true")){response.sendRedirect("login.jsp");return;}%>点击【MOD】可对主题及回帖进行修改,点击【DEL】可对其进行删除。2).管理员操作下论坛列表 图3-10帖子修改与删除主题回复页面使用FckEditor组件,对回复内容进行编辑FCKeditor文本编辑程序(共享软件)为用户提供在线的文档编辑服务,其具有与微软office软件一样的功能,与之不同的是FCKeditor不需要用户安装任何形式的客户端,FCKeditor程序非常精简但功能强大,因此而受到广大应用者的青睐。Jsp页面中使用JavaScript对该组件进行设置window.onload=function(){varsBasePath="<%=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/fckeditor/"%>"//alert(sBasePath);varoFCKeditor=newFCKeditor("cont");oFCKeditor.BasePath=sBasePath;oFCKeditor.ReplaceTextarea();} Jsp页面中使用以下语句即可使用该控件内容:3).主题回复图3-11回帖4).帖子查看 图3-12查看帖子点击右面【回复】可对帖子进行回复。3.5.1常用下载在这里有相关资料下载,相关教程下载,相关软件下载以及参考源码下载。列表内容包括下载文件名称和大小,点击文件即可进行下载。 图3-13常用下载3.5.1参考资料这里提供Java学习的相关书籍和相关网站,以帮助我们扩展知识层面,了解更多关于Java的知识。 图3-14参考资料3.5.1后台管理管理员登录页面该页面是管理员的登录页面,需要管理员输入口令和密码以及验证码后方可进入后台管理页面。口令或密码输入有误或不全时,将会有错误提示。如提示“用户名或密码不匹配,登录失败,请重试!admin110。”等。管理员登录口令和密码默认为admin,admin。 图3-15后台登录(1)上传文件文件上传的页面为Upload.html.在这里管理员可根据需要上传不同类型的文件,如课件资源,视频资源,工具资源,参考源码,以及文章发表。选择要上传的文件,然后点击【上传】,文件将会根据上传分类的不同选择保存到不同目录下。实现文件上传主要使用mySmartUpload组件。代码实现部分为:SmartUploadmySmartUpload=newSmartUpload();mySmartUpload.initialize(config,request,response);//初始化mySmartUpload.upload();//上载文件//获取保存文件的路径intclassid=Integer.parseInt(mySmartUpload.getRequest().getParameter("classid"));//或得所属分类id Stringresouce_Name=mySmartUpload.getFiles().getFile(0).getFileName();Stringresouce_Intro="";Stringresouce_path=mySmartUpload.getRequest().getParameter("PATH");//资源的存储路径获取的分类编号classid,资源名称resouce_Name,资源储存路径resouce_path等将通过ResouceMgr.java这个类进行保存,并存入数据库。图3-16文件上传(2)文章发表管理员可以在这里发表文章,并将在网上课堂中的学习园地看到所发表的文章。 图3-17文章发表界面(3)新闻管理这是一个简单的新闻发布系统。管理员可以在这里发布新闻,并可以再首页进行显示。这里用到了一个webEditer的组件。//当上传图片等文件时,往下拉框中填入图片路径,可根据实际需要更改此函数functiondoChange(objText,objDrop){if(!objDrop)return;varstr=objText.value;vararr=str.split("|");varnIndex=objDrop.selectedIndex;objDrop.length=1;for(vari=0;i在显示页面中相应位置添加以下代码即可在页面中显示该组件: 图3-18新闻发布界面此页面还包括超链接新闻列表和清空新闻。点击新闻列表将出现以下页面:图3-19新闻列表界面点击新闻标题将显示新闻内容。如果要对新闻信息进行相关修改,直接点击【修改】;如果想删除此条新闻,可以直接点击该条新闻所在行后面的【删除】按钮。点击清空新闻将删除所有新闻信息。 文章管理这里显示文章的相关信息,点击删除图标将对相应文章进行删除。图3-20留言管理 系统的难点及解决方案4.1文件上传问题在程序设计之初,认为实现文件上传有点困难,但通过网上查找以及视频教程讲解,了解了一些文件上传组件。尝试了jspsmartupload和struts自带的上传组件,但由于对这些组件使用不太了解,结果都没有成功。后来在同学的帮助和指引下,使用了com.jspsmart.upload包,才得到实现。通过简单几步就实现了文件上传。SmartUploadmySmartUpload=newSmartUpload();mySmartUpload.initialize(config,request,response);//初始化mySmartUpload.upload();//上载文件4.2树形菜单的设计刚开始设计网页左侧超链接是想使用树形菜单形式,但在网上查了一些资料,好多都用到数据库实现树形结构显示。我认为有些复杂,就又查找了一些,最后找到了一个能够实现树形菜单的网页,并从中知道了这个方法。使用JavaScript设置。functionturnit(ss){if(ss.style.display=="none"){ss.style.display="";}else{ss.style.display="none";}}在页面中添加这个就可以了 第一章计算机语言概述……
1 系统总结与展望5.1系统的总结经过近三个月的忙碌,终于把毕业设计的任务完成了。如果按一个学期的安排来做完这个题目,按正常时间安排应该是绰绰有余的。但是,同样在大学的最后一个学期,我们不仅要通过学习来补充专业知识,同样也要面临一个更现实的问题---复习功课。所以在做系统的同时,我也通过网络学习并扩展了自己的专业知识面,以弥补这两年学习上的不足.但同时我又不得不投入到专升本考试的复习当中.因为这给了我继续学习的机会.因此本系统做的不够完善,有不少需要更改与完善的地方.现在我把系统做一下总结。总的来说,本系统的开发目标,主要是为了提供一个供Java学习爱好者方便学习的平台,比如简单了解Java学习方法,浏览Java基础知识,通过视频讲解以及试题具体学习Java相关知识,并提供与网友在线交流的平台。5.2系统的展望本系统只是简单的实现了文件读取,文件下载,文章发表以及留言等功能.但还有许多尚待改善的地方,因此系统还有很好的扩展性.具体有以下几点:(1)论坛用户注册由于本模块只是模仿网络上的一个论坛的部分功能,只是实现了发表主题,回复主题,以及对主题进行修改,删除等操作.并未实现用户注册.因此在回复留言后,没有对留言者进行显示.并且留言者信息也不能了解.所以,希望在以后的学习和训练中,对该模块加以完善,将论坛用户信息呈现给网站登录者,增进网友之间的了解,使得大家相互帮助.相互学习.(2)网页的动态显示由于对数据库应用不是很理解,因此在保存文章和图片是遇到困难,在执行文章保存时没有用到数据库,只是用文本文档来保存,并且只用数据库来保存文本储存路径.减少了系统的灵活性。 致  谢在毕业论文的最后,我要向毕业设计中给与我帮助和支持老师和同学表示最衷心的感谢。首先要感谢我的指导老师胡光武老师,他对于我的工作给予了热诚的关怀和悉心的指导。同时还要感谢大学期间我所有的带课老师,没有他们在课堂上认真的讲解,课下细致的辅导,我也不可能完成这次的毕业设计,在此特向他们表示最诚挚的谢意!感谢我们的软件学院的所有领导,为我们提供需要的设备和资料!也感谢我周围的同学和朋友们,谢谢他们给予我的关心和帮助!最后,还要感谢我的家人,感谢他们在学业上对我的全力支持,以及在生活上的关怀! 参考文献[1]殷兆麟主编,Java网络编程,北京:国防工业出版社,2001[2]殷兆麟,周智仁,范宝德编著,Java网络应用编程,北京:高等教育出版社,2004[3]殷兆麟主编,Java语言程序设计,北京:高等教育出版社,2002[4]殷兆麟主编,Java网络高级编程,北京:清华大学出版社,北京交通大学出版社,2005[5]薛为民,夏文红,解仑编著,Java应用教程,北京:北京交通大学出版社,2005[6]刘艺等编著,Java程序设计大学教程,北京:机械工业出版社,2006[7]张白一,崔尚森编著,面向对象程序设计Java,西安:西安电子科技大学出版社,2006[8]邵鹏鸣编著,Java面向对象程序设计基础、设计、实现与应用程序开发(5.0版),北京:清华大学出版社,2006[9]孙卫琴编著,Java面向对象编程,北京:电子工业出版社,2006[10]李芝兴主编,Java程序设计之网络编程,北京:清华大学出版社,2006[11]朱喜福编著,Java程序设计,北京:清华大学出版社2004[12]《全国计算机等级考试教程》丛书编委会主编,Java语言程序设计(二级)新大纲版,北京:电子工业出版社,2005[13]欧阳桂秀主编,Java语言程序设计,上海:上海交通大学出版社,2004[14]朱福喜,唐晓军等编著,Java程序设计技巧与开发实例,北京:人民邮电出版社,2004[15]张仕斌等编著,Java程序设计与应用,北京,清华大学出版社,2005年7月[16]张孝祥编著,Java就业培训教程,北京,清华大学出版社,2003[17]耿祥义编著,Java课程设计,北京,清华大学出版社,2003[18]蔡翠平主编,Java程序设计,北方交通大学出版社,2003[19]学勤主编,Java简明教程,北京,清华大学出版社,2003[20]敬铮主编,SQLServer高级开发与专业应用,国防工业出版社,2002 [21]BruceEckel著,侯捷译,(ThinkinginJava,SecondEdition),机械工业出版社,2002[22]HarveyM.Detel著,JavaHowtoProgram,FourthEdition,电子工业出版社[23]卡内基,IntroductiontoInformationSystem[24]JasonHunter,WilliamCrawford等著,孙鑫,谢茂强译,JavaServlet编程,中国电力出版社,2002[25]KaralAvedal,DannyAyes,TimothyBriggs等著,黎文等译,JSP编程指南,电子工业出版社,2001[26]SubrahmanyamAllamaraju,CedricBuest,JohnDavies等著,马树奇译,电子工业出版社,2002'