数据库课程设计模板

上传人:仙*** 文档编号:141988134 上传时间:2022-08-24 格式:DOC 页数:35 大小:1.30MB
返回 下载 相关 举报
数据库课程设计模板_第1页
第1页 / 共35页
数据库课程设计模板_第2页
第2页 / 共35页
数据库课程设计模板_第3页
第3页 / 共35页
点击查看更多>>
资源描述
中国计量学院现代科技学院数据库课程设计报告书学生姓名: 学 号: 专 业: 班 级: 课程设计题目: 指导教师: 系 部: 20 年 月基于Spring教学辅助系统的设计与实现摘要:随着网络技术的发展,各种实体服务、应用都开始网络化,同时应用的复杂性不断增加,这对应用所采用的WEB技术提出了更高的要求。为此,本系统采用了轻量级框架Spring Framework,通过对它各个模块的分析,深入论述了它的两大特殊机制即控制反转和依赖注入,说明了基于这两个核心机制的Spring框架,适用于大多数Web应用的各种不同要求。并在系统的结构上使用了MVC形式,MVC把系统分为模型(Model),视图(View)和控制Controller)三个层,而后对每个层的实现和关联进行了说明,由于Spring本身具有“无侵入性”的特点, 它又可以方便的集成其他框架。在此基础上,本文将Spring用于教学辅助系统的开发中,系统主要实现了学生教师的课程查询,学生发表评价、提问,老师查看评价回答问题的功能,并有后台管理功能,可以对课程、用户等所有信息进行管理。并在这个过程中对Spring MVC各个模块进行了分析讨论。由于框架的采用,使得整个系统具有良好的层次,也提高了其可维护性和可扩展性。关键词:教学辅助系统,MVC,SpringDesign and Implementation of Teaching Assistant System Based on Spring FrameworkAbstract:With the development of network technology, various entities, services, applications are beginning to network, applications at the same time the increasing complexity of applications using WEB technology has a higher demand.To this end, the system uses a lightweight framework - the Spring Framework, through the analysis of its various modules into the details of two special mechanism of inversion of control and dependency injection, pointing out that based on these two core mechanisms of the Spring the framework is fully applicable to the general Web applications, most of the functions, structure and performance requirements. The structure of the system to use form of the MVC, the MVC system is divided into three layers model (Model), the view (View) and the control of the Controller) are described, and then each layer to achieve and associated, since Spring itself invasive characteristics, it can easily integrate other frameworks.On this basis, the Spring for the development of teaching aids, the main achievement of the students and curriculum inquiries, students at the evaluation, ask questions, the teacher read reviews to answer questions, and backstage management function, you can right the course the user all the information management. And the spring of each module in the MVC in this process were analyzed and discussed. The entire system be structured, with good scalability, portability, and maintainability.Keywords: teaching assistant system, MVC, Spring 目 录摘要目录1绪 论11.1项目背景11.2项目目标与期望11.2.1应用教学辅助系统的必要性11.2.2教学辅助系统的特点2项目设计原则31.3研究内容与方案32系统分析42.1需求分析42.2技术可行性42.2.1J2EE框架技术介绍42.2.2框架的选择42.2.3Ajax的优势42.2.4在前端应用JavaScript框架52.3环境可行性分析62.3.1软件环境62.3.2硬件环境62.4系统结构可行性分析62.4.1B/S模式简介62.4.2B/S模式的优点63系统设计73.1总体设计73.2数据库设计73.2.1数据库系统分析73.2.2数据库的具体设计83.3详细设计93.3.1功能设计93.3.2具体设计93.4开发架构103.4.1Spring架构简介103.4.2经典的MVC模式103.4.3View视图部分113.4.4Controller控制器部分113.4.5Model 模型部分113.5本系统的开发环境及部署113.6数据持久层113.6.1持久化数据113.6.2JSON数据114系统实现134.1总体架构134.1.1用户登录模块134.1.2用户注册模块154.1.3课程查看模块154.1.4评价模块184.1.5答疑模块194.1.6管理模块214.2主要文件列表234.2.1中文乱码244.3对json的处理与解析255系统测试275.1测试的定义及目的275.2测试的原则275.3测试的方法275.3.1界面测试275.3.2白盒测试275.3.3黑盒测试275.4教学辅助系统的测试276总结29参考文献30IV中国计量学院现代科技学院课程设计(报告)1 绪 论1.1 项目背景教务系统的目标主要是提高教学管理的效率。传统的教务管理,都是基于报表或者电子表格,需要人工手动的对信息进行处理、统计,在大信息量的今天,这种效率已经完全不能满足要求,已经影响到教学质量的整体提高。而教学辅助系统的实现,他将学生的课程管理、教学答疑,教学质量评价集于一体,大大提高了教学管理的效率1。互联网的不断发展,其便捷性的特性,越来越多的人开始使用它,也改变了人们的生活方式。各种WEB应用层出不穷的今天,人们开始关注WEB应用的具体性能等因素,因此选择正确合理的系统体系结构是关键。本系统采用了Spring这一J2EE轻量级框架,Spring提供了一套全面并且十分成熟的轻型应用程序基本框架, 该框架有分层的体系结构, 这意味着能够选择使用它任意的部分,并且其低入侵的特点,使得它可以轻易的插入其他框架模块。Spring MVC 轻型应用程序框架将面向切面编程(AOP)思想融入了整个框架的设计当中, 不仅缓解了重量级容器所带来的部署复杂,难以测试或者调试等问题,而且很好的解决了跨越多个模块的行为,如日志记录、事务完整性、授权、安全及性能优化等,成为面向对象编程(OOP)技术的强有力补充2。本课题实现的基于Spring教学辅助系统具体识别流程如图 1.1所示:1.2 项目目标与期望1.2.1 应用教学辅助系统的必要性现在不少高校已经意识到网络发展对高校教务管理带来的方便,纷纷开发了服务于自己学校的教学辅助系统。教学辅助系统系统具体有如下特点:1.采用教学辅助系统,可以使用统一的学生数据库,将服务于学生的各个教学辅助模块集中在一起,有效地减少数据的重复以及资源的重复浪费。2.辅助系统集课程查询、答疑、评价于体,能让学生更好的参与学习,及时方便的反应自己的问题无论在课内课外,老师也能及时了解讲课效果,针对学生提出的问题、评价对自己的教学进行及时调整。图 1.1系统流程图1.2.2 教学辅助系统的特点要想通过教学辅助系统来提高教学效率与品质,学校积极推广与老师、学生的配合使用是必不可少的,需要特别注意以下三点:1.学校要及时完善学生信息数据库,并及时更新与维护,因为这是教学辅助系统的基本依托。2.学校应该把更多的可以通过网络完成的事务,放入辅助系统中去,以提高系统的利用率。3.后期的维护也非常重要,系统存储的是关系学生的重要数据,应该做到及时备份,并且有专人接受使用人的错误报告,及时发现系统错误并修复,以免造成更大的损失。项目设计原则教学辅助系统师生间的频繁使用,决定了它必须有很大的可靠性,可靠性意味着系统在测试运行过程中避免可能发生故障的能力,且一旦发生故障后,具有解脱和排除故障的能力,在无人值守的情况下,能保证自动恢复启动。同时也要考虑到系统的可理解性,任何新用户在登录系统后,都能很快的自己掌握使用方法。最后是系统的可扩展性,系统应留有升级接口和升级空间,为以后教学发展留有扩展空间。1.3 研究内容与方案通过调查,要求教学辅助系统需要有以下功能:系统管理模块、课程查询模块、评价模块、答疑模块、注册模块、登录模块、登出模块。管理员可以对所有数据进行添加、删除、修改等操作。学生对老师作出评价后,可以对自己的评价进行修改、删除等操作,并可以向老师提出相关问题,并可以通过老师姓名与星期实现对课程的查询。老师对学生提出的问题进行回答,并可以通过老师姓名与星期实现对课程的查询。教学辅助系统是一个面向学校教务管理人员、教师和学生,为其提供服务的综合管理系统。许多成功案例证明,基于WEB、B/S结构的信息管理系统是解决教务管理工作中这些问题的最佳选择。它是一种集成化的人机系统,能为组织机构的作业管理和决策职能提供信息支持。所以基于B/S架构的系统研究是本次设计的主要内容。B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。本教学辅助系统利用DSH架构把DWR框架、Spring框架、Hibernate框架有机的整合起来,共同完成Web应用程序的开发,发挥每个框架的优秀性能,实现基于AJAX的JavaEE应用程序快速开发。运用该教学辅助系统,能实时地对学生提出问题作出回答,十分方便地查询课程结果,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改课程情况。302 系统分析2.1 需求分析互联网飞速发展的今天,人们越来越体验到网络带来的便捷,更愿意在网络上完成一些本来比较费时费力的事情。而构建在网络上的教学辅助系统,正是考虑到了现代高校学生与老师的切实需求,大学教育倡导自学,学生在自我学习中会遇到各种各样的问题,但是偌大的校园找到老师提问并不容易,传统联系方式也制约了问题的形式。教学辅助系统的在线答疑很好的解决了这一问题,老师学生可以顺利的互相交流,只要在有互联网的地方都可以实现。同时老师还能实时的知道学生对自己授课情况的反馈,及时调整授课形式,以适应更多学生,这显然比传统的反馈方式更加的有效率,也更容易收集到更多学生的意见。2.2 技术可行性本系统采用J2EE的Spring + Hibernate的整合框架,并且完全采用了Spring MVC模式。前端视图部分采用JSP展现,并配合dojo这一前端框架进行显示方面的优化,实现AJAX技术,提高用户体验。2.2.1 J2EE框架技术介绍J2EE是一个基于Java 2平台来简化企业级应用开发的一个架构,它使得各种基于其的框架有良好的兼容性。J2EE开发框架主要有Hibernate,Spring,Struts2等。2.2.2 框架的选择Spring是一个解决了很多企业化复杂方案的轻量级框架。Bean Factory是Spring重要实现。Bean Factory 使用控制反转 (IOC) 模式使得配置文件与程序的实际代码相互分离,通过工厂模式,实际就是面向接口的编程,大大提高复用性。同时还具有面向切面编程的特性。Spring还插入了几个 ORM 框架,集成了Hibernate和其他O/R mapping解决方案3。Hibernate是一个对对象关系进行映射的框架,它对传统JDBC的一个轻量封装,它的出现,是个对数据库的操作也变得面向对象化。在JDBC适用的地方Hibernate都可以胜任,既可以在Java的客户端程序实用,也可以java Web应用中使用。2.2.3 Ajax的优势AJAX 指异步 JavaScript XML(Asynchronous JavaScript And XML)。AJAX 是一种用于创建快速动态网页的技术。通过在浏览器与服务端进行少量数据交换,AJAX 可以使网页实现异步刷新。这就意味着,可以在不刷新整个页面的情况下,对部分区域进行数据刷新。区别于传统的网页需要对整个页面进行重新载入4。这样AJAX的优势就很明显了,有更迅捷的响应速度,和用户体验。传统的表单提交,是向服务器提交数据,请求一个新页面,服务端接受后返回一个新的页面。这种发送非常浪费网络资源,因为旧页面和新页面其实很多地方是相同的,而且刷新给用户带来的感觉是,界面反应慢,因为这一切不仅取决于网络问题,还有服务器的响应时间。与此不同,AJAX仅仅向服务器发送少量数据,然后取得必须的返回数据,他使用XML或者JSON等传送数据,在浏览器端采用js接受响应,对数据进行解析,展现在响应位置。这样服务器和浏览器的交换数据大大减少,如此给我们的体验就是页面加载速度大大提高,浏览更加流畅。采用Ajax带来的好处非常明显,就是能在不更新整个页面的前提下刷新前台数据。这使得Web应用程序更加迅速、有效的回应用户请求,避免传送无用的重复信息。2.2.4 在前端应用JavaScript框架JavaScript 框架是一组能轻松生成跨浏览器兼容的 JavaScript 代码的工具和函数。每一个库都在众多流行的 Web 浏览器的现代版本上进行了可靠的测试,因此,您可以放心地使用这些框架,您的基于 JavaScript 的 RIA 将会在不同浏览器和平台上以类似的方式工作。除了解决跨浏览器问题,使用 JavaScript 框架可以更容易地编写检索、遍历、操作 DOM 元素的代码。它们不仅提供获取 DOM 元素引用的快捷函数,而且还允许 DOM 遍历函数以菊花链(daisy-chaining)方式查找任意深度的父元素、子元素、兄弟元素5。最后,框架还提供一系列函数来更轻松地操作这些对象,可以改变、添加或删除内容本身;或者使用 CSS 样式类来改变元素的外观。JavaScript 框架有一个特性对于它最近的流行非常重要 支持 Ajax。与 JavaScript 的其他许多方面一样,每个 Web 浏览器往往以不同方式支持 Ajax,这使得以一种在所有 Web 浏览器中都受支持的方式处理 Ajax 变得十分复杂。几乎所有 JavaScript 框架都包含某种形式的 Ajax 库支持,通常提供 Ajax 请求和响应对象。Dojo是一个强大的面向对象JavaScript框架。主要由三大模块组成:Core、Dijit、DojoX6。Core提供Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。Dijit是一个可更换皮肤,基于模板的WEB UI控件库。2.3 环境可行性分析2.3.1 软件环境操作系统:Windows 7旗舰版数据库: Mysql 5.5Web服务器:Tomcat7.0IDE:MyEclipse9.1外部包: springframework.core.jar等2.3.2 硬件环境CPU:Intel Pentium Dual CPU T3200 2.00GHz 2.00GHz。显卡:ATI Mobility Radeon HD 3470 256MB。RAM :4GB。2.4 系统结构可行性分析2.4.1 B/S模式简介B/S模式即浏览器/服务器模式。它由客户端的浏览器、服务端的web服务器已经数据库等组成。客户端通过url请求向浏览器发送请求,服务器接到请求后,通过内部逻辑,进行查询数据库等的操作,将结果页面返回给客户浏览器。2.4.2 B/S模式的优点首先,它简化了客户端。它无需像C/S模式那样在不同的客户机系统上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间与内存,也不会对客户机的配置有特殊的要求,而且使安装过程更加简便、网络结构更加灵活。其次,它简化了系统的开发和维护。开发者无需要再向不同用户定制不同的客户端,比如不同权限的用户有不同的客户端。相比C/S,B/S的维护具更加便利,他甚至不需要考虑客户端的情况。当软件需要升级时,它不需要对客户端进行升级,而只需对Web服务器上的服务程序进行单一的升级操作即可。再次,它适合于跟广泛的用户。对于C/S模式,客户端是经过定制的界面,需要独立安装,各种操作也许并不是一般用户所熟知的。但采用B/S模式的系统,客户端只需要一个常见的浏览器即可,简单的说,会上网、了解系统用途,即可对系统进行操作。3 系统设计本系统主要分三个大的功能模块,分别为课程信息、答疑评价、系统管理,系统根据用户权限,显示不同的功能给用户。3.1 总体设计教学辅助系统结构如图 3.1所示:图 3.1系统结构图3.2 数据库设计3.2.1 数据库系统分析 依据项目的处理需求,对应数据表的设计及功能如下: 用户表(t_user): 主要用于保存用户信息,包括管理员、学生、教师。 课程表(t_subject): 主要用于保存课程信息 选课表(t_course): 主要用于保存学生选课信息 课程安排表(t_curriculum): 主要用于保存学校排课安排 答疑表(t_message): 主要用于保存学生老师的问答情况3.2.2 数据库的具体设计表3-1 t_user表字段名数据类型可以为空是否主键描述user_idintNot null是自动编号user_namevarchar(45)Not null用户名(学号)passwordvarchar(45)Not null密码namevarchar(45)Not null真实姓名ageint年龄last_visitDATETIME最后访问时间last_ipvarchar(45)最后访问IPtypevarchar(45)用户类型classvarchar(45)用户班级addressvarchar(45)用户地址表3-2 t_subject表字段名数据类型可以为空是否主键描述idintNot null是自动编号namevarchar(45)Not null课程名numbervarchar(45)Not null课程代号表3-3 t_course表字段名数据类型可以为空是否主键描述idintNot null是自动编号student_numbervarchar(45)Not null学号curriculum_numbervarchar(45)Not null课程安排号messagevarchar(45)评价信息表3-4 t_curriculum表字段名数据类型可以为空是否主键描述idintNot null是自动编号numbervarchar(45)Not null课程安排代号weekvarchar(45)Not null课程周次amountvarchar(45)选课学生数teacher_numbervarchar(45)Not null教师编号subject_numbervarchar(45)Not null课程代号class_addressvarchar(45)Not null教室表3-5 t_message表字段名数据类型可以为空是否主键描述idintNot null是自动编号teacher_numbervarchar(45)教师号student_numbervarchar(45)Not null学生号message_askvarchar(45)Not null提问内容message_answervarchar(45)回答内容ask_timeDATETIMENot null提问时间answer_timeDATETIME回答时间statusvarchar(45)问题状态3.3 详细设计3.3.1 功能设计本系统主要用于教学辅助,所谓教学辅助就是对常见教育的一种补充。具体地讲,系统可以实现课程查询,向老师提问,为授课老师评价,老师可以查看评价与回答问题,管理员可以对用户、课程、答疑、评价进行统一管理。具体实现目标如下:q 为每个用户呈现其课程表。q 老师、学生都可以以星期或课程名等查询自己的课程。q 学生可以想所有老师提出问题,问题在教师端显示,等待老师回复。q 学生可以向授课老师评价,老师可以查看到学生对自己的评价。q 用户可以查看到最新的几条公开答疑记录。q 管理员可以对全部数据进行管理包括用户、课程、答疑、评价。q 系统最大限度地实现了易安装性、易维护性和易操作性。q 系统运行稳定、安全可靠。3.3.2 具体设计教学辅助系统是针对高校教学的WEB管理系统。登录界面包含功能模块:用户登录:教师、学生、管理员都可以在该页面登录。用户注册:只开放普通用户的注册。主页功能模块主要包括以下功能大类:课程信息:主要包括课程表显示、课程条件查询。答疑评价:主要包括学生提问、学生评价、教师答疑、教师查看评价。系统管理:主要包括用户的修改删除,评价的修改,提问的修改删除。3.4 开发架构本系统采用Spring + Hibernate的框架。Spring 框架提供了对 Hibernate、JDO 和 MYBATIS的集成支持。Spring 对 Hibernate有很好的支持,整合了许多 IOC 的方便特性,解决了许多典型的 Hibernate 集成问题。3.4.1 Spring架构简介Spring 框架是一个分层架构,由7个定义良好的模块组成。Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式,如图 3.1所示。图 3.1 Spring 框架是一个分层架构Spring 框架可以在任何J2EE容器中运行。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境 (Web 或 EJB)、独立应用程序、测试环境之间重用7。3.4.2 经典的MVC模式MVC将系统分解为model、view、Controler三部分,每一部分都相对独立,职责单一,在实现过程中可以专注于自身的核心逻辑。MVC是对系统复杂性的一种合理的梳理与切分,它的思想实质就是“关注点分离”。在最初的网页中,例如ASP、JSP等中,一些数据库连接、查询语句都放在页面中,这使得页面变得臃肿难以维护,也降低了代码的可重用性。MVC的分层概念将他们完全的分离开来。虽然构建MVC架构的工程比一般的工程复杂很多,但是这带给我们的好处,在后期会有很好的体现。MVC的优点:低耦合性、高重用性和可适用性、较低的生命周期成本、可维护性高。 Spring同时集成了很实用的MVC框架。同时它又是非常友好具有低入侵的特性,可以由用户选择是采用自有MVC还是其他框架的MVC8。3.4.3 View视图部分此层与控制层结合比较紧密,需要二者结合起来协同工作。View层主要负责前台JSP页面的表示。Spring的控制器Controller会返回一个ModelAndView的实例。Spring根据ModelAndView实例中的View和Model把信息反馈给用户。3.4.4 Controller控制器部分Controller层具体是响应页面的请求,在控制层里会调用service层的接口,之前一般会将这些调用关系写进配置文件,但在Spring2.5之后,我们可以方便的使用注解来完成这些任务。对于具体的业务当然会有不同的控制器与之对应,而我们的工作是将一些类似的模块进行抽象,以加大代码的复用,也使程序结构清晰。3.4.5 Model 模型部分Model的职责就是为View提供展示的数据,一个模型可以为多个视图提供数据。.3.5 本系统的开发环境及部署本系统使用MyEclipse9 这一IDE进行设计开发,并在tomcat中进行调试。使用最新的Spring 3.1发布版框架。本系统可以直接部署在tomcat中,采用Mysql数据库。3.6 数据持久层数据持久层主要由DAO来完成,对数据库的操作都被封装在这里面。DAO的设计一般分三步,一是设计DAO接口,然后是创建这个接口的实现类,在以往还要在配置文件里进行配置,但如今你只需要在配置文件配置好自动扫描,然后在实现类上进行相应标记即。之后就可以在service类中进行调用接口,并不用关心其具体实现。3.6.1 持久化数据数据持久化,就是把内存中暂存的数据模型转换成存储模型。Hibernate框架就提供了这种机制。对象上数据的修改,Hibernate框架会把这种修改同步到数据库中去9。它加大了代码的重用性,具体代码无关于选择了何种数据库,可以很方便的更换数据库,而只需要简单的修改配置文件即可。3.6.2 JSON数据JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,类似于XML,它是基于文本了,非常易于开发人员的阅读与解析应用10。Spring json-view 为Spring-MVC提供了对JSON的支持,它深入地集成在Spring MVC模块里,能够适用于所有标准的控制器类。4 系统实现4.1 总体架构本系统使用最新的Spring框架,采用注解模式,减少了配置文件的数量,提高了开发效率。4.1.1 用户登录模块用户登录模块是用户进入主页面的入口,其运行结果如图 4.1所示:图 4.1用户登录模块login.jsp点击登录后,页面使用js向后台异步提交数据,代码如下:msg.load (url: user.do,params:userName=+Ext.getDom(userName).value+&passWord=+Ext.getDom(passWord).value,text: Logoning.,callback: function(oElement) if(oElement.dom.innerHTML=success)oElement.dom.innerHTML=验证成功,,请稍候.;window.setTimeout(window.location=index.jsp, 200););后台控制层接到请求后,执行:RequestMappingpublic ModelAndView loginCheck(HttpServletRequest request,HttpServletResponse response, ModelMap modelMap) throws IOException HttpSession session = request.getSession(); List list = userService.findUser(request.getParameter(userName),request.getParameter(passWord);response.setContentType(text/html; charset=UTF-8);PrintWriter pw = response.getWriter();if (list.size() = 0) pw.print(用户名或密码错误!); else modelMap.put(list, list);User user=(User) list.get(0);user.setLastIp(request.getLocalAddr();user.setLastVisit(new Date();userService.updata(user);session.setAttribute(userName,user.getUserName();略。pw.print(success);return null;如验证成功,将跳转到index.JSP主界面,显示各个功能模块,并且从session中取出数据展示个人信息,如图4.2所示:图 4.2个人信息显示session.setAttribute(type,user.getType();这个session字段存储了用户角色信息,主页面取得其值,通过stl语句判断显示相应的功能模块。4.1.2 用户注册模块在登录界面点击注册后,将进入注册页面,添加完毕提交到user控制器的reg方法。RequestMapping(params = method=reg)public ModelAndView regCheck(HttpServletRequest request,HttpServletResponse response, ModelMap modelMap,RequestParam(userName) String userName,RequestParam(age) int age,RequestParam(trueName) String trueName,RequestParam(passWord) String passWord) throws IOException HttpSession session = request.getSession(); List list = userService.findUserByUserName(request.getParameter(userName);response.setContentType(text/html; charset=UTF-8);PrintWriter pw = response.getWriter();if (list.size() != 0) /pw.print(用户已经存在!);return new ModelAndView(reg,error,用户已经存在!); else User user=new User();user.setLastIp(request.getLocalAddr();user.setLastVisit(new Date();user.setAge(age);user.setPassWord(passWord);user.setTrueName(trueName);user.setUserName(userName);userService.save(user);session.setAttribute(userName,user.getUserName();略。return new ModelAndView(index);取得页面提交值,先判断该user是否已经存在,如果未存在,就创建新的USER对象,将传入值放入对象中,调用userService的save方法,向user表写入新数据。4.1.3 课程查看模块 课程查看模块分为我的课程表、课程查询、教师课表三个功能项。其实现原理类似。首先是我的课程表功能,前台使用DOJO的grid插件接受后台的JSON数据进行展现。前台请求语句:xhr.get(url : /myclass.json?”+”userName=,handleAs : json)后台响应控制器:RequestMapping/列出所有课程根据学号public ModelAndView kc(ModelMap modelMap,RequestParam(userName) String userName) List list = courseService.listCourse(userName);JSONObject datas = new JSONObject();JSONArray items = new JSONArray();if (list != null & list.size() 0) for (int i = 0; i list.size(); i+) Object obj = (Object) list.get(i);JSONObject da = new JSONObject();da.put(name, obj0);da.put(week, obj1);da.put(teacher_number, obj2);da.put(class_address, obj3);da.put(curriculum_number, obj4);da.put(id, obj5);da.put(message, obj6);items.add(da);datas.put(rows, items);modelMap.put(list, datas);return new ModelAndView(manage);后台调用courseService的listCourse方法,获取数据,然后通过JSONObject对json数据进行重新组装,以适应前端dojo的解析11。图 4.3我的课表课程查询功能中,可以根据老师、课程名称、星期等关键字进行查询,如图4.4、图4.5所示:图 4.4课程查询图 4.5教师课表4.1.4 评价模块评价主要有2个功能模块,分别为学生的我要评价,和教师的查看评价,如图4.6所示:图 4.6查看评价页面我要评价功能中,单击评价,将弹出一个dojo样式的form表单,填写完毕后会进行异步提交,如图4.7所示:而学生评价的权限只限于已选课程。图 4.7我要评价页面4.1.5 答疑模块答疑主要有3个功能模块,分别为学生的最新问答、我要提问,和教师的我要回答。下面对最新回答进行讲解。用户点击最新问答后,将载入最新问答的7条记录。图 4.8最新问答页面此处是对多个表进行了联合查询,service层的代码如下:Transactionalpublic List listCourse(String student_number)String sql= select subject.name,curriculum.week,curriculum.teacher_number,curriculum.class_address,course.curriculum_number ,course.id ,course.message +from Subject subject,Curriculum curriculum, Course course,User user +where subject.number=curriculum.subject_number +and curriculum.number=course.curriculum_number +and course.student_number=user.userName +and user.userName=+student_number+;List list = userDao.createQuery(sql);return list;控制成将查询结果组装成JSON后通过modelandview发回前台,前台通过表格形进行展现12。我要回答模块中,单击回答,将弹出一个dojo样式的form表单,填写完毕后会进行异步提交,并且后台将自动写入回答的时间,如图4.9所示:图 4.9我要回答页面而学生的我要提问页面除了可以查询自己的提问记录外,还可以进行提问,同样是基于dojo的异步提交。对于“提问老师”,这一个框是在页面加载前,向后台请求的数据,主要代码如下:RequestMapping(params = method=loadMessage)public ModelAndView loadMessage(ModelMap modelMap,RequestParam(userName) String userName) List list = messageService.listTeacher();modelMap.put(list, list);List list2 = messageService.listMessageByStudent(userName);modelMap.put(list2, list2);return new ModelAndView(message);列出教师名单和按学生姓名查询出的问答记录返回给前端的我要提问页面,如图4.10所示:图 4.10我要提问页面4.1.6 管理模块管理功能分为用户管理、课程管理、留言管理、评价管理,只有管理员才能看到这个几个功能想,才能进行管理操作。图 4.11系统管理主界面用户管理界面可以对用户进行编辑或删除,如图4.12所示:图 4.12用户管理界面问答管理界面可以对问答记录进行编辑或删除,如图4.13所示:图 4.13问答管理界面评价管理界面可以对评价记录进行编辑,如图4.14所示:图 4.14留言管理界面4.2 主要文件列表本系统主要的文件如图4.15所示:图4.15系统主要文件列表4.2.1 中文乱码Spring中JSP提交form表单中文经常会出现乱码的情况,在检查数据库、页面编码均一致为UTF-8后,还是没有解决这一问题。后经过各种资料的查询,问题得以解决,方法如下。需要使用spring的过滤,在在web.xml中添加如下过滤器,即可解决该乱码问题:characterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtruecharacterEncodingFilter/*4.3 对json的处理与解析本系统service查询数量库采用了两种方式,返回的结果也并不相同,一种是如:public List listCourseById(int id)String sql= select course +from Course course +where course.id=+id;List list = userDao.createQuery(sql);return list;这种方法,返回的是course对象,经过Spring的自带的JSON组装,可以直接在前台用DOJO进行解析。但是很多时候要用到多表联合查询,返回的是多个对象,此时Spring组装的JSON无法在前端正确解析。于是我使用了一个开源的JSON解析库,对JSON进行重新拼装。例如:RequestMapping(params = method=jskb)/教师查看课表public ModelAndView listJskb(ModelMap modelMap,RequestParam(userName) String userName) List list = courseService.listJsCourse(userName);JSONObject datas = new JSONObject(); JSONArray items = new JSONArray();if (list != null & list.size() 0) for (int i = 0; i list.size(); i+) Object obj = (Object) list.get(i);JSONObject da = new JSONObject();da.put(name, obj0);da.put(week, obj1);da.put(class_address, obj2);items.add(da);datas.put(rows, items);modelMap.put(list, datas);return new ModelAndView(manage);将教师课表的信息放入list.rows节点中去,前端直接可以进行解析。5 系统测试5.1 测试的定义及目的软件测试就是利用一定的方法对软件的质量或者使用性进行判断和评估的过程。软件使用者和开发者作为不同的角色,会有不同的立场,这里我们从软件开发者的角度考虑,测试的目的是排除系统中存在的影响需求实现的BUG,以明确系统开发已经达到用于的需求。5.2 测试的原则作为开发者,应当把“尽早地和不断地”作为基本原则。严格而广泛的编制测试用例,每个测试用例都要包括输入值,以及预期结果。同时要避免测试的随意性,防止一般错误被遗漏。开发人员必须对每一个有疑问的测试结果进行充分分析,找出问题根源,才能真正解决问题,对这些都要形成报告,以利于后期的维护。5.3 测试的方法随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强;选择合适的软件测试方法可以让我们事半
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!