计算机组成原理8位模型机系统逻辑功能设计毕业论文.doc_第1页
计算机组成原理8位模型机系统逻辑功能设计毕业论文.doc_第2页
计算机组成原理8位模型机系统逻辑功能设计毕业论文.doc_第3页
计算机组成原理8位模型机系统逻辑功能设计毕业论文.doc_第4页
计算机组成原理8位模型机系统逻辑功能设计毕业论文.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西南科技大学本科生毕业设计论 计算机组成原理8位模型机系统逻辑功能设计毕业论文目 录第1章 绪 论11.1本课题发展概述11.2本课题的目的和意义11.3本课题所需技术要求21.4本课题发展现状21.5指导思想及主要解决问题3第2章 辅导答疑系统需求分析与设计42.1系统主要实现的目标42.2系统基本设计思想42.2系统功能需求分析52.2.1系统功能描述52.2.2数据流程分析52.2.3系统实体关系分析72.2.4系统数据库设计1672.3系统可行性分析与环境要求92.3.1 可行性分析92.3.2系统环境要求10第3章 辅导答疑系统总体设计方案113.1系统体系结构设计113.1.1 客户端层设计113.1.2 中间层设计123.1.3 数据层设计123.2功能模块设计123.2.1学生模块主要功能133.2.2 教师模块主要功能133.2.3管理员模块主要功能143.3实现系统方案的关键技术143.3.1 Java技术简介143.3.2 JSP技术简介14第4章 辅导答疑系统详细设计与实现174.1系统架构的设计174.1.1常量层设计174.1.2系统资源层设计174.1.3系统WEB层设计174.1.4系统业务逻辑层设计174.1.5系统持久层设计184.2 MVC+DAO实现模块主要功能184.2.1 MVC框架184.2.2 MVC整体结构184.2.3页面控制器194.2.4视图204.2.5模型214.3管理员模块的实现214.3.1 Login.jsp登录页面214.3.2 LoginController登录控制器234.3.3 AdminDao 管理逻辑234.3.4 AdminDaoImpl管理业务的实现244.3.5 DaoFactory静态工厂314.3.6 AdminVO对象324.3.7 Dbconnector数据库联接324.3.8 管理员登录截图35第5章 辅导答疑系统测试与评价365.1测试环境365.1.1 系统软件365.1.2 系统硬件365.2测试方案365.2.1管理员模块测试365.2.2教师模块测试375.2.3学生模块测试375.3部分功能测试结果图375.4 系统评价39结 论40致 谢41参考文献42西南科技大学本科生毕业设计论文第1章 绪 论1.1本课题发展概述网络技术对远程教育产生的深刻影响,直接表现为提供给学习者大量便捷的机会,学习者可以根据自己的实际情况,灵活调整自己的学习进度、学习计划及学习内容,从而真正体现“以学生中心”的现代教育思想。网络课程可以按学习者的思维方式组织教学内容,教学效果则由教师和学习者共同评价。使传统的教学由单向转为双向,实现了远程教学中师生之间,学生与学生之间的双向交流,由大众化教育趋向个性化教育1。远程教育教学环境的完善,以及高质、高效、满足个人需要的网络课程设计和素材库的建设,无疑对现代远程教育体系发展至为重要。依靠现代通信技术及计算机技术的发展的网络课程教学体系,大幅度拓宽了传统教育意义上学习者的范畴,教育实施过程不受时间、地点、国界、气候等影响,网络上广泛的教学资源极大地丰富了课程教学内容,真正打破了明显的校园界限,改变了传统“课堂”的概念,学生能突破时空限制,接受到来自不同国家、不同学校、不同教师的指导。可获得更丰富、直观的多媒体信息,共享全世界各图书馆的资料3。总之,网络技术的发展为现代远程教育提供了强大的技术支持,使现代远程教育成为信息时代人们教育和学习的最佳方式之一。1.2本课题的目的和意义大量网络课程的开发建设使网络教学得到了迅速的发展,答疑、解惑作为教育活动中的一个必不可少的环节,也是网络课程中的一个重要组成部分。网络课程的建设使学生在任何时间任何地点都可以上网参加学习,但由此产生的问题是教师不可能及时解答学生学习过程中遇到的问题,因此需要建立一个方便而高效的在线答疑系统。有了这样的系统,传统教学中的辅导答疑也可以放在网上进行,不受时间和地点的限制。教师可以根据学生提出的普遍问题,及时调整教学内容和进度、改进教学方式,从而改善教学的效果。学生在学习过程中产生的问题以及教师的解答,经过一定时间的积累还能够成为可重复利用的宝贵资源。1.3本课题所需技术要求在线答疑系统的基本结构一般采用较为流行的浏览器/服务器(B/S)模式,服务器端采用Windows XP系统,以JSP进行页面的信息及操作收集,JAVA为服务器端处理程序,采用Microsoft SQL SERVER 2000对数据进行存储,使用MVC Model2设计模式作为架构来进行编码实现。通过JSP程序将消息传送给服务器,服务器与数据库建立连接进行相应的处理,经传递机制将结果传回客户端,再以Web页面的形式显示出来。1.4本课题发展现状随着网络技术的发展及其在教育中的应用,教育将从内容、形式、方法和组织等方面发生根本性的变革。进入90 年代以来,多媒体和计算机网络逐渐被引入教学过程,成为现代教育的技术基础。实施以校园网为基础的教育信息化工程,研究现代信息技术对教育思想、教育管理、教育内容、教育方法、教育手段和教育过程的作用和影响,探索构建现代教育技术环境下的新型教学模式,已成为新时期教育所面临的新课题5。网上答疑系统以计算机和校园信息网络为技术基础,把计算机和网络的操作应用能力纳入每个学生必备的基本素质之中,使学生在应用计算机进行学习的过程中,以计算机对于人的自主性、能动性、创造性所具有的延伸意义,同化、顺应到自身的认知结构之中,逐步形成基于计算机文化的智能知识结构,从而推进学生整体素质的提高。基于Internet的网络教育环境中,广大受教育者可以根据自己的学习要求,在不受任何时间和空间的约束下,共享网络学习资源,实现传统教育无法做到的“个性化教育”。但网上自主学习也存在不利的一面,没有了教师面对面的解释和演绎,学生经常会遇到各种疑问,因此,及时消除学生学习障碍的辅导答疑系统成为了网络教育平台的重要组成部分17。目前国内具有代表性的网上辅导答疑系统主要有以下几种3:基于E-mail 和系统留言板的答疑系统。这种方式尽管方便快捷,但其实效性完全依赖教师的及时回复,若教师耽搁将会使解答失去应有的价值。因此说该系统只是一种初级而简单的答疑方式,远远没有把远程教育的潜力发挥出来。我国目前的网上辅导答疑系统多采用这种方式,且大部分是面向中小学的远程教育系统。基于Web BBS, 讨论方式的答疑系统。学习者可以提出问题供大家讨论,也可以在教师的主持下进行Web实时聊天讨论。属于这类系统的有清华大学远程教育系统和湖南大学多媒体信息教育学院的远程教育系统。基于Answer web 的自动答疑系统。该系统是一个动态的问题及答案数据库,用户可以通过输入关键词在系统资源库中查找相关材料,解决疑问。此类系统的典型代表是上海交通大学的远程教育系统。1.5指导思想及主要解决问题尽量采用现有软硬件环境,及先进的管理系统开发方案,提高系统开发水平和应用效果的目的;系统应符合教学管理的规定,满足日常管理的需要,并达到操作过程中的直观、方便、实用、安全等要求;系统采用模块化程序设计方法,这样既便于系统功能的各种组合,又便于未参与开发的技术维护人员补充、维护;系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改等操作。第2章 辅导答疑系统需求分析与设计2.1系统主要实现的目标有了这样的辅导答疑系统,传统教学中的辅导答疑也可以放在网上进行,不受时间和地点的限制。教师可以根据学生提出的普遍问题,及时调整教学内容和进度、改进教学方式,从而改善教学的效果。学生在学习过程中产生的问题以及教师的解答,经过一定时间的积累还能够成为可重复利用的宝贵资源6。具体实现目标如下:(1) 满足在Internet上运行的条件,并具备安全、稳定、下载快的特点。(2) 充分利用计算机的表现力,方便学习者学习,提高学习者的学习兴趣和自觉性。(3) 符合学习者的认知规律,在疑难关键知识点上提供多种形式和多层次的学习内容。(4) 交互性强,学习者可以根据自己的爱好或需要,对学习内容(如范例的参数等)进行修改,或改变知识点的学习路线。(5) 提供课程答疑系统、讨论系统。2.2系统基本设计思想整个软件生命周期中,开发所占的费用和时间都很小。后期维护工作一般要占整个软件生命周期的80% 以上,所以系统分析很重要,一个好的系统分析可以减少很多后期维护工作。远程答疑系统设计的典型用户有3 类:一是使用系统来解答自己疑问的普通用户(学生),二是答疑系统所涉及领域的教师用户,三是系统维护管理人员。因此从用户的角度出发,远程答疑系统从总体上分为3 大模块:学生模块、教师模块和管理员模块。分别完成提问、解答及版本管理等功能。使用者按照不同的身份登录系统即可进入相应的模块12。在开发方式上对系统的需求,由于本系统是一种重点针对学生的提问进行辅导答疑而开发的,所以系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用作为系统开发的指导思想。2.2系统功能需求分析2.2.1系统功能描述本系统共4部分,网络课程远程辅导答疑系统得主要功能描述如下31)用户登录模块:用户(学生和教师) 和管理员在该模块进行登录。2)教师模块:教师用户通过登录模块登录后,该模块可以完成对自己提出问题的查看、查询、解答、修改、删除等操作。并可以进行公告发布管理,修改基本信息和密码。使用退出系统功能,将注销用户,转至首页模块。3)学生模块:学生用户通过登录模块登录后,该模块学生可以完成向老师提出问题以及查询、修改、删除提问操作,同时可以修改基本信息和密码。使用退出系统功能,将注销用户,转至首页模块。4)管理员模块:管理员通过登录模块登录后,在该模块管理员可以进行问题查询、删除操作,进行用户添加、修改、删除操作(包括添加学生,教师和管理员) 。同时管理员可以修改自己的基本信息和密码。使用退出系统功能,将注销用户,转至首页模块。2.2.2数据流程分析数据流图(Data Flow Diagram)简称DFD,它是一种描述“分解”的图示工具。它用直观的图形清晰地描绘了系统的逻辑模型,图中没有任何具体的物理元素,只是描述数据在系统中的流动和处理的情况。本系统数据流图如图2-1。图2-1(a)管理员数据流图图2-1(b)学生数据流图图2-1(c)教师数据流图2.2.3系统实体关系分析经过对系统的分析,得到下面的E-R图。图2-2实体关系图2.2.4系统数据库设计16 1、学生信息表学生信息表记录了学生的相关信息,里面主要包含学生的编号,学生名称,学生性别等学生基本信息。如表2-1所示:表2-1 student(学生信息表)字段具体含义数据类型长度备注SNO学生编号Char20主键SName学生姓名Char20PWD密码Char20Not nullSex性别Char20Age年龄Char20Grade年级Char20Phone电话Char20E-mail邮箱Char50QQQQChar20Memo简介Varchar2002、教师信息表教师信息表包含了教师的相关信息,里面的内容主要包括教师的编号,教师的姓名等教师的基本信息。如表2-2所示:表2-2 teacher(教师信息表)字段具体含义数据类型长度备注TNO教师编号Char20主键TName教师姓名Char20PWD密码Char20Not nullSex性别Char20Phone电话Char20E-mail邮箱Char50QQQQChar20Memo简介Varchar2003、课程信息表课程信息表记录了课程的相关信息,里面的内容主要包括课程的编号,课程的名称等课程的基本信息。如表2-3所示:表2-3 course(课程信息表)字段具体含义数据类型长度备注CNO课程编号Char20主键TName课程名称Char20TNO任课教师编号Char20外建Cgrade学分Char20Notice公告Varcher200Memo简介Varchar2004、问题信息表问题信息表记录了问题的相关信息,包括了问题的编号,问题的主题、内容的相关的基本信息。如表2-4所示:表2-4 note(课程信息表)字段具体含义数据类型长度备注NoteID问题编号Char20主键SNO提问学生编号Char20外建TNO任课教师编号Char20外建CNO所属课程编号Char20外建Title主题Char20Content内容Varchar200Answer教师回复Varchar200NoteDate提问日期datetime85、管理员信息表管理员信息表主要包括了管理员的编号和密码。如表2-5:表2-5 (管理员信息表)字段具体含义数据类型长度备注AdminID管理员编号Char20主键PWD密码Char20外建2.3系统可行性分析与环境要求2.3.1 可行性分析 本系统是在 My Eclipse 平台上制作,并使用Microsoft SQL SERVER 2000作为数据库管理系统的辅导答疑系统。在计算机高度普及的当前社会状况下,这个系统的可行性主要体现在以下的几个方面之上:1、技术可行性随着WEB 技术的成熟,网络带宽的不断增加,采用浏览器/ 服务器(Browse/ Server)网络结构建立网上答疑系统完全成为可能。采用这种B/ S结构,客户端的运行模式、主要的命令执行、数据计算都在服务器完成,应用程序在服务器上安装,客户机不用安装应用程序,所有操作可通过浏览器来完成。JAVA语言是一种面向对象、易移植、多线程控制的语言,Java程序是独立于平台的,它被编译成一种字节码序列,并将被一种Java解释器翻译。被翻译后的Java程序就可以在具有Java解释器的任意系统下运行,而不需营重新编译。这种能力使Java成为在Internet上编程的一种理想语言。共同网络有许多不同的系统,创建能够在所有系统下运行的程序是非常困难的。程序将不被限定在一种平台下运行,可在Java已经移植到的任意平台上运行。2、经济可行性由于使用MVC模式以及高效的数据库管理系统,系统的研发周期大大缩短,对计算机系统资源的占用也相对减少,并且便易维护,修改,扩展使得本系统在成本方面,具有很大的优势与竞争能力。3、操作可行性在操作方面,由于是用户交互界面设计,又在Windows操作系统上运行,使得操作相对简易。只要初步学习过计算机操作的相关人员都可以胜任,不存在专业培训等,又在经济性上有了体现。2.3.2系统环境要求服务器端:平 台: Microsoft Windows XP SP2 数据库: Adaptive Server Anywhere 8.0内 存:512MB建议1G 应 用:128MB 硬盘存储空间:GB,建议4GB基于使用的情况,对增加的数据需要扩大硬盘空间。 客户机端:平 台:Microsoft Windows 2000/xp 内 存:256MB,建议512MB第3章 辅导答疑系统总体设计方案3.1系统体系结构设计采用J2EE 三层架构实现远程答疑系统的系统结构如图3-1所示。基于J2EE三层架构应用模型同传统的C/S模型相比,提高了系统的可扩展性、安全性和可重用性。它将应用逻辑与用户界面和数据访问相剥离,这样便使系统的维护变得简单,同时可以通过采用组件技术,降低数据库服务器的负担,从而提高系统的性能4。图3-1基于J2EE居中的三层结构如图3-1所示,学生、教师和管理员均处于客户端层,它仅仅提供了一个用户界面,用于同用户交互并将用户请求传递到位于中间层的组件之上。用户使用浏览器通过Internet,连接至Web Server。Web Server 和应用服务器均处于中间层,Web Server 接受客户端层提交的用户请求后,调用应用服务器的相关服务模块,执行具体的事物逻辑,向位于第三层(企业信息系统层) 的数据库服务器提出数据请求,如问题的提交、解答等,并将结果返回至Web Server,Web Server 再将其传送给用户2。3.1.1 客户端层设计客户层在系统中是Web浏览器。采用J2EE分布式的客户端技术实现。它完成负责处理用户与应用程序交互以及显示页面。系统可以采用Web浏览器和普通应用程序两种方式接入。在J2EE的环境中,这部分可以用JSP或者Java Servlet技术实现,它们运行在Web容器中,通过Web容器响应客户端的请求9。3.1.2 中间层设计在这层中将利用J2EE的组件和容器技术构建远程答疑系统的各部分功能,它是应用程序服务器,主要由3部分组成8:(1)Web容器(Web Container):这是中间层的重要部分,所有的用户界面都在这里得到体现。考虑到JSP能够嵌入HTML中,开发容易而且产生的用户界面灵活等优点,故系统可以采用JSP实现用户界面。其主要产生的用户界面包括用户登录和验证界面以及用户学习界面、用户信息反馈界面等。(2)EJB容器(EJB Container):EJB容器主要管理J2EE应用程序的EJB 的执行。EJB 负责直接从客户端应用程序或者从Web容器接收数据,对它们进行必要的转换,并将其发送到数据层进行存储和处理。EJB 也可以从数据层获取数据并进行处理后发送到客户端。系统的大部分事务逻辑和规则都在这里实现。这些EJB 组件主要实现的事务逻辑包括用户的验证和登记、关键字提取、答疑库查询等。(3) 数据库连接:EJB Container 的实体EJB 是通过数据库连接和数据库管理系统交互信息的,对于不同的数据库系统,其访问形式是不同的,但是通过标准JDBC-ODBC连接接口来访问数据库,可使需要得到的数据库服务程序存取异质数据库,以使系统具有很强的扩展性。3.1.3 数据层设计数据层是数据库管理系统(DBMS),负责数据的存储管理、安全性管理和完整性管理,系统使用的数据库服务器是Microsoft SQL SERVER 200,存储答疑库、学生信息、教师信息、系统信息等。3.2功能模块设计远程答疑系统设计的典型用户有3类:一是使用系统来解答自己疑问的普通用户(学生),二是答疑系统所涉及领域的教师用户,三是系统维护管理人员。因此从用户的角度出发,远程答疑系统从总体上分为3大模块:学生模块、教师模块和管理员模块。分别完成提问、解答及版本管理等功能。使用者按照不同的身份登录系统即可进入相应的模块11。如图3-2所示图3-2系统功能模块3.2.1学生模块主要功能学生模块主要包括以下几个功能:个人信息管理:包括注册信息、口令更改等。查看自己问题及解答情况,便于学生及时得到教师的反馈信息。查看所有问题:从别人的提问中学到更多的知识,查询方式分为完全匹配和模糊匹配两种,查询结果以列表方式列出匹配的问题。同时学生可以完成向老师提出问题以及查询、修改、删除提问操作。3.2.2 教师模块主要功能教师模块主要包括以下几个功能:个人信息管理:包括注册信息、口令更改等。查看所有问题,以便对没有回答的问题及时的给予答复。统计分析:对问题的讨论情况及答案的访问情况做出统计,便于教师对学生掌握知识的程度地进一步了解,有利于提高教学质量。回答学生问题:教师模块最基本的功能,用户通过登录模块登录后,该模块可以完成对自己提出问题的查看、查询、解答、修改、删除等同时还可以对问题的答案作进一步的补充和完善。3.2.3管理员模块主要功能系统管理员不参加课程的讨论,但是享有系统的最高权限,维护系统的正常运行。主要包括以下几个功能:用户管理:对注册用户的信息管理。系统管理:包括界面维护、公告信息管理,负责与其它网校间的连接等。数据管理:维护系统数据信息,包括对问题库的维护、更新,如果发现有与问题讨论无关的信息可将其删除,提高系统的运行效率。3.3实现系统方案的关键技术3.3.1 Java技术简介随着WEB技术的成熟,网络带宽的不断增加,采用浏览器/服务器(Browse/Server) 网络结构建立网上答疑系统完全成为可能。采用这种B/S结构,客户端的运行模式、主要的命令执行、数据计算都在服务器完成,应用程序在服务器上安装,客户机不用安装应用程序,所有操作可通过浏览器来完成。JAVA语言是一种面向对象、易移植、多线程控制的语言,Java程序是独立于平台的,它被编译成一种字节码序列,并将被一种Java解释器翻译。被翻译后的Java程序就可以在具有Java解释器的任意系统下运行,而不需要重新编译。这种能力使Java成为在Internet上编程的一种理想语言。共同网络许多不同的系统,创建能够在所有系统下运行的是非常困难的。程序将不被限定在一种平台下运行,可在Java已经移植到的任意平台上运行15。3.3.2 JSP技术简介JSP是一种直接嵌入HTML的服务器端的动态脚本技术,它的工作方式与ASP 和PHP 相似。当用户请求一个JSP 页面时,Web 服务器将该文件交给JSP引擎执行并将结果送回客户浏览器。但是,JSP 采用了完全不同的运行方式:编译运行。图名?为了快速方便地进行动态网站的开发,JSP在以下方面做了改进,使其成为快速建立跨平台的动态网站的首选方案16。(1) 将内容的生成和显示进行分离:用JSP 技术,我们开发Web页面可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求课程信息或者特定的习题的答案等)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web 浏览器的完全可用性。(2)可重用组件:绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。我们能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识:JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP 标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。(4)适应平台:几乎所有平台都支持Java,JSPJavaBeans几乎可以在所有平台下通行无阻。从一个平台移植到另外一个平台,JSP和JavaBeans 甚至不用重新编译,因为Java 字节码都是标准的与平台无关的。(5) 数据库连接:Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。Sun公司还开发了JDBCODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。此外,通过开发标识库,JSP技术可以进一步扩展,我们可以为常用功能创建自己的标识库,这使得我们能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并能扩展到支持企业级的分布式应用中。作为采用Java 技术家族的一部分,以及Java2(企业版体系结构)的组成部分,JSP技术能支持高度复杂的基于Web的应用。由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。第4章 辅导答疑系统详细设计与实现4.1系统架构的设计J2EE技术是一项实现B/S模式应用的优秀技术。它的跨平台性、健壮性、易用性等在业界广为关注。J2EE技术成为实现网上答疑系统的首选。同时基于J2EE技术的众多开源项目为J2EE的开发带来极大的方便,为开发J2EE项目带来了高效的开发效率和良好的稳定性、扩展性。网上答疑系统选择用DAO作为持久层框。使用MVC设计模式的WEB层和DAO,Servlets来管理各个模块,分离模块之间的耦合性,易于系统管理维护和升级扩展。为了达到更友好的访问界面,系统使用CSS 样式表进行样式控制,可以在不同浏览器中呈现相同结果。4.1.1常量层设计该层主要是用于存放系统所需要经常使用的类,包括三类:异常、数据库联接、以及常量。分别为 ApplicationExecption, BussinessException, DaoException, Primary DaoRuntimeException, BussinessRuntimeException, Dbconnector。4.1.2系统资源层设计该层主要存放系统JSP页面文件、CSS样式表文件、JavaScript代码文件、图片资源和系统配置文件等。其中JSP页面文件均放在WEB-INF下,防止页面文件被下载。4.1.3系统WEB层设计该层主要是使用Java语言编写基于MVC框架控制处理器,所有控制处理器类均在com.inquriy.control 包及其子包下。4.1.4系统业务逻辑层设计该层主要是用Java语言编写的业务逻辑类,其中业务逻辑方法供WEB层调用,并且该层面向接口编程使用DAO模式,同时使用DaoFactory(静态工厂)持久层的持久类注入进来实现业务逻辑。该层所有类均在com.inquiry.dao包下。4.1.5系统持久层设计该层主要是用Java语言,编写对象持久类,其中业务持久方法被业务逻辑层调用,并且该层面向接口编程使用DAO 模式。该层所有类均在com.inquiry.dao.jdbc包及其子包下。4.2 MVC+DAO实现模块主要功能由于管理员模块具有教师模块和学生模块的所有功能,并且每个功能都是以相同的方法实现,没有太多的算法,所以就以管理员模块的登录阐述的主要功能的实现15。4.2.1 MVC框架MVC 通过将系统分为三个部分来帮助解决单一模块方法所遇到的某些问题: Model(模型)模型包含应用程序的核心功能。模型封装了应用程序的状态、业务逻辑和数据。它对视图或控制器一无所知。View(视图)视图提供模型的表示。它是应用程序的外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。Controller (控制器)控制器对用户的输入作出反应。它创建并设置模型。MVC的具体运作如图4-1所示:图4-1MVC框架4.2.2 MVC整体结构所有来自浏览器的http request统一由主控servlet解释处理,主控servlet根据request中的action参数执行不同的处理分支,在每个分支中解释组织request中的其余参数,创建(或定位)并调用适当的后台类完成实际计算和业务逻辑,从后台类中得到计算结果或者需要的数据后,将数据放进request中,然后挑选适当的jsp页面,实现结果页面显示。4.2.3页面控制器以一个Servlet作为整个应用(对应本次实际情况,可以以模块为单位,每个功能模块一个控制器)的控制器,处理所有Http request,不同的功能通过request中的action参数来区别。Servlet中首先读action参数,以本类的一个Action函数处理一种action的方式进行分派。例如:/用户登录private void actionLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException/获取用户名密码String USER = request.getParameter(username); String user = new String(USER.getBytes(8859_1); String pass = request.getParameter(password); /判断是否合法用户 StudentDao studentImpl = DaoFactory.createStudentDao();Student student = studentImpl.getDetail(user, pass);TeacherDao teacherImpl = DaoFactory.createTeacherDao();Teacher teacher = teacherImpl.getTeacherDetail(user,pass); AdminDao adminImpl = DaoFactory.createAdminDao();Admin admin = adminImpl.getDetail(user, pass);/判断用户角色if(admin!=null)request.getSession().setAttribute(adminID, user);request.getRequestDispatcher(/admin/admin_main.jsp).forward(request, response); if(student!=null) request.getSession().setAttribute(studentNumber, user); request.getRequestDispatcher(/student/student_main.jsp).forward(request, response); if(teacher!=null) request.getSession().setAttribute(teacherNumber, user); request.getRequestDispatcher(/teacher/teacher_main.jsp).forward(request, response); else String flag = 用户名或密码错误!; request.setAttribute(message, flag); response.setHeader(refresh,1;URL=/WebProject/login.jsp); 每个Action函数掌握对应的request的参数结构和请求意义、应该调用哪些后台类去完成请求,得到需要的数据,以及应该使用哪些jsp页面显示结果这些关于此request的全部知识。每个Action函数的处理步骤为先从request中取出参数,进行组织、转换,然后调用需要的后台类,成功得到需要的数据后,将数据组织、封装为一个page model对象,然后调用request.setAttribute()函数将创建的这个page model对象保存到request中,最后通过 request.getRequestDispatcher(jspName).forward();将控制权交给负责显示结果的jsp页面,其中jspName参数就是由Action函数选定的显示结果页面。page model是一个值对象,唯一的功能就是存储数据。会话管理(session访问)也由action函数负责,而不在JSP页面中做。由于分离了模型,并改为使用page model对象传递JSP需要的数据,现在在session中只保存基本的会话状态,如登录用户名等了,所以由负责页面流转的控制器来负责是最恰当的。4.2.4视图以JSP页面作为视图部分,即所有用户看到的页面,都使用JSP来生成。每个JSP都由控制器的一个Action函数在准备好page model对象后以forward方式调用。JSP在生成HTML页面时需要的全部数据都从取自request中的page model对象中获得,不调用任何其它后台类(也就不import其它类),也不执行生成HTML之外的其它计算。也就是说,JSP页面中的全部java代码,只完成一个任务:从page model对象中取得各种需要的数据,生成本页的html代码。因为每个JSP页面需要的数据都不相同,我们采用为每个JSP页面定义一个对应的page model类的简单方式来实现。前面提到,每种request action对应控制器servlet的一个action函数,一到多个结果JSP页面,同时,每个JSP页面对应一个page model类。总结起来,每个JSP页面了解它对应的page model类的结构,以便从中取数据;每个action函数了解它对应的每个JSP页面对应的page model类的结构,以便填充数据。一般在action函数中最后写这样的代码:request.getSession().setAttribute(adminID, user);request.getRequestDispatcher(/admin/admin_main.jsp).forward(request, response);在被这个servlet重定向到的JSP页面通过request访问page model对象,就象这样:String message = (String)request.getAttribute(message);4.2.5模型模型就是执行数据访问、业务处理、后台计算等所有实际的计算的类。这些类只负责根据调用,完成接口中规定的功能,返回结果数据,它们对视图和控制器没有了解。简单地说,系统的实际工作,都由这些类完成。例如:public interface AdminDao Admin getDetail(String user, String pass);Admin getDetailByAdminID(String adminID);void InsertAdmin(Admin newadmin);void updatePassword(String newpassword, String adminID);4.3管理员模块的实现4.3.1 Login.jsp登录页面显示登录页面,在登录框中键入正确的账号和密码,将相应的值传递到LoginController进行判断,然后作出相应的操作,转向相应的页面。如图4-2所示/连接到LoginController控制器 . 辅导答疑系统 .  密   码  .          .   /显示相应的提示信息   .图4-2用户登录4.3.2 LoginController登录控制器获取页面的用户名和密码,并调用持久层和逻辑层判断,使用VO进行值传递。/用户登录private void actionLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException/获取用户名密码String USER = request.getParameter(username); String user = new String(USER.getBytes(8859_1); String pass = request.getParameter(password); /判断是否合法用户/判断是否为学生 StudentDao studentImpl = DaoFactory.createStudentDao();Student student = studentImpl.getDetail(user, pass);/判断是否为教师TeacherDao teacherImpl = DaoFactory.createTeacherDao();Teacher teacher = teacherImpl.getTeacherDetail(user,pass); 判断是否为管理员AdminDao adminImpl = DaoFactory.createAdminDao();Admin admin = adminImpl.getDetail(user, pass);/判断用户角色并设置相应的提示信息if(a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论