• 1.38 MB
  • 2022-04-22 13:45:06 发布

完美版家庭服务毕业设计论文.doc

  • 49页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'完美版家教服务毕业设计论文目录第1章绪论11.1选题的背景及意义11.2国内外研究现状11.3课题的研究内容21.4论文的组织3第2章相关技术介绍42.1JSP简介42.1.1JSP内置对象42.1.2JSP页面52.2Ajax技术62.3jQuery和Json72.4SSH技术简介72.5Myeclipse安装92.6配置Tomcat92.7Oracle数据库92.7.1Oracle简介92.7.2Oracle的使用102.8本章小结10第3章家教平台的分析113.1总体需求分析113.1.1功能需求113.1.2家教平台性能需求分析12-2- 3.2数据安全分析123.3界面需求分析133.3.1平台名称133.3.2界面布局133.4家教平台可扩展分析143.5本章小结14第4章家教平台的设计154.1平台总体设计154.2功能详细设计164.2.1前台功能设计164.2.2后台功能设计164.3系统数据库设计174.3.1数据需求174.3.2数据库概念设计174.3.3数据库逻辑结构设计214.3.4数据库表设计224.4本章小结25第5章家教平台的实现265.1开发环境265.1.1硬件环境265.1.2软件环境265.2运行环境265.3平台开发结构265.3.1MVC体现275.3.2表单乱码设计275.3.3相关的xml配置文件275.4平台主界面285.5前台功能模块实现29-2- 5.5.1导航条和Log模块295.5.2网站公告模块295.5.3用户注册模块305.5.4用户登录模块335.5.5用户信息展示模块345.5.6咨询中心模块355.5.7友情链接模块355.5.8搜索模块355.5.9客服中心模块375.6后台功能模块实现375.6.1管理模块显示375.6.2账号信息管理385.6.3基本信息管理395.6.4联系方式管理405.6.5邀请管理415.7论坛模块实现425.8本章小结43第6章结论与展望446.1结论446.2展望44参考文献45致谢46-2-46 第1章绪论1.1选题的背景及意义家教服务是当今的一个热门的服务种类,特别是在城市地区,有着巨大的市场。随着人们生活水平的不断提高和对高质量教育的需要,家教需求也将持续不断的增长。同时,越来越多的教师、在校师范类大学生等具备某些特长的人士也都希望能够以专职或兼职的方式从事家教的工作,额外发挥对教育事业的贡献。针对这个双方的需求,家教市场正在蓬勃发展,但是目前的家教市场也带来了几方面的问题:第一,寻求家教服务者或者学生家长往往不知道如何找到好的家教资源,家长往往是通过身边的熟人、朋友等方式来寻找家教,这样的方式不但难以保证对口的家教服务,而且选择的余地也很小;第二,愿意提供家教服务的教师或大学生往往不知道如何去寻找合适的家教服务需求者,往往都是通过张贴海报、设摊等方式进行宣传,造成宣传面小,或者学生不能完全对口等情况;第三,家教服务还具有地域特征,一般对于教师上门进行家教服务或者学生上门的家教服务的方式都希望能够在地域性上比较匹配,所以希望能选择的资源相对较多;第四,对于家教服务缺乏监管,如果能有一个中介机构能够及时得到受服务方对教师家教服务的反馈,进行评级和评分,不但能提高服务质量,还能增加服务的可信度,促进家教产业的良性发展。本文所论述的“家教服务平台”通过运用javaee开发方面的知识,建立起一个网络的家教服务平台,该平台以一个中介方式提供家教双方的服务,充分发挥网络的方便和快捷性,增加了家教服务的灵活性,使服务者和被服务者各取所需。本文内容涉及到服务器的配置、网页开发设计、程序设计、数据库运用等多方面的知识,较为完整地体现了平台开发过程中的综合规划和设计思路以及技术细节、问题的解决办法。1.2国内外研究现状研究家教服务平台,追其根源必须研究整体的教育状况,在我国目前的教育还是以 “应试教育”为主, 从教育规律和人才成长规律来看,“应试教育”在认识上存在着两个误区,一是忽视了对大多数学生的培养,只对少数人服务。客观现实决定了只有少数人能够通过考试进入大学,片面强调和追求升学率,必将牺牲大多数人的利益,从而使基础教育成为面向少数人的教育;二是"应试教育"在教育内容上忽视德育、体育、美育和生产劳动教育,只重知识传授,忽视能力与心理素质培养,它所追求的是片面发展,而不是全面发展。为了考试而学,是违背人才培养的规律的。“应试教育”环境下的学生知识面比较狭窄,缺乏知识与知识之间的联系;学生缺乏自己可以支配的时间与空间, 46 他(她)到了学校,其时间与空间都给老师占满了,到了家里,他(她)的时间又给家长占满了。一个缺乏自己可以自由支配时间与空间的人,很难有创新;学生在硬的领域,比如基本知识与基本技能比较强,而在软的领域,如自信心不够,好奇心和求知欲不强,缺乏积极的情感体验,缺乏社会责任感与使命感。实际情况是,我们的学生并不输在起跑线上,而是输在终点线上,也就是我们的学生缺乏后劲,缺乏创新精神。从时间分配上讲,我们花在语、数、外和与中考、高考相关学科的训练上的时间太多太多;而花在对祖国的热爱,对人与人之间美好关系的认识,对祖国大自然的认识这方面的时间太少太少。国际上把这一块称之为德育课程或是道德课程。从人的成长来讲,恰恰是道德课程起着决定性的作用。反观当今世界,随着时代的发展,人们教育观念的更新,智力已不再是能力的同义词,现实问题的复杂化和综合程度的提高以及知识更新速度的加快,要求人不仅要具备独立解决问题的能力,更要具备与他们之间的合作能力,处理问题的应变能力、持续性的学习能力、自我激励能力和自我提升的能力等素质。简言之,社会需要的是全面的综合性高素质人才。显然,“应试教育”这种教育倾向不能适应社会人才培养的需要,而且还会有碍于教育事业的健康发展,尤其是基础教育的发展,而国内与国外的教育差别重点也正是在这一块了。第八届全国人民代表大会第四次会议通过的《中华人民共和国国民经济和社会发展九五计划和2010年远景目标纲要》,在其“科教兴国战略”部分中,明确提出要“改革人才培养模式,使应试教育转向全面素质教育”。于是,到此为止,“素质教育”终于从一种行政性的号召,转变为具有一定法律约束力的国家意志,培养德、智、体等方面全面发展的人。我国的学校管理可以借鉴英、美国家,变“授人以鱼”为“授人以渔”,培养学生自主学习习惯,充分张扬个性,给学生以自由发展的时间和空间,促使学校教育、家庭教育和社会教育三位一体,全方位地培养学生的开拓和创造精神,真正实现素质教育,培养能力型人才。综上所述,尽管越来越强调要培养学生自主学习习惯,但是国内家教服务任是正处于蓬勃发展的阶段,而国外的开放式教育则导致家教服务的研究相对比较局限了。1.3课题的研究内容课题研究的内容是家教服务平台。针对目前家教服务市场的现状,平台本着为寻求家教服务者和提供家教服务者的双方提供一个安全、便利的交流环境为目标,以全心全意为家教事业做贡献为宗旨。平台能够给需要家教服务,却不知道如何找到好的家教资源的学生或家长提供一个完善的信息资源站,学生或家长可以通过平台找到对口的、安全放心的家教服务。同时,也给愿意提供家教服务的教师或大学生提供了一个完善的信息资源站,可以在平台上找到合适的家教服务需求者,既能保证对口的家教服务,又能保证人身和财产安全,可以全心全意的投入到家教事业而不用担心其他。平台46 能够为学生尽可能全面的了解教师的基本情况,找到自己心中认为最合适的教师来指导自己学习,教师也可以知道自己的辅导的学生,为了更能够完善自己,了解学生的特点。平台很重视各类家教服务的信息资源,但是最为重视的却是双方的个人资料安全以及对教员和学员的评价。因为平台的目标是保证在安全可靠的环境下,提供值得双方信赖的家教服务,为家教事业贡献出一份力量。1.4论文的组织本文共分为六章,具体的内容安排如下:第1章是绪论部分,简略陈述了研究此平台的时代背景及其意义,同时对国内外研究的现状也做了粗略的对比。第2章是相关的技术理论部分,主要对此平台在研究开发过程所使用到的相关技术作了简单的陈述,通过本章可以了解到研究此平台的技术构造。第3章是平台的需求分析部分,本章对实现平台的需求进行了全面的分析,从用户及管理者为典型代表对平台进行分析,深入了解平台的需求。第4章是平台的设计部分,主要陈述了如何实现该平台的整体设计,相关数据库以及某个功能模块的设计。第5章是平台的实现部分,在有了前面设计及需求的分析的基础上,在本章主要描述了实现该平台的具体环境及过程。第6章是结论与展望,简要总结了该平台所完成的工作以及存在的不足,同时描述了对平台的未来展望。46 第2章相关技术介绍2.1JSP简介2.1.1JSP内置对象JSP内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。其一共有9大内置对象,在该平台在开发过程中需使用到其中的7大内置对象,每一个内置对象都有其自身的特点及作用,简述如下:1.application对象application对象的所属类型是javax.servlet.ServletContext。它主要用于多个用户间保持数据,所有用户都共享一个,服务器启动后,一旦创建了application对象,那么该对象将会永远保持下去,直到服务器关闭为止。在开发过程中运用到的公共数据均可以通过使用application对象来实现共享。调用getServletConfig()或getContext()方法后获取到ServletContext对象,通过返回的对象则可以获取对应的共享数据值。2.exception对象exception对象的所属类型是javax.servlet.ServletConfig。每一个程序发生错误时都会产生异常,JSP也不例外,当其页面发生错误时,肯定会产生异常,而exception就是用来针对异常作出相应处理的对象。在开发该平台过程中有很多次的调试,多次都在使用exception对象,当然在使用之前必须在JSP顶端通过使用page命令来设定其使用权限,如<%@pageisErrorPage="true"%>,否则在编译过程中会出错。3.out对象out对象的所属类型是java.servlet.jsp.JspWriter。该对象主要用于向客户端输出的服务器回响的不同内容,它的作用相当于PrintWriter对象,但使用PrintWriter对象需要事前进行声明,而out对象则可以直接进行调用。该平台在开发JSP页面过程中主要调用out.print()方法或out.println()方法进行对客户端的内容输出,两个方法均可以向客户端输出一行信息,但前者输出时不换行,后者则输出后换行。4.request对象request对象在开发该平台的过程中是使用次数最多的,他所属的类型可以根据协议的不同而变换,使用HTTP协议时属于javax.servlet.HttpServletRequest,而使用其他协议时则属于javax.servlet.ServletRequest。每次当用户向服务器发出请求时都将触发request对象,用户可以通过不同的方式在发出请求的同时传递数据,比如使用GET方式。而服务器在服务端则可以通过调用request的方法来对用户提交的数据进行提取。该平台开发过程中多次使用到setAttribute()、request.getAttribute()和getParameter(Stringname)等方法。setAttribute46 ()方法对数据进行提交,而request.getAttribute()则是对应它的读取方法。getParameter(Stringname)则是通过传递一个键值名来读取对应的值。5.response对象response对象与request对象对应,在开发该平台的过程中使用次数不亚于request对象。response对象是用于服务器对客户端进行回响,它的所属类型也是根据协议不同而变化的,当使用HTTP协议时,类型是javax.servlet.HttpServletResponse,使用其他协议时则是javax.servlet.ServletResponse。在开发该平台过程中通过使用其方法voidreset()来对buffer中的内容进行清空;使用getCharacterEncoding()来获取响应的字符编码格式,使用setCharacterEncoding(Stringcharset)则是设置响应使用的字符编码格式,如果获取和响应的编码格式没有保持一致,则响应在JSP页面上的内容会出现乱码;通过使用setContentType(Stringcontent)来对响应的内容进行类型设置;使用sendRedirect(Stringlocation)来向服务器发送一个重定向至参数位置的请求。通常在进行JSP页面开发的过程中在每一个JSP的顶部都会加上response.setContentType("text/html;charset=gbk")和request.setCharacterEncoding("gbk")两句。6.session对象session对象所属的类型是javax.servlet.http.HttpSession。它是在发生HTTP请求时被创建的,它的创建代表这一个会话对象的产生。在该平台开发的过程中,用的最多的方法是setMaxInactiveInterval(intinterval),它用于设置最大的session不活动的时间,若超过这个时间则会话将会失效,时间单位为秒。在平台中,若用户长时间未进行任何操作且没有注销登录,则通过该方法设置的时间就被作为自动注销的时间依据。除了上述方法外,平台开发过程中主要还使用方法getAttribute(Stringname)来获取指定名字的属性和方法removeAttribute(Stringname)来删除指定名字的属性,也通过使用方法setAttribute(Stringname,Java.lang.Objectobject)来进行指定名字属性值设置,并存储在该对象中。7.pageContext对象pageContext对象在平台过程中使用的不多,主要是用于对JSP页面内所有的对象及名字空间的访问,因为它可以访问到本页所在的SESSION,同时也可以取本页面所在的application的某一属性值,相当于页面中所有功能的集大成者,虽然使用起来较为直接,但是因其所集合的方法太多导致使用起来不甚方便。2.1.2JSP页面该平台的所有前端交互均为JSP页面,目前用于前端交互的开发方式用很多种,而该平台之所以采用JSP主要是出于如下考虑:1、JSP将内容的生成和显示进行分离,46 使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。2、绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3、JSP采用了标识简化页面开发,Web页面开发人员不会都是熟悉脚本语言的编程人员。而JSP技术则封装了许多的功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,开发人员可以使用自己所选择的服务器和工具,而更改工具或服务器却不影响当前的应用。2.2Ajax技术Ajax(AsynchronousJavaScriptXML)技术的核心是JavaScript对象XmlHttpRequest。它是一种支持异步请求的技术,通过XmlHttpRequest可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。如平台注册功能中的检查用户名是否已经存在、用户登录后马上注销时对主界面的刷新等均使用到了该技术,使用Ajax能够让用户在这些功能结果反馈之前可以继续执行其他的操作,而不是处于等待状态。使用Ajax主要有三大步骤,具体操作如下所述:46 1、创建XmlHttp对象,因为不同内核的浏览器对Ajax的支持不同,所以在创建之前必须先通过浏览器的window属性的来判断其内核是IE还是火狐,若是前者创建对象为ActiveXObject("Microsoft.XMLHTTP"),后者则创建为XMLHttpRequest()。2、发送请求函数,首先调用XmlHttp对象中的open("GET",url,true)设置发送请求的方式,然后调用onreadystatechange属性指定响应函数,最后调用send(null)进行请求的发送。 3、判断返回状态并进行处理,调用XmlHttp对象的readyState属性和status属性来判断异步请求是否成功,如readyState=4、status=200则请求成功,然后调用responseText属性对返回的内容进行处理。2.3jQuery和Json该平台在开发中采用了jQuery框架,它是一个优秀的JS(Javascript)框架,使用它最直接的效果就是能够做到写更少的代码却做更多的事情。在平台的开发过程中,主要使用了它的选择器和内置函数。选择器以简单少量的代码实现对结点、标签等的快速获取,如选择器$(“ID”)能选择该ID对应的结点、$(“TagName”)能选择该标签元素进行操。而内置函数则是为了更容易的完成动画效果,如show()和hide()函数,能实现立即显示或者以特定的速度显示,fadeIn()和fadeOut(),或者slideDown()和slideUp()显示和隐藏元素等。通过使用这些选择器、内置方法以及配合Ajax技术,给平台的开发减少了不小的工作量。Json可以将JS对象中表示的一组数据转换为字符串形式,然后就可以在函数之间轻松地传递这个字符串。如在该平台中使用Ajax实现异步操作时,将字符串从平台客户端传递给服务器端程序、从服务器端回响给前端数据等均是使用该方式进行传递的。组成Json的字符串格式如{“name”:”value”},它是以键值对方式存在的。尽管这种格式看起来十分怪异,但是与以XML方式进行数据传递相比,不仅大大提高了可读性,而且减少了数据组成结构的复杂性。2.4SSH技术简介本平台开发采用的是SSH整合技术。SSH指的是Struts、Spring、Hibernate三大框架的整合,在开发过程中Struts的MVC设计模式可以使我们的逻辑变得很清晰,Spring的IOC和AOP可以使我们的平台在最大限度上解藕,而Hibernate则是实体对象的持久化,SSH框架直观如图2.1所示。典型的JAVAEE三层结构分为表现层、中间层(业务逻辑层)和数据服务层,三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层则46 是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。图2.1SSH框架直观图表现层则是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种:1、Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现。在该平台中本层通过struts来进行处理。2、Manage层(服务层或业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。DAO层,负责与持久化对象交互。该层封装了数据的增、删、查、改的操作。3、PO(实体层或持久化层),持久化对象。通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库。该平台采用Hibernate作为ORM框架,而Spring的作用贯穿了整个中间层,将Web层、Manage层、DAO层及PO无缝整合,其数据服务层用来存放数据。采用Hibernate作为持久层技术,可以完全以面向对象的方式进行系统分析、系统设计;采用Struts则通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处;采用Spring容器代替DAO工厂,通常情况下,引入接口就不可避免需要引入工厂来负责DAO组件的生成,而使用Spring可以完全避免使用工厂模式,因为Spring就是个功能非常强大的工厂。46 2.5Myeclipse安装平台的开发采用了myeclipse6.5版本。尽管Myeclipse目前的版本已经到了10,但是大多数开发者依然采用的是6.5版本,不仅因为该版本已经具有丰富的开发框架与插件,而且该版本相对较为稳定,开发过程中可以有效的避免一些不必要的风险。MyEclipse是Eclipse的一个插件,所以必须先安装Eclipse才可以安装MyEclipse。首先安装JDK运行JDK6.0安装程序,安装过程中所有选项保持默认。然后配置JDK的环境变量:新建系统变量JAVA_HOME:C:ProgramFilesJavajdk1.6.0_06;新建系统变量CLASSPATH:.;%JAVA_HOME%lib;在系统变量Path的值的前面加入以下内容:%JAVA_HOME%bin;接着安装eclipse,将下载好的eclipse-SDK-3.1.2-win32.zip直接解压到某个盘的根目录,然后解压即可。然后安装myeclipse,讲下载好的myeclipse可执行文件打开,在安装过程中选择Eclipse的安装路径,其他选项保持默认。安装完毕之后,将MyEclipse安装目录下的features和plugins这2个目录覆盖到Eclipse的安装目录下即可。2.6配置TomcatTomcat是一个免费的开放源代码的Web应用服务器,平台在开发以及测试过程中使用的均是该服务器,目前使用最广的版本是6.0.20,此平台也是使用了该版本。它是Apache软件基金会(ApacheSoftwareFoundation)开发的,是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。之所以在开发过程中选择使用它,主要因为Tomcat服务器在运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能,而且它还在不断的改进和完善,能被使用的时间较长,平台不用担心服务器的更换。Tomcat配置是在Myeclipse6.5环境里面进行的,具体配置如图2.2所示。2.7Oracle数据库2.7.1Oracle简介Oracle是目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、Internet、电子商务网站等领域作为应用数据的后台处理系统。此前流行的版本为Oracle9i。Oracle公司在Oracle9i基础上,推出了代表数据库最新技术的数据库系统Oracle10g。在Oracle10g中,第一次提出数据自动镜像存储、数据闪回功能以及功能强大的数据导出工具、大文件表空间以及表空间组管理等概念。本平台采用的是Oracle10g版本,Oracle10g企业管理器(OracleEnterpriseManager)46 简称OEM,是一个基于Java的框架系统,该系统集成了多个组件,为用户提供了一个功能强大的图形用户界面。图2.2Tomcat配置图2.7.2Oracle的使用安装好Oracle10g服务器后,还需要安装一个对应的客户端。为了提高开发效率,该平台采用了SQL/PLUS来控制使用Oracle进行数据库的开发。Oracle的sql*plus是与Oracle进行交互的客户端工具。在SQL/PLUS中,可以运行SQL/PLUS命令与SQL/PLUS语句。它的功能主要有:(1)数据库的维护,如启动,关闭等,这一般在服务器上操作.。(2)执行SQL语句执行PL/SQL。(3)执行SQL脚本。(4)数据的导出,报表。(5)应用程序开发、测试SLQ/PLSQL。(6)生成新的SQL脚本,供应用程序调用,如安装程序中进行脚本的安装。(7)用户管理及权限维护。2.8本章小结本章主要是对平台开发过程中所使用到的理论技术做了一个概述,开发该平台所涉及的技术有java、JSP、Oracle、SSH框架整合等。通过本章可以进一步的了解平台的技术结构,同时通过本章也可以从一个平台开发员的角度去了解该平台,从而可以深度挖掘该平台的优势与不足。46 第3章家教平台的分析3.1总体需求分析3.1.1功能需求平台开发的目标是为了向学员和教员提供一个开放式的交流环境,针对不同身份的用户进行分析,平台该具有的功能包括:(1)注册,学员和教员均可在平台注册一个属于自身的账号,其中包含网路昵称、个人信息、需求信息等。(2)用户信息管理,注册后的用户可以修改、删除、增加自己的个人信息。(3)搜索,提供给学员和教员进行双向搜索,以便更快的查找到符合自身需求的服务。(4)邀请预订,为了让离线用户不错过机会,注册用户可以给符合自身需求的对方发送邀请预订,等对方上线很快能做出回应。(5)评价,有效的竞争能够提高服务的质量,学员和教员均能给对方进行星级评价,评价高的用户将被平台优先推荐。(6)论坛,注册用户可以在论坛进行合理的发言。(7)广告,为了给平台带来部分的利润,可以刊登合法的广告。具体的功能需求如表3-1所示。表3-1系统功能需求一览表业务模块功能划分简要描述注册学员注册填写完善的信息后注册为平台的学员用户教员注册填写完善的信息后注册为平台的教员用户用户信息管理账户信息管理管理平台账号,如修改密码等基本信息管理管理个人信息,如修改辅导科目、区域等联系方式管理管理联系方式,如修改电话、QQ、住址等照片管理管理照片,如上传个人照片等搜索双向搜索学员和教员搜索符合自身需求的服务邀请预订学员管理已邀请的教员或发出邀请教员管理已邀请的学员或发出邀请评价双向评价学员和教员互相进行评价论坛论坛只有注册用户可以发言进行相互讨论广告广告刊登合法广告以获取部分利润平台管理学员管理如查看、修改、删除学员信息等教员管理如查看、修改、删除教员信息等其他如审核论坛发言、审核信息等46 3.1.2家教平台性能需求分析平台为开放式家教服务平台,浏览用户主要集中在学生、家长、教师等相关人员,相对并发浏览用户量不大,故性能需求主要有如下:(1)对Web服务器的性能要求不高,可以采用了轻量级Web服务器Tomcat。(2)平台涉及到学员和教员的个人信息,后端开发语言应具有很高的安全性且通过该语言开发的平台尽量要易于维护。(3)操作方面,平台应具有操作简单、方便等性能。3.2数据安全分析作为一个中间服务平台,涉及到所有注册用户中学员和教员的真实个人信息,如果信息泄露,将会给用户带去无法预计的后果,同时也会给平台带来很大的负面影响,所以保证平台数据的安全是能够使平台得到推广所必须的条件。因此平台在数据安全方面做了如下分析:1、平台提供一定的方式让用户标识自己的身份,在平台的内部记录着所有合法用户的标识,每次用户登录平台时,会由平台进行核实,通过后才提供其录。如用户在进行登录或在对信息进行修改等涉及到个人信息时,平台会要求输入对应的验证码等。2、平台将在数据库设计时为不同的用户定义不同的数据视图,用以限制用户的在平台上的访问范围。通过视图机制把需要保密的数据对无权访问这些数据的用户隐藏起来,提供一定程度的安全保护。该平台将视图机制与授权机制结合起来使用,首先用视图机制屏蔽一部分保密数据,然后在视图上进一步进行授权。这样能进一步的保证数据的安全性。3、平台在进行数据存储和传递过程中,对数据进行了一定程度的加密。如用户密码采用消息摘要加密方式中的MD5加密,这是一种与消息认证码结合使用以确保消息完整性的技术。它主要使用单向散列函数算法,可用于检验消息的完整性,和通过散列密码直接以文本形式保存等。由于平台运行于Web环境,故除密码之外的内容则采用了公钥加密,此种加密方式是使用一对密钥对,一个公钥,一个私钥,使用公钥加密的数据,只有私钥能解开(可用于加密);同时,使用私钥加密的数据,只有公钥能解开。该平台使用了公钥加密中的RSA算法,对数据进行加密也是保证平台用户个人信息不被窃取或修改的有效手段。4、为了增强服务器存储系统的容错能力,服务器存储系统将采用Raid磁盘阵列,同时服务器也将对用户的关键信息进行备份。46 3.3界面需求分析3.3.1平台名称本平台的名称为:湖南科技大学家教服务平台。3.3.2界面布局1、本平台界面以蓝色为主调,界面中字体大小采用四号字体加粗,输入和输出信息的字体大小为五号。主界面布局如图3.1所示。图3.1主界面示意图2、主界面顶部显示平台名称、平台LOG、平台导航,导航有主页、教员信息、学员信息等。其中平台名称和平台LOG位于该模块顶部,导航中的联系我们、网站声明、会员注册、客服中心位于中部,导航中的主页、教员信息、学员信息等位于下部。3、主界面最左边设置三个模块,分别为用户注册、金牌教员和紧急家教。用户注册位于模块顶部提供注册功能,金牌教员位于中部提供显示金牌教员的部分信息,紧急家教显示急需家教服务的学员部分信息。4、主界面中间也是设置三个模块,分别为网站公告、最新教员、最新学员。网站公告位于模块顶部提供显示公告内容,最新教员位于中部用以显示最新教员的部分信息,最新学员位于底部用以显示最新学员的部分信息。46 5、主界面最右边设置三个模块,分别是用户登录、明星教员、推荐学员。用户登录位于模块最顶部提供登录功能,明星教员位于中部用以显示明星教员的部分信息,推荐学员用以显示平台推荐的学员信息。6、主界面的底部设置两个模块,分别为资讯中心和友情链接。资讯中心包括幼儿教育、基础教育和热点培训,友情链接提供了相关网站的链接地址。通过分析后平台应用浏览器交互界面,此种界面不仅直观和可调控性好,可以随时根据需要进行修改,而且用户使用起来极为方便,只要通过鼠标点击就能够使用平台的大部分功能。3.4家教平台可扩展分析平台为网络性服务平台,随着网络用户的不断增长,预计该平台用户量将会与日俱增,而人们对平台的操作难度及操作界面的美化程度也会有不同的需求,因此平台的将来会有不断的版本更新,所以开发的平台应该具有很强的可扩展性来适应将来的版本更新。3.5本章小结本章从总体、界面、数据安全及可扩展性四个方面对平台的需求进行了分析。通过分析可以了解到平台基本的功能模块和大致的前端页面布局,同时也突出了作为一个服务性平台,必须要着重于数据的安全性处理。46 第4章家教平台的设计4.1平台总体设计平台设计的首要目标要保证平台能够满足实际应用的需求,其次要充分考虑方便实用,只有这样才能使用户在进行家教服务的寻找时真正得益于信息化建设。再次,还应当使平台具有一定的先进性,使平台便于扩充。另外,还要采用先进的技术,考虑开发的周期。平台的总体设计目标是:基于Web互联网,提供具有提供家教服务和需找家教服务,同时能给学员用户和教员用户一个安全交流环境的平台。在这个平台上,学员能够方便快捷的寻找到合适的教员,教员也能够快速的发布信息,找到合适的学员。结合上述应用需求和平台总体设计目标,确定家教服务平台主要有以下三大层结构。(1)管理员:能够对用户注册的信息进行审核,对论坛发布的信息进行审核,管理平台所以用户的信息等。具体功能示意如图4.1所示。图4.1管理员功能图(2)未注册用户:能够查看教员部分信息、查看学员部分信息、注册加入、浏览平台论坛上发布的帖子。具体功能示意如图4.2所示。图4.2未注册用户功能图46 (3)注册用户:能够发布需求信息、查看教员/学员信息、查看预约信息、修改个人信息、修改密码、对教员/学员评价并发表评论、创建帖子、回复帖子等。具体功能示意如图4.3所示。图4.3注册用户功能图4.2功能详细设计4.2.1前台功能设计通过前台和后台分析后,对平台进行详细的设计。平台的前台是与用户直接交互的,其主要功能结构设计如下:(1)有完善的对应导航条,用户点击导航即能进入对应功能的操作环境。(2)提示未注册用户注册及注册操作界面。(3)显示网站公告信息。(4)提供用户登录界面。(5)显示最新教员、最新学员、金牌教员、明星教员、推荐学员的部分信息。(6)提供相应的友情链接。(7)提供用户平台内搜索的界面。(8)显示平台的服务协议内容。4.2.2后台功能设计后台是对各类信息的管理及逻辑功能实现等,具体的功能结构设计如下:(1)实现用户注册功能。46 (2)实现用户登录功能。(3)实现注册用户的平台内搜索功能。(4)实现注册用户的个人信息修改功能。(5)实现注册用户的留言功能。(6)记录对应的星级评价功能。(7)即时更新平台公共信息。根据前台的功能需求和后台的功能需求,确定平台功能模块图如图4.4所示。图4.4平台功能模块图4.3系统数据库设计4.3.1数据需求针对平台的用户和管理,分别对学员、教员和管理员进行详细的分析,总结出如下的需求信息:(1)学员有独立的账号、基本信息、联系方式、照片信息,所以要有对应的账号表、基本信息表、联系方式表及照片信息表。(2)教员有独立的账号、基本信息、联系方式、照片信息,所以要有对应的账号表、基本信息表、联系方式表及照片信息表。(3)学员有独立的教员库、联系过的教员,所以要有对应的教员库表、联系教员表。(4)学员和教员都有星级评价,所以要有对应的评价记录表。(5)平台要有留言反馈,所以要有记录留言表。(6)平台有网站公告、家教咨询,所以要有公告记录、咨询记录表。(7)平台有广告报价,所以要有价格记录表。4.3.2数据库概念设计46 将需求分析得到的用户需求抽象为信息结构即概念模型的过程称为概念结构设计。本平台按照自顶向下的设计方法,首先得到全局概念结构,再逐步细化,得到完整的概念结构。1、平台数据流图平台数据流包括帐号信息、用户的个人信息及其它综合信息等,数据在平台各个实体之间的流动如图4.5所示。图4.5平台数据流图2、平台简要E-R图家教服务平台的主要实体有学员、教员、管理员、广告、论坛等,其中管理员能对其它实体进行管理,而学员和教员之间除了可以相互进行评价外还可以相互预定。实体之间具体的关系模式如图4.6所示。图4.6家教服务平台简要E-R图46 1、教员实体教员实体具有的属性:教员编号、登录名、登录密码、姓名、性别、地址、MSN、QQ、Email、电话号码、评价星级记录。如图4.7所示。图4.7教员实体2、学员实体学员实体具有的属性:学员编号、登录名、登录密码、姓名、性别、地址、MSN、QQ、Email、电话号码。如图4.8所示。图4.8学员实体46 1、管理员实体管理员实体具有的属性:管理员编号、登录名、登录密码。如图4.9所示。图4.9管理员实体2、论坛实体论坛实体具有的属性:帖子编号、主题、内容、发帖人ID、回复人ID。如图4.10所示。图4.10论坛实体3、广告实体广告实体具有的属性:广告编号、主题、价格、内容、类型。如图4.11所示。图4.11广告实体46 4.3.3数据库逻辑结构设计逻辑结构设计的任务是将概念结构设计阶段设计好的基本E-R图转化为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。该平台选用的是Oracle数据库,属于关系数据库,因此应该将概念模型转变为关系模型。概念模型转变为关系模型的实质就是如何将实体型,实体的属性和实体之间的联系转化为关系模式并确定这些关系模式的属性和码。如下所述将基本E-R图转化为关系模式。1、实体型转化为关系模式根据基本E-R图转化为关系模式的原则,一个实体转化为一个关系模式,实体的属性就是该关系模式的属性,实体的码就是该关系模式的码。(1)教员实体转化为一个关系模式R1:教员信息(教员编号,登录名,登录密码,姓名,性别,地址,MSN,QQ,Email,电话号码,评价星级记录,擅长科目,所在学校),该关系模式主键为(教员编号)。(2)学员实体转化为一个关系模式R2:学员信息(学员编号,登录名,登录密码,姓名,性别,地址,MSN,QQ,Email,电话号码,评价星级记录)该关系模式主键为(学员编号)。(3)管理员实体转化为一个关系模式R3:管理员信息(管理员编号,登录名,登录密码)该关系模式主键为(管理员编号)。(4)论坛实体转化为一个关系模式R4:论坛信息(帖子编号,主题,内容,发帖人ID,回复人ID)该关系模式主键为(论坛编号)。(5)广告实体转化为一个关系模式R5:广告信息(广告编号,内容,类型,价格)该关系模式主键为(广告编号)。2、实体间的联系转化为关系模式对于实体间联系转化为关系模式有以下几种情况:(1)一对一(1:1)联系可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。若转化为一个独立的关系模式,则与该联系相连接的各个实体的码以及联系本身的属性均转化为关系的属性,每个实体的码均是该关系的候选码。若与某一端的实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一对多(1:N)联系可以转化为一个独立的关系模式,也可以与N端对应的关系模式合并。若转化为一个独立的关系模式,则与该联系相连接的各个实体的码以及联系本身的属性均转化为关系的属性,而关系的码是N端实体的码。(3)多对多(N:M)联系则可以将其转化为若干个一对多关系来进行处理。(1)教员实体的关系模式R1、学员实体的关系模式R2与管理员实体关系模式生成一个新的关系模式R6:用户信息(用户编号,用户名,用户密码),该关系模式的主键为(用户编号)。46 (2)教员实体的关系模式R1与学员实体的关系模式R2生成一个新的关系模式R7:基本信息(基本信息编号,姓名,性别,地址,评价星级记录,擅长科目,所在学校,用户编号),该关系模式的主键为(基本信息编号),外键为(用户编号)。(3)教员实体的关系模式R1与学员实体的关系模式R2生成一个新的关系模式R8:联系方式信息(联系方式编号,MSN,QQ,Email,电话号码,用户编号)该关系模式的主键为(联系方式编号),外键为(用户编号)。(4)教员实体的关系模式R1与学员实体的关系模式R2生成一个新的关系模式R9:学员需求信息(需求编号,学员编号,教员编号,需求性别,预付价格,需求地址,需求简介),该关系模式的主键是(需求编号),外键为(学员编号,教员编号)。(5)教员实体的关系模式R1与学员实体的关系模式R2生成一个新的关系模式R10:评价信息(评价编号,评价内容,评价时间,学员编号,教员编号),该关系模式的主键是(评价编号),外键为(学员编号,教员编号)。(6)论坛实体的关系模式R4自关联故合并成关系模式R4′:论坛信息(帖子编号,主题,内容,用户ID)该关系模式主键为(论坛编号),外键为(用户ID)(7)广告实体的关系模式R5自关联故合并成关系模式R5′:广告信息(广告编号,内容,类型,价格)该关系模式主键为(广告编号)。4.3.4数据库表设计该平台建立的数据库名为tutor,总共有14张表,其中主要包括用户表,教员表,学员表,学员需求表,评价表,基本信息表,联系方式表,广告记录表,发帖表,回帖表等。(1)用户表(TUTOR_USER)用户表的信息包括用户ID,用户名,用户密码,用户类型。如表4-1所示。表4-1用户信息表序号字段名数据类型长度允许为空是否为主键说明1USER_IDNUMBER10否是用户编号2USER_NAMEVARCHAR20否否用户名称3PASSWORDVARCHAR20否否用户密码4USER_TYPEVARCHAR10否否用户类型(2)教员表(TUTOR_TEACHER)教员数据表的信息包括46 教员ID,用户ID,基本信息ID,联系方式ID,评价记录ID。如表4-2所示。表4-2教员表序号字段名数据类型长度允许为空是否为主键说明1TEACHER_IDNUMBER10否是教员编号2USER_IDNUMBER10否否外键3INFO_IDNUMBER10否否外键4CONTACT_IDNUMBER10否否外键5APPSAL_IDNUMBER10否否外键(3)学员表(TUTOR_STUDENT)学员数据表的信息包括学员ID,用户ID,基本信息ID,联系方式ID,学员需求ID。如表4-3所示。表4-3学员表序号字段名数据类型长度允许为空是否为主键说明1STUDENT_IDNUMBER10否是学员编号2USER_IDNUMBER10否否外键3INFO_IDNUMBER10否否外键4CONTACT_IDNUMBER10否否外键5REQUIRE_IDNUMBER10否否外键(4)学员需求表(TUTOR_REQUIRE)学员需求数据表的信息包括需求ID,需求的教员性别,预付价格,辅导地址,需求辅导简介,发布时间。如表4-4所示。表4-4学员需求表序号字段名数据类型长度允许为空是否主键说明1REQUIRE_IDNUMBER10否是需求编号2REQUIRE_SEXVARCHAR10否否教员性别3REQUIRE_PRICENUMBER8否否预付价格4REQUIRE_ADDRSVARCHAR30否否辅导地址5REQUIRE_INFOVARCHAR150是否需求简介6REQUIRE_TIMEDATE否否发布时间(5)评价表(TUTOR_APPSAL)46 评价数据表的信息包括评价表ID,评价内容,评价时间,学员ID,教员ID。如表4-5所示。表4-5评价记录表序号字段名数据类型长度允许为空是否为主键说明1APPSAL_IDNUMBER10否是评价编号2CONTENTVARCHAR180否否评价内容3APPTIMEDATE否否评价时间4STUDENT_IDNUMBER10否否外键5TEACHER_IDNUMBER10否否外键(6)联系方式表(TUTOR_CONTACT)联系方式数据表的信息包括联系表ID,MSN,QQ,Email,电话号码,用户编号。如表4-6所示。表4-6联系方式表序号字段名数据类型长度允许为空是否主键说明1CONTACT_IDNUMBER10否是信息编号2MSNVARCHAR20是否MSN账号3QQNUMBER15是否QQ账号4EMAILVARCHAR20否否电子邮箱5PHONEVARCHAR15否否电话号码6USER_IDNUMBER10否否外键(7)基本信息表(TUTOR_INFO)基本信息数据表的信息包括基本信息ID,姓名,性别,地址,擅长科目,所在学校,用户编号。如表4-7所示。表4-7基本信息表序号字段名数据类型长度允许为空是否为主键说明1INFO_IDNUMBER10否是信息编号2NAMEVARCHAR15否否真实姓名3SEXVARCHAR6否否性别46 4ADDRESSVARCHAR25否否家庭住址5POSIONVARCHAR20否否擅长科目6SCHOOLVARCHAR20否否所在学校7USER_IDNUMBER10否否外键(8)广告记录表(TUTOR_AD)广告记录数据表的信息包括广告ID,内容,类型,价格。如表4-8所示。表4-8广告记录表序号字段名数据类型长度允许为空是否为主键说明1AD_IDNUMBER10否是广告编号2AD_CONTENTVARCHAR200是否广告内容3AD_TYPEVARCHAR10否否广告类型4AD_PRICEDOUBLE10否否广告价格(9)发帖记录表(TUTOR_POST)发帖记录数据表的信息包括帖子ID,主题,内容,发帖时间,用户ID。如表4-9所示。表4-9发帖记录表序号字段名数据类型长度允许为空是否为主键说明1POST_IDNUMBER10否是帖子编号2CONTENTVARCHAR200否否内容3SUBJECTVARCHAR30否否帖子主题4POST_TIMEDATE否否发帖时间5USER_IDNUMBER10否否发帖用户(10)回帖记录表(TUTOR_REPLY)回帖记录数据表的信息包括表ID,帖子ID,回复内容,回帖时间,用户ID。如表4-10所示。表4-10回帖记录表序号字段名数据类型长度允许为空是否为主键说明46 1REPLY_IDNUMBER10否是表ID2CONTENTVARCHAR200否否回复内容3POST_IDNUMBER10否否帖子ID4POST_TIMEDATE否否回帖时间5USER_IDNUMBER10否否回复人4.4本章小结本章从平台的总体设计、功能详细设计、数据库设计三个方面进行了剖析。总结了平台开发实现后该具有的功能,规划了整体的交互界面,同时对数据库设计进行了详细的描述。通过此章不仅可以详细了解数据的流动和处理,还可以大致预想到平台开发成功后的基本模样。46 第5章家教平台的实现基于JAVAEE开放式家教服务平台选择了MYEclipse6.5作为开发环境,数据库为Oracle,服务器为Tomcat6.0.2,java作为其开发语言,采用B/S结构,采用JSP实现前端动态页面,采用MVC开发模式。该平台所实现的功能包括用户在平台发布和管理需求信息,管理个人信息,讨论相关主题,对相关的教员进行评价等。5.1开发环境5.1.1硬件环境平台的硬件环境主要有以下条件构成:Intel酷睿2双核T7450、2GBDDRIII、14.1英寸1280x800、250GBSATA、NVIDIAGeForce930、100Mbps网卡。5.1.2软件环境平台开发过程中所处的软件环境如下:WindowsXPSP3、Myeclipse6.5、Oracle10gR2、PLSQLDeveloper汉化版、EditPlus。5.2运行环境平台的服务器运行在WindowsXPSP3操作系统下。该平台为网络版,所以用户只要在能连接网络的环境下通过浏览器均能访问平台进行操作。5.3平台开发结构平台实现过程的具体的架构如图5.1所示。图5.1平台实现过程结构示意图46 5.3.1MVC体现(1)“M”即model层结构在平台开发过程中集中体现在名为basis的包(package)下,它包含了entity包和model包。entity包是用以进行数据持久化的,里边有对应实体的java类和Hibernate的.hbm.xml配置文件,如用户的基本信息在entity里边有Info.java和Info.hbm.xml用以将基本信息的数据持久化。而model则是实现逻辑业务功能的,里面包含了Manage包用来进行业务逻辑管理和dao包用来实现业务逻辑,Manage和dao都通过写抽象类和实现类来对数据进行封装。(2)“V”即view层结构则主要体现在webRoot目录下,所有呈现视图的JSP页面全部存在webRoot目录下。(3)“C”即control层结构主要体现在manage包中,里边有对应的Action来对程序的走向流程进行控制。如将基本信息从视图获取一直到存入数据库,这一整个过程都是通过InfoAction类来控制的。5.3.2表单乱码设计因为所有的页面都将使用GBK编码,所以提交的表单也是GBK编码。在JSP中设置request的编码为GBK就可以解决POST方式提交表单的中文乱码问题。具体代码为request.setCharacterEncoding("GBK")。5.3.3相关的xml配置文件(1)Basis.xml是spring的配置文件,它是配置连接数据源、Session工厂、事务拦截器bean的xml文件。其中连接数据源配置控制平台所连接的数据库类型和方式,如该平台是通过DBCP连接池方式连接的Oracle数据库;Session工厂则是控制持久化数据类和数据库对应表的映射,通过它可以控制每一个实体类都能映射到唯一的数据表;而事务拦截器bean是用以拦截开发过程中进行非法命名的java类,以保证开发代码的规范性和安全性。(2)mvc-config.xml是控制MVC跳转的配置文件,通过配置属性来进行模型-控制器-视图之间的跳转。(3)views.xml是对平台的所有JSP页面进行命名配置。如给实现主页面的main.jsp命名为main,在平台开发过程中如要实现跳转到主页面,则在传参时只要传main即可,而不用加.jsp的后缀。(4)Entity.xml是配置业务逻辑管理Manage和业务逻辑实现dao之间关系的,通过配置该文件,可以控制每一个逻辑管理都能对应与之匹配的逻辑实现。在Action中之所以调用Manage46 中的方法就能实现该逻辑业务,就是因为在改文件中进行了配置。如基本信息的保存操作,在InfoAction中调用InfoManage.saveInfo()就能实现对基本信息的保存操作,但在InfoManage中其实只定义了实现该逻辑的方法,具体的实现在InfoDaoImpl中。其业务逻辑的具体控制过程如图5.2所示。图5.2业务逻辑控制图5.4平台主界面平台的主界面如图5.3所示。图5.3平台主界面46 5.5前台功能模块实现5.5.1导航条和Log模块(1)功能描述:该模块用于显示家教服务平台的LOG、名称和导航指引。(2)功能实现:实现该功能的JSP为Top.jsp,通过使用JSP中的IMG标签导入平台的LOG名称,通过使用OPTION等标签,将导航指引名显示出来,并通过链接标签来实现导航的跳转。实现该功能的流程图如图5.4所示。图5.4导航和log实现流程图(3)平台导航条和Log实现效果如图5.5所示。图5.5导航条和Log实现效果图5.5.2网站公告模块(1)功能描述:用于显示平台发布的最新公告的主题,以便用户能及时预览和查看相关的最新消息。(2)功能实现:该模块实现于flashad.jsp中,其中图片使用IMG标签导入,每一条公告通过使用标签以链接的形式跳转到具体消息页面,公告的主标题则通过使用来实现显示。实现该功能的流程图如图5.6所示。图5.6网站公告实现流程图46 (3)网站公告的实现效果如图5.7所示。图5.7网站公告实现效果图5.5.3用户注册模块(1)功能描述:提供给平台未注册用户进行注册,以便能够享受到平台完善的服务功能。(2)功能实现:该功能的实现主要有三个表现,首先用户选择注册的身份,然后填写注册信息,最后管理员审核信息通过后反馈注册结果。其中用户选择实现于Login.jsp;填写注册信息分为学员和教员,前者实现于Student_reg.jsp,后者实现于Teacher_reg.jsp;管理员审核通过并将数据存入数据库实现于Action中的方法saveInfo(),而反馈结果则实现于Reg_result.jsp。实现该功能的流程图如图5.8所示。图5.8注册功能流程图46 审核通过后,则存入数据库,如学员信息存入数据库核心代码如下://创建学员相关实体StudentZhstuzh=newStudentZh();StudentJbstujb=newStudentJb();StudentLxstulx=newStudentLx();//将学员信息存入对应实体stuzh.setUsername(username);stuzh.setPassword(password);stuzh.setEmail(email);stujb.setRealname(RealName);stujb.setStuSf(xysf);stujb.setAge(Age);stujb.setFdWay(Qualification);stujb.setPosition(Position_b);stulx.setQq(Long.parseLong(qq));stulx.setMsn(request.getParameter("MSN"));stulx.setPhone(request.getParameter("Tel"));//通过调用manage方法将数据存入数据库studentManage.saveStuLx(stulx)studentManage.saveStuLx(stujb)studentManage.saveStuLx(stuzh)(3)用户注册功能实现效果选择注册身份如图5.9所示。图5.9选择注册身份46 教员填写注册信息如图5.10所示。图5.10教员填写注册信息学员填写注册信息如图5.11所示。46 图5.11学员填写注册信息注册结果如图5.12所示。图5.12注册结果图5.5.4用户登录模块(1)功能描述:该模块提供给注册用户进行平台登录。(2)功能实现:实现该功能的前端JSP为Lgin.jsp,前端通过使用JSP中的IMG标签导入图片等方式实现。实现判断用户是否能够成功登录平台则在LoginAction类中实现。实现该功能的流程图如图5.13所示。图5.13登录功能流程图46 验证登录用户的账号是否合法核心代码如下://获取用户账号密码及验证码Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");Stringckstr=request.getParameter("ckstr");//调用manage方法判断用户账号和密码、验证码是否合法Booleanflag1=checkUserManage.ckuserZh(username,password);Booleanflag2=checkUserManage.ckuserYzm(ckstr);//如果成功则跳转到主界面,失败则重新登录if(flag1&&flag2){returnnewModelAndView(this.getViewPage());}else{returnnewModelAndView(this.getLoginPage());}(3)用户登录实现效果如图5.14所示。图5.14用户登录5.5.5用户信息展示模块(1)功能描述:用于显示最新教员或学员的部分信息。其中右上角的“更多”能够跳转到教员或学院的搜索功能界面。(2)功能实现:如教员信息显示实现如图5.15所示。图5.15最新教员部分信息显示46 最新教员或学员部分信息显示为前端数据,实现于main.jsp中。其中信息显示部分通过使用JSP的
标签等进行实现,右上角的“更多”功能则使用链接标签来实现跳转到教员或学员的搜索界面。5.5.6咨询中心模块(1)功能描述:提供给用户幼儿教育、基础教育、热点培训信息的链接功能。(2)功能实现:咨询中心实现效果如图5.16所示。图5.16咨询中心咨询中心为前端显示功能,实现于main.jsp中。图片及内容显示通过使用JSP中的导入、
表格等标签来进行实现,其中的三个链接功能则是使用标签来实现的。5.5.7友情链接模块(1)功能描述:提供给用户与平台相关的友好门户网站的链接功能。(2)功能实现:友情链接实现效果如图5.17所示。图5.17友情链接友情链接亦是平台的前端显示功能,实现于main.jsp中。内容显示通过使用JSP中的
表格进行实现,分割线使用JSP中的
实现,其中的各个门户网站的链接功能则是使用
标签来实现的。5.5.8搜索模块(1)功能描述:提供给用户对教员或学员进行搜索,以便快速的寻找到自身需要的合适的服务。(2)功能实现:46 搜索界面通过使用JSP中的
等标签即可实现。5.6.2账号信息管理(1)功能描述:平台用户管理个人的账号信息,如对账号密码进行修改等(2)功能实现:前端通过JS对输入的信息进行是否为空判断,如均不为空则提交数据到后台进行数据修改。如学员账号信息管理实现效果如图5.22所示。图5.22学员账号信息管理学员账号管理实现的核心代码如下://获取学员账号信息Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");46 Stringnew_password=request.getParameter("new_password");Stringeamil=request.getParameter("eamil");//判断根据username判断password是否正确Booleanflag=checkInfoManage.ckPwd(username,password);//若真则修改,否则报错if(flag){checkInfoManage.upPwd(username,new_password);//更新密码returnnewModelAndView(this.getViewPage());}else{returnnewModelAndView(this.getErrorPage());}5.6.3基本信息管理(1)功能描述:平台用户管理个人的基本信息,如对姓名、年龄进行修改等。(2)功能实现:前端通过JS对输入的信息进行是否为空判断,如均不为空则提交数据到后台进行数据修改。如学员修改个人基本信息的实现效果如图5.23所示。图5.23学员管理基本信息学员的基本信息管理实现的核心代码如下://创建基本信息实体StudentJbstujb=newStudentJb();//获取输入的基本信息同时存入实体stujb.setRealname(request.getParameter("RealName");stujb.setStuSf(request.getParameter("xysf").toString());stujb.setAge(Long.parseLong(request.getParameter("Age");stujb.setFdWay(request.getParameter("Qualification");46 stujb.setPosition(request.getParameter("Position_b");stujb.setPositionA(request.getParameter("qt1").toString());stujb.setPositionB(request.getParameter("qt2").toString());stujb.setPositionC(request.getParameter("qt3").toString());stujb.setSex(request.getParameter("Sex").toString());stujb.setSalary(Long.parseLong(request.getParameter("Salary").toString()));stujb.setProvince(request.getParameter("Province");stujb.setCity(request.getParameter("City").toString());stujb.setCounty(request.getParameter("County").toString());stujb.setStuJj(request.getParameter("jj").toString());//进行数据更新Connectionconn=getSession().connection();PreparedStatementstat;stat=conn.prepareStatement(sql.toString());stat.execute();5.6.4联系方式管理(1)功能描述:平台用户管理个人的联系方式,如对住址、电话进行修改等。(2)功能实现:前端通过JS对输入的信息进行是否为空判断,如各项均不为空则提交数据到后台进行数据修改。如学员修改个人联系方式的实现效果如图5.24所示。图5.24学员联系方式管理学员修改联系方式实现的核心代码如下://创建联系实体StudentLxstulx=newStudentLx();//获取输入的信息同时存入实体46 stulx.setFmlAddres(request.getParameter("HomeAddr").toString());Stringqq=request.getParameter("QQ").toString();if(!("".equals(qq))){stulx.setQq(Long.parseLong(qq));}else{stulx.setQq(Long.parseLong("0"));}stulx.setMsn(request.getParameter("MSN"));stulx.setPhone(request.getParameter("Tel"));//进行数据更新Booleanflag2=checkUserManage.saveStuLx(stulx);Connectionconn=getSession().connection();PreparedStatementstat;stat=conn.prepareStatement(sql.toString());stat.execute();5.6.5邀请管理(1)功能描述:平台用户教员和学员用于管理邀请预订。(2)功能实现:前端通过JSP实现交互界面,通过JS对是否选中数据修改项进行判断,然后进行是否删除操作以及更新操作结果。如学员管理家教邀请实现效果如图5.25所示。图5.25家教邀请学员家教邀请管理实现的核心JS代码如下:functioncktcbox(){vartcbox=document.getElementById("Tcbox").checked;if(tcbox){tcbox.checked=none;returntrue;}else{ckgre.innerHTML="请确认已选择";returnfalse;}}46 5.7论坛模块实现(1)功能描述:平台用户在此发主题进行交流讨论等,内容会经过管理员审核才能显示在论坛区域。(2)功能实现:前端通过JS对输入的发帖信息或回帖信息进行是否为空判断,如各项均不为空且经过管理员审核后则提交数据到后台进行数据保存。如回复留言实现效果如图5.25所示。图5.25论坛留言保存留言信息功能实现的核心代码如下://获取留言信息Stringproject=request.getParameter("project");Stringcontent=request.getParameter("content");Stringusername=request.getParameter("username");Stringphone=request.getParameter("phone");Stringyzm=request.getParameter("ckstr");//调用帖子Manage判断验证码是否正确Booleanflag=checkPostManage.ckYzm(yzm);//若真则保存同时发布,否则报错if(flag){checkPostManage.savePost(project,content,username);returnnewModelAndView(this.getReplyPage());}else{returnnewModelAndView(this.getErrorPage());}46 5.8本章小结本章通过以程序流程图、部分功能的实现核心代码及实现后的效果图片展示了平台各个功能的实现。主要分为前台功能的实现和后台管理功能的实现,通过本章可以看到平台各个功能模块实现后的具体显示和操作界面,能过直观的看到用户与平台的交互效果。46 第6章结论与展望6.1结论普通的家教服务模式如实体中介,限制了教员和家长多沟通并禁止双方主动联系。家长在整个请家教的过程中都根本见不到教员面,甚至从来没有通过电话,完全听凭中介来挑选教员,使家长难以做到真正的放心。家长在苛刻的限制下找到一个教员,还要支付一笔昂贵的中介费。显然这种做法诚信度低,操作难度大,家长抱怨多。已经完全不适合社会信息化进步发展,网络家教服务平台应运而生。在通过指导老师的悉心指导下和相关书籍的帮助下,在改网络家教服务平台开发过程中具体完成的主要工作包括:1、编写了该家教平台的需求分析和总体设计。2、实现了用户注册与登录,教员和学员双向搜索,学员对教员进行评价,学员和教员双向邀请,用户发布需求信息,客服中心等基础功能。3、其中主要集中完成了教员可以发布自己的能力信息,免费查看网站上的教员、学员信息,搜索适合自己的学生,并向其发出邀请;学员也可以发布自己的需求信息,让更多教员看到自己的真实信息,同时也可以查看教员发布的信息,并向自己满意的教员发出邀请;用户个人信息的管理,如账号信息、基本信息、联系方式等。通过此次毕业设计,在动手能力方面有了一定了进步。但同时也发现开发一个服务平台应具备的知识不仅仅局限于所使用的语言,作为一个开发式服务平台更为重要的是对数据的安全处理,而在开发过程中却只集中与平台功能的实现,忽略了对数据安全性的更多考虑。在今后在工作的过程中,在增强动手能力的同时,也将更为注重知识的积累,以及软件平台开发过程中的的重点集中区域,以便能快速正确的开发出合格的软件。6.2展望随着升学压力的增长,社会竞争力的不断上升,家长也越来越愿意巨额的财力物力帮助子女提高学习成绩,使孩子在成长的道路上抢占先机,家教也就越来越被学生家长看重。虽然在中国一些小城市里家教服务平台还以门市存在,但是在诸如北京,上海等大城市中,网络家教服务已经呈现出成熟化、规范化、多元化的强劲发展势头。网络家教服务平台公开化的交流方式,不仅使用户双方能快速的找到所需,也能使双方在保证安全的前提下把投入成本降到了最低化。随着信息化的强势发展,网络家教服务平台也将跟着这股潮流进入一个大发展的时代,届时期望各大高校均有家教服务平台,带领家教服务事业更上一层楼。46 参考文献[1]邓子云等.精通J2EE网络编程[M].北京.清华大学出版社,2007[2]SunONEStudio5编程系列.构建J2EE应用程序[M].清华大学出版社,2007[3]王雷等译.[美]PallaviJainShadabSiddiqui著.J2EE专业项目实例开发[M].北京:中国水利水电出版社,2003[4]李刚.轻量级J2EE企业应用实战-Struts+Spring+Hibernate整合开发[M].北京:电子工业出版社,2007[5]李鲁群等.面向JavaWebService技术应用集成研究[J].计算机工程,2005,31(3):119-120[6]赛奎春.JSP应用与项目实践[M].机械工业出版社.2005.4.[7]郑玲.计算机专业毕业设计指导[M].清华大学出版社.2007.8.[8]RodJohnson.JavaEE设计开发编程指南[M].北京:人民邮电出版社,2006[9]鲁晓东等.JSP软件工程案例精解[M].北京:电子工业出版社,2005[10]思科科技产品研发中心.JSP应用开发详解[M].北京:电子工业出版社,2005[11]http://www.cjsdn.net/,2012.5.28[12]http://www.ibm.com/developerworks/cn/java/,2012.5.2846'