JAVA的学校家长联系系统

上传人:1888****888 文档编号:36147682 上传时间:2021-10-29 格式:DOC 页数:35 大小:995.04KB
返回 下载 相关 举报
JAVA的学校家长联系系统_第1页
第1页 / 共35页
JAVA的学校家长联系系统_第2页
第2页 / 共35页
JAVA的学校家长联系系统_第3页
第3页 / 共35页
点击查看更多>>
资源描述
河南大学2007届本科毕业论文基于Struts的学校家长联系系统A Connection System Between School and Parents Based on Struts论文作者姓名:王培 所在学院:计算机与信息工程学院 所学专业:计算机科学与技术 导师姓名职称:陈志国(教授)、周星(助教)论文完成时间:2007年5月20日 2007年5月20日河南大学2007届毕业论文(设计、创作)开题报告学号03023236姓名王培导师姓名职称陈志国(教授)周星(助教)开题时间2006年12月1日课题题目基于Struts的学校家长联系系统课题来源导师指定 自定 其他来源课题的目的、意义以及和本课题有关的国内外现状分析:1、目的:首先是希望有效解决目前中小学校中,家长和学校之间联系脱节的问题;其次为了降低学校、家长联系时所耗费的人力、财力。2、意义:一方面,解决了学校、家长联系中存在的耗时、耗财、耗人力等实际问题;另一方面,使我对项目开发流程有了一个清晰的认识,提高了自己项目开发的能力。3、现状:欧美等国软件开发技术已经很成熟了,相对而言我国还比较落后。但对家长学校联系系统的开发而言,由于教育体制、风俗习惯等的不同,开发过程中所要考虑的问题也有很大差别。在实际开发中,我们有自己的国情,自己的特殊体制和用户习惯,因而发展空间很大。另外,正因为我国软件业起步晚,在新技术的应用等方面反而轻装易行。研究目标、研究内容和准备解决的问题:1、目标:开发一套界面友好、操作简便、功能易于扩充、代码可高度重用的学校家长联系系统。2、内容:分析学校、家长之间联系的特点和需求,在此基础上对项目本身进行了架构设计、详细设计、系统实现,并关注于新技术的应用。3、准备解决的问题:实现多种框架之间的交叉应用,扬长避短设计出性能最优的应用系统,彻底解决现存的学校家长间机械的联系方式带来的问题。拟采取的方法、技术或设计(开发)工具:开发工具:Eclipse开发语言:Java数据库:SQL Server 2000预期成果:1、毕业设计成果学校家长联系系统(源程序)2、毕业论文 基于struts的学校家长联系系统 进度计划:2006.12.1 - 2007.2.1:查找资料、搜集相关素材2007.2.2 - 2007.4.1:完成系统的需求分析、总体设计2007.4.2 - 2007.4.21:完成界面模块、功能模块部分的代码实现2007.4.22 - 2007.4.30:完成模块的整合和测试2007.5.1 - 2007.5.15:整理资料、撰写毕业论文2007.5.16 - 2007.5.25:根据导师要求,完善毕业设计和论文指导教师对选题报告的意见:同意开题 指导教师签名: 2006年12月1日开题报告II河南大学2007届毕业论文(设计、创作)任务书学号03023236姓名王培导师姓名陈志国、周星任务书起止日期2006年12月8日 至 2007年5月20日论文提要:论文将依照软件工程中项目开发的原则和步骤,对项目开发流程进行详细论述,包括需求分析、概要设计、数据库设计、系统实现等过程。论文还将对新的开发技术、开发框架及设计思想结合本课题进行论述。课题任务要求:1.对提出的课题进行需求分析、概要及详细设计。2.对项目进行整体的架构设计,此时保证做到各个功能模块分工明确,类之间任务划分清楚,以避免后续设计遇到无法扩展的瓶颈。3.开发一套界面友好,操作简便,功能易于扩充,代码可高度重用的学校家长联系系统。主要参考文献:1 林杰斌,刘明德著,MIS管理信息系统 第1版,清华大学出版社, 2006年5月2 孙卫琴等,精通Struts:基于MVC的Java Web设计与开发 第2版,电子工业出版社,2004年8月3 普雷斯曼等编著,郑人杰等译,软件工程:实践者的研究方法 第7版,机械工业出版社,2007年1月4 James R.Groff,Paul N.Weinbery著,SQL完全手册 第二版,电子工业出版社,2006年6月5 Bruce Eckel著,Java编程思想 第3版,机械工业出版社,2005年5月河南大学2007届毕业设计(论文、创作)中期检查表学院名称:计算机与信息工程学院题目名称基于Struts的学校家长联系系统学号03023236所学专业计算机科学与技术指导教师姓 名陈志国周星姓名王培一、毕业设计进展情况已经完成了项目的可行性分析、需求分析和各种系统设计任务(包括概要设计、系统功能设计、数据库设计和详细设计),在此基础之上对项目进行了架构设计。现在已经完成了部分代码的实现。二、存在问题架构设计不够合理,导致页面跳转逻辑不清楚,功能扩充不易实现。控制流程把握不够好。三、下一阶段的研究方法或设计思路研究方法:自顶向下逐步求精。设计思路:先完成各个模块的设计,最后将模块整合。四、指导教师对学生设计(论文、创作)进展等方面的评语 从目前的设计任务来看,进度稍微有点快,前期设计投入时间不够,希望加强这方面的工作。 指导教师签字: 2007年4月10日 河南大学2007届毕业论文(设计、创作)综合成绩表(一)学院名称:计算机与信息工程学院学 号03023236姓名王培专业计算机科学与技术指导教师陈志国(教授)、周星(助教)综合得分87论文题目基于Struts的学校家长联系系统指导教师评语及得分指导教师评语该生毕业论文书写格式规范,对所做工作表述清晰,完成的系统功能较完善,但功能扩充能力不够。评分项目分值指导教师对毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分128975086指导教师签名 2007年5月20日评阅教师评语及评分评阅教师评语该生论文文字表达较清晰,能够准确表达系统的功能,已达到本科毕业论文的要求,所开发的项目功能较完善。评分项目分值评阅毕业论文(设计、创作)评分撰写开题报告、文献综述15调查研究查阅整理资料10学习态度与规范要求10数据处理、文字表达10论文(设计、创作)质量和创新意识55合计100得分11 9 9 8 50 87评阅教师签名 2007年5月21日此表由教师填写河南大学2007届毕业论文(设计、创作)综合成绩表(二)学号03023236姓名王培所在学院计算机与信息工程学院答辩委员会评语及评分答辩委员会评语该生在答辩过程中,表述清晰,语言简练,回答问题较准确,专业术语用词较准确,具有一定的专业功底,达到了本科毕业生的水平。 答辩委员签字: 2007年5月26日评分 项目 分值论文答辩小组评分答辩情况论文质量合计(100)内容表达情况(15)答辩问题情况(25)规范要求与文字表达(20)论文(设计、创作)质量和创新意识(40)得分 1223 173587答辩委员会主任签字: 2007年5月26日毕业论文(设计、创作)成绩综合评定: 87 分综合评定等级: 良备注:一、论文的质量评定,应包括对论文的语言表达、结构层次、逻辑性理论分析、设计计算、分析和概括能力及在论文中是否有新的见解或创新性成果等做出评价。从论文来看学生掌握本专业基础理论和基本技能的程度。二、成绩评定采用结构评分法,即由指导教师、评阅教师和答辩委员会分别给分(以百分计),评阅教师得分乘以20%加上指导教师得分乘以20%加上答辩委员会得分乘以60%即综合成绩。评估等级按优、良、中、差划分,优90-100分;良76-89分;中60-75分;差60分以下。三、评分由专业教研室或院组织专门评分小组(不少于5人),根据指导教师和答辩委员会意见决定每个学生的分数,在有争议时,应由答辩委员会进行表决。四、毕业论文答辩工作结束后,各院应于6月20日前向教务处推荐优秀论文以汇编成册,推荐的篇数为按当年学院毕业生人数的1.5%篇。五、各院亦可根据本专业的不同情况,制定相应的具有自己特色的内容。须报教务处备案。六、书写格式要求:1、目录;2、内容提要须书写200左右汉字,开题报告(文科除外)的内容要根据不同专业的课题任务要求,阐述查阅文献、文案论证、解题思路、工作步骤等;3、正文(含引言、结论等);4、参考文献(或资料)河南大学本科生毕业论文(设计、创作)承诺书论文题目基于Struts的学校家长联系系统姓 名王培所学专业计算机科学与技术学 号03023236完成时间2007年5 月20日指导教师姓名职称陈志国(教授)、周星(助教)承诺内容:1、本毕业论文(设计、创作)是学生 王培 在导师 陈志国 、 周星 的指导下独立完成的,没有抄袭、剽窃他人成果,没有请人代做,若在毕业论文(设计、创作)的各种检查、评比中被发现有以上行为,愿按学校有关规定接受处理,并承担相应的法律责任。2、学校有权保留并向上级有关部门送交本毕业论文(设计、创作)的复印件和磁盘。备注:学生签名: 指导教师签名: 2007年5月20日 2007年5月20日说明:学生毕业论文(设计、创作)如有保密等要求,请在备注中明确,承诺内容第2条即以备注为准。目 录摘 要IABSTRACTII第1章 绪论11.1 管理信息系统简介11.2 开发背景及意义11.3 开发工具简介21.4 开发框架及应用技术介绍21.4.1 开发框架21.4.2 开发中所用技术31.4.3 MVC设计模式3第2章 系统需求分析52.1 编写目的52.2 项目背景及开发目标52.3 系统简介52.4 系统功能分析62.5 数据库需求分析6第3章 系统设计83.1 概要设计83.2 数据库设计93.2.1 数据库概念设计93.2.2 数据库逻辑设计103.3 系统详细设计123.3.1 符号代码设计123.3.2 数据结构设计123.3.3 算法设计13第4章 系统实现144.1 系统中对象的创建144.2 系统功能模块实现144.2.1 首页访问的实现144.2.2 用户登录模块功能实现164.2.3 家长用户模块功能实现174.2.4 班主任用户模块功能实现184.2.5 管理员模块功能实现204.3 系统安全性的实现22结 论24参考文献25河南大学本科毕业生学士学位论文摘 要随着计算机技术的飞速发展,各种传统的信息管理方式正不断被依助于计算机进行信息管理的现代管理方式所取代,而学校和家长之间的联系实际上也是一种信息管理,但由于各种原因,它依旧采用传统的方式,没有走向信息化。学校家长联系系统的开发可以解决传统方式带来的耗时、滞后、耗财、耗人力等问题,方便家长与学校之间进行联系,提高学校对学生信息的管理效率,减轻教师的工作量。本论文通过对系统的需求分析、概要设计、数据库设计、系统实现等过程的描述,论述了开发一个管理信息系统(Management Information System)MIS的基本流程。本系统使用Java开发,集成开发环境选用了Java 2 Enterprise Edition,开发框架选用了基于J2EE 的Struts框架,以Servlet和Jsp为主要技术。关键词 管理信息系统,面向对象技术,MVC三层设计模式,JavaBeansABSTRACTWith the rapid development of computer technology, traditional methods of information managements are being unceasingly substituted by the modern management approach which manages information by computers. In fact, the contact mode between school and guardians is also a kind of information management form. But because of various reasons, it still uses the traditional mode and has not moved towards the information time yet.The development of the connection system is to solve problems brought by the traditional mode such as time,money,labor consuming and so on . With the system, parents and school can connect with each other conveniently.And, it can improve the efficiency of student management and relieve the burden of teachers work. This paper elaborats the basic flow of MIS supported by the description of demand analysis, outline design, database design, system realization and so on.The system takes Java as its development language, J2EE as integration development environment, struts which based on J2EE as the developing framework, servlet and jsp as the developing technology.Keywords Management Information System, Object-Oriented Technology, MVC Design Pattern, JavaBeans 第 24 页第1章 绪论管理信息系统是现代企业、事业单位提高自身管理效率,加快本单位信息检索和加强信息管理能力必须倚重的软件系统。管理信息系统的表现形式多种多样,但其基本目的、功能和设计原则都是相通的。1.1 管理信息系统简介管理信息系统的主要功能包括:1.数据处理:包括数据收集和输入、数据传输、数据存储、数据加工处理和输出。它准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低。2.预测功能:运用现代数学方法、统计方法或模拟方法,根据过去的数据预测未来的情况。3.计划功能:根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,提供相应的计划报告。1.2 开发背景及意义目前,对我国中小学校而言,学校和家长之间联系不密切,甚至于联系脱节。学校和家长之间的联系有的还停留在家长去学校开家长会,学校派教师到学生家中进行家访的阶段,这样的方式已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被以计算机为基础的信息管理所取代。开发这套学校家长联系系统用于家长了解学生在学校期间的学习情况,家长可以查询孩子的学习成绩(期末和平时单元测验)、到校和放学的时间、学校要求家长配合的有关事项(公告);同时学校也可以使用本系统发布信息,查看家长对学校工作的反馈意见,并在一定程度上减轻了学校管理部门的工作(如学生成绩排名、成绩分析等)。1.3 开发工具简介选择一套合适的开发工具是顺利完成项目开发的重要条件,在本系统的开发中,所用到的工具软件是Eclipse java 编辑器、Photoshop 图形处理软件、SQL lServer 2000 数据库以及Java语言。其中,Eclipse是一个开放源代码的、基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,而是根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成-Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台,它提供建造块和构造并运行集成软件开发工具的基础。1.4 开发框架及应用技术介绍目前,各种软件公司林立,软件公司之间的竞争日趋激烈,要想在这样的市场上占有一席之地,就必须提高自己软件开发的速度,降低开发周期,提高软件产品的可靠性。此时,好的技术、框架的选用就显得特别重要了。1.4.1 开发框架本系统在开发过程中采用了Struts开发框架。所谓Struts开发框架,是由一系列规则定义的一个程序开发模板,可应用于web应用程序的开发。在web应用中恰到好处的使用Struts,可节省从头开始设计框架的时间,使得开发人员可以把精力集中在如何解决实际业务问题上。1.4.2 开发中所用技术Java Web应用的核心技术是Java Server Page 和Servlet。此外,开发一个完整的Java Web应用还涉及以下概念及技术:1.JavaBeans 组件2.EJB组件3.XML4.Web服务器和应用服务器1.4.3 MVC设计模式MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。业务流程的处理交予模型(Model)处理。模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。可用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程开发人员非常重要。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。第2章 系统需求分析需求分析从狭义上讲,最直接的是用户对目标系统的需求,即用户在信息管理中对应用系统所产生的各种各样的和可能的需要,这种需要是对应用系统开发的定位和最基本的立足点,这种定位不应该局限于目前的需要,还应该有一个长远需求的预测,以尽可能提高系统应用的生命周期。2.1 编写目的在对学校家长联系系统软件市场做了前期调查,同时与多位软件使用者进行全面深入地探讨和分析之后,完成了系统需求分析。在需求分析中对学校家长联系系统软件做了全面细致的分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。该分析的预期读者为客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员。2.2 项目背景及开发目标a)背景:受樱开中学委托,开发樱开学校家长联系系统。b)目标:开发一套性能稳定,界面友好的学校家长联系系统。2.3 系统简介本系统用于家长进行学生在学校的学习情况、学习成绩(期末和平时单元测验)、到校和放学的时间查询以及学校要求家长配合的有关事项(公告)的查询;同时学校也可以用本系统了解学生在校的活动和表现,以及家长对学校工作的意见、建议,以减轻学校管理部门的工作(如学生成绩排名,成绩分析等)。2.4 系统功能分析本系统有三种不同角色的用户。这三个角色分别是:家长、班主任以及系统管理员。他们的角色、权限不同,因而所要执行的操作也有很大差别。家长用户权限最低。他仅能访问自己孩子的信息、学校公告,并可以对学校工作提出意见等。由此确定其对应的操作:学生成绩、在校时间查询,学校新闻浏览,发表意见等。而对于教师来说,他可以执行的功能操作有:学生信息的录入、修改、删除等操作(包括姓名、家长号、离、到校时间等);成绩信息的录入、修改、删除等操作(包括成绩、时段、科目等);查看花名册、查看班级成绩列表等。系统管理员所要执行的功能操作有:公告信息管理、用户信息管理两大部分。其中公告信息管理又包括:学校公告管理,公告信息的删除、更新、修改(包括公告日期、内容、主题等),家长意见管理,家长意见的删除、查看等。用户管理是指管理员有权对比其权限低的用户进行操作。管理员用户可以指定、删除班主任用户,可以分配、删除其他管理员用户等。在此基础上,有三个大的功能模块。它们分别为不同的用户服务,共同构成整个系统的功能框架。2.5 数据库需求分析数据库需求需要从三个方面进行分析,分别为信息需求,信息处理要求,设计需要遵循的准则。首先是信息需求。它是指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。本系统中有三类基本用户:家长、教师、管理员。家长从数据库中获得子女的在校信息,包括在校时间,成绩查询,学校公告(这些信息家长仅仅有查询的权限,而不能修改、删除、更新)以及其他家长发表的建议、评论等。教师需要从数据库中提取班级学生信息,班级成绩信息,可以录入、修改、删除、更新学生信息和班级成绩等。管理员需要从数据库中获取学校公告信息,家长意见,用户信息等。其次是处理要求。家长用户所要完成的处理:学生在校信息查询,学生成绩查询,学校公告信息查询,发表意见等。班主任用户所要完成的处理:学生信息录入、修改、更新、删除、查询等;学生成绩信息的录入、修改、更新、删除、查询等。系统管理员所要完成的操作:学校公告信息的更新、删除、插入、查询等;家长信息的删除、查询等。班主任、管理员用户的分配、删除、信息修改等。最后在进行表设计时要注意主键的安排,表之间的联系,实体范围的确定等,以免造成数据库的大量冗余,从而保证了实体完整性和参照完整性。第3章 系统设计系统设计是在前期需求分析的基础上提出的。它将着重对系统渐进的实现过程进行论述。这是一个重要的过程,系统能否实现,系统软件产品质量的好坏都与此有关,必须把握好设计的方法、流程甚至于细节。3.1 概要设计概要设计是对系统在最高抽象层上的设计,它不应关注于系统功能的实现细节。下面给出概要设计的过程和结果。首先:对系统进行模块划分,设计每个模块涉及的信息处理。教师功能模块:a)学生资料的输入。包括学号、姓名、性别、到校时间、离校时间、家庭编号等。b)成绩录入。包括课程号、成绩、成绩所属时段等。c)课程设置。包括课程号、课程名等。d)家长信息录入。包括账户名、密码、姓名、性别、家庭住址、联系电话等。该信息录入是通过家长用户注册的方式实现的。家长功能模块:a)学生信息查询。包括孩子到校时间查询、离校时间查询等。b)意见管理。包括查看意见薄、留言等。系统管理功能模块:a)用户管理。包括分配班主任用户、分配系统管理员用户、删除班主任用户、删除系统管理员用户等。注:班主任用户和系统管理员用户是不能自行随意注册的,他们是具有一定权限的用户,须由现有管理员给予分配。b)信息管理。包括学校公告信息管理、家长意见管理。学校公告信息管理包括公告信息的删除、增加、更新、修改等,管理员需要实时的发布学校公告信息。而家长意见管理功能又包括了浏览家长意见板、删除家长留言等。其次,给出概要设计的结果,如图3-1所示。图3-1 系统模块图3.2 数据库设计数据库设计是对系统所需要的一系列数据在经过分析之后,进行实体归纳、设计。其目的在于在数据库操作时能尽可能的减少冗余,提高数据完整性。3.2.1 数据库概念设计数据库概念设计用E-R图来描述。下图3-2给出了本系统中部分E-R图。图3-2 部分E-R图实体关系图描述了数据库中各种实体的相互关系。从图中可以确定家长、学生之间,学生、班主任之间,留言、家长之间存在的关系。这里只画出了部分的实体关系模型。正是依赖于这些关系,才能够把不同的表信息连接起来,在操作中保证实体的完整性,可以进行多表间的级联操作等。3.2.2 数据库逻辑设计上文中提到的多个模块在实现过程中都与数据库有着密切的联系,因此数据库的设计在本系统的开发过程中占有重要地位。以下是本系统中用到的部分表。学生信息表如表3-1所示。表3-1 stuInfo表 字段名字段类型字段长度是否主键意义stuidNvchar10是唯一标识学生stunameNvchar16否姓名comeTimeDatetime8否到校时间goTimeDatetime8否离校时间homeIdnvchar15否家庭号teacherIdnvchar15否教师号对于表3-1:其中stuid为主键,用来唯一的标识一名学生。而homeId是家庭编号,它用来把每个学生和其家长对应起来。家长可用此号访问到自己孩子的信息。teacherId是班主任的编号,用于联系学生表,从而可以对班级学生信息进行查询、修改、删除等操作。用户信息表如表3-2所示。表3-2 userInfo表字段名字段类型字段长度是否主键意义userTypeNvchar10否表示用户类别userIdNvchar20是唯一标识用户PasswordNvchar20否密码userNameNvchar20否用户名userSexChar2否用户性别对于表3-2:userId用来唯一标识一名用户,userType用来区分不同用户,如01表示管理员,02表示班主任用户,03表示家长用户。对于后两种用户,userId即是连接两表的homeId或teacherId。留言信息表如表3-3所示。表3-3 messageInfo表字段名字段类型字段长度是否主键意义messageidInt4Key标识一条留言messagetypeNvchar5否公告类别useridNvchar20否留言人TitleNvchar50否 标题ContentNvchar500否内容dateNvchardatetime否日期对于表3-3:Messageid是主键,自动增量,用于唯一的标识一条信息(学校公告或家长意见)。Messagetype区分学校公告和家长意见,如01表示公告,02表示意见。Userid记录谁发表了留言。此属性可用于连接表3-2和表3-3。由图3-2的E-R图导出的部分数据库表关系图如图3-3所示。图3-3 数据库部分表关系 3.3 系统详细设计详细设计是对概要设计确定的软件和数据的总体框架的进一步精化,精化成软件的算法和数据结构等。3.3.1 符号代码设计代码是代表事物的名称、属性、状态等的符号,为了便于计算机处理,一般用数字、字母或它们的组合来表示。它为事物提供一个概要而不模糊的认定,便于数据的存储和检索。使用代码可以提高处理效率和精度,及数据的全局一致性。代码的编码方法有:顺序码、区间码、助记码。系统中用到的有:顺序码:01 管理员、02 班主任、03 家长。助记码:USEREXISTS代表用户名存在,stuInfoInsert代表学生信息录入等。3.3.2 数据结构设计在此以班主任模块为例进行说明。为了方便班主任查看班级学生信息和学生成绩,分别使用了二维数组来存储这些信息。studentInfoxy中存放班级学生信息。其中x为班级人数,Y为每个学生对应的属性个数。3.3.3 算法设计为了控制程序的流向,避免大量的重复性操作,对程序进行一些算法设计。下面给出对用户登录中的转向和取数据库表的信息的方法的算法设计,设计语言选用PDL。1.在用户登录时,不同用户需要登录到不同的工作页面中。为此做以下设计。CASE 用户类别WHEN 管理员 SELECT 服务器端验证,如果通过则把此用户的登录标志性信息放在其Session对象中,用于系统安全性控制。具体实现方法将在4.3节给出。然后转向管理员工作页面。WHEN 班主任 SELECT 除做上述操作之外,还把学生信息从数据库中取出,以备班主任查询,其目的在于提高用户访问站点的速度。然后转向班主任工作页面。WHEN 家长 SELECT 操作实现类似班主任。然后转向家长工作页面。DEFAULT:登录失败。ENDCASE2.取数据库表信息。DO WHILE 数据库表中还有符合条件的信息 将表中信息封装成相应的JAVABEANS,以备用户访问。ENDWHILE此算法设计为取各种表中信息,取数据时不区分表的类别,待取出信息后再封装成不同的JavaBeans,比如MessageBean等,以此避免重写大量的取表信息的代码。第4章 系统实现系统实现侧重于系统功能的代码实现。在本系统实现的过程中充分应用了Struts框架下的MVC设计思想。在Java语言基础上的Web应用开发因为Tomcat 这一Application Server 的应用,而省去了大量的关于用户Session管理的手动实现。4.1 系统中对象的创建本系统的开发中,依照Struts框架的MVC设计思想,对系统中用到的对象做以下部署:继承自ActionServlet类的类用来进行逻辑控制,即MVC中的Controller。例如系统中的view.do,用于进行用户登录时的转向控制,不同的用户将转向不同的操作界面。JSP用来进行客户端显示,即MVC中的View。而JavaBeans用来实现信息的模块封装。程序通过浏览器区分客户,对于每个客户,Application Server都将自动创建一个Session对象,一个用户所需全局信息可置于其中(它其实是一个容器对象)用户浏览器请求通过自动创建的request传送,而所有关乎数据库的操作都封装在SqlExcute类中(自建类)。而各种经过处理的信息都放在各种JavaBeans对象中,例如:学生信息放在StudentBean中。所谓JavaBeans是有getxxx(),setxxx()组成的java类,事实上是一种规则,以利于信息的访问。4.2 系统功能模块实现在系统设计的基础上,依照设计的成果,选用具体的开发语言、环境,进行系统功能的代码实现。4.2.1 首页访问的实现用户在访问站点时,没有直接发送JSP页面请求,而是将请求发给了SeveletAction,并由它来重定向页面请求。这样做的好处在于可以把Java实现的数据操作放在JB中,有SeveletAction将JSP转向和数据操作结合起来。因为在JSP中直接引用Java代码进行数据操作是不可取的。此时用户请求的SeveletAction中的代码如下:ArrayListalmb =new ArrayList();SqlExcute.sqlConn();ArrayListmessageList=SqlExcute.getMessage(sql);SqlExcute.doClose();int length = messageList.size();for(int i=length-1;ilength-3;i-)almb.add(messageList.get(i);this.servlet.getServletContext().setAttribute(mesList,almb); return (mapping.findForward(viewgo);这段代码放在一个继承自ActionServlet的类中,此类即是Struts MVC 中的Controller。它不做任何的数据处理,只是把用户的请求和模型结合起来。数据库访问的操作都放在自定义的SqlExcute类中,以静态方法的形式存在。而MessageBean即是所谓的EJB,它是一种遵循了某些规则的Java类。从数据库中取出的公告信息被封装成MessageBean的对象之后放入ServletContext中,以备请求页面的用户预览。Controller获取这些信息,并定向到用户请求的页面。正是EJB所遵循的规则,使这些以Bean存放的信息可以在页面以简便的EL语句输出,如下代码所示。 其中c:forEach是JSP的taglib,用于重用Java代码。效果如图4-1所示。图4-1 首页界面4.2.2 用户登录模块功能实现用户登录时需要向服务器提交登录信息,而以什么形式提交这些信息才能最大限度的实现代码的可重用性,Struts也考虑到了这些。此时Struts的taglib(标签)发挥了它完美的作用。标签定义一个用户提交信息的表单,是它最初确定了要把表单提交到何处进行处理。而要完全实现对整个系统导航,必须用到Struts-config.xml,它是一个配置文件,真正把用户提交的表单封装成一个FormBean的类。这样只需把该类和要提交到的ServletAction在此配置文件中做一个映射即可。不必重写FormBean,只需通过多次映射便可多次使用该表单信息。下面代码片断为本系统中的一个映射。 此映射将loginForm表单提交给login这样一个ServletAction类。表单信息以动态FormBean的形式提交给login后,login调用SqlExcute数据库的操作方法,判断用户类别,用户是否存在(不存在就定向到注册页面),密码是否正确等。(这里值得一提的是所有不牵涉数据库操作的客户端验证均利用在Jsp页面进行验证,如输入长度,格式等。)待这些服务器端验证成功时,再把对于一个用户来说全程访问的数据信息通过SqlExcute类提取出来,封装成相应的JavaBeans减少数据库连接次数(这种连接要占用大量资源)以备用户访问。if(userType.equals(03) if(juge=0).StudentBean stuInfo=newStudentBean(sb.get(0),sb.get(1),sb.get(2),sb.get(3),sb.get(4),sb.get(5);stuInfo.parName = name;request.getSession().setAttribute(scores,cb); request.getSession().setAttribute(students,stuInfo);return (mapping.findForward(gopar);这段代码中,首先判断出该用户是家长用户,然后判断出用户存在。再把从数据库中取出的孩子信息封装成StudentBean对象,放入用户Session对象,最后跳转到家长工作的页面。这是从用户登录中截取的一段代码。在用户登录中要进行用户角色划分,以便不同用户进入不同的工作模块。这里是通过userType这一属性区分不同用户。01表示管理员、02表示班主任、03表示家长。4.2.3 家长用户模块功能实现家长用户主要执行查询、留言等操作。1.孩子在校信息、成绩查询在登录之初,已经在view.do中把这些信息封装到相应的JavaBeans中,放入Session对象中,此时可以直接在页面用EL语句输出即可。2.家长留言用于完成留言信息输入。提交时,以动态FromBean方式提交给相应的继承自Action类的类。在此类中判断用户是否登录。如登录则将留言信息以家长用户类型插入到数据库留言表中,同时将操作提示返回给用户。3.删除留言用户选择删除留言操作后,页面将此信息提交给相应的Action去处理,Action调用数据库操作的类执行删除操作,并将操作结果的信息返回给页面。4.2.4 班主任用户模块功能实现1.学生信息录入班主任选择学生信息录入的操作,进入信息录入界面。根据界面提示输入学生信息,以动态FormBean的形式提交给相应的Action类。此类调用数据库操作类,判断学生是否存在。如果不存在,则调用数据库操作类将学生信息插入学生信息表。操作后要返回操作结果信息给班主任页面。动态FormBean是在Struts-config.xml配置文件中进行定义,并由Tomcat自动创建的。提交的学生信息表单定义形式如下: 其中指出该FormBean的名字为studentinForm,性质为动态验证表单,验证指客户端验证。其余部分为为表单内属性定义。图4-2 学生信息录入界面图4-2是添好学生信息后,点击继续添加后的界面状态。这里有操作成功的提示信息(inserting is ok),关于它的实现方法会在管理员工作模块中的公告信息添加中详细说明。在判断出要插入的学生信息不存在后,可以执行插入操作,将学生信息插入数据库。下面代码片断给出了部分实现过程。String sql = insert into students(stuid,stuname,stusex,cometime,gotime,homeid,teacherid) +values (?,?,?,?,?,?,?); /为了描述方面用”?”代替具体的属性值SqlExcute.sqlConn();SqlExcute.insertInfo(sql,userInfo);SqlExcute.doClose();sqlConn()为数据库连接的方法,insertInfo()为向数据库插入记录的方法,doClose()为关闭连接的方法。这些方法都为自定义的,目的在于实现代码的完全重用。这也是所谓的完全面向对象,因为对于使用这些方法的人员,他不必关心这些方法的实现细节,只需要知道它们的作用即可方便使用。2.成绩录入基本的实现过程同上,所要注意的是成绩的插入必须以该生存在为前提,也就是说必须做到确保实体的完整性、一致性。3.查看班级花名册在登录之初,已经把这些信息封装在相应的JavaBeans中,放于Session对象,此时直接在页面输出即可。4.班级成绩查询在登录之初,已经把这些信息封装在相应的JavaBeans中,放于Session对象,此时直接在页面输出即可。5.学生信息删除在查看花名册时,对应每条学生信息都有删除/添加的操作。用户在选择删除操作之后,转到相应Action类中。判断学生信息是否存在,如果存在,则调用数据库操作类进行删除操作。此时注意级联删除的概念。要同时删除与学生对应的家长信息,学生成绩等,防止数据库的不一致。6.成绩删除步骤同上,不需要考虑级联删除的问题。4.2.5 管理员模块功能实现管理员拥有最高权限,他可以执行其他用户无法执行的操作,如分配班主任用户,管理员用户等。1)用户信息管理a.删除用户包括删除班主任用户,家长用户,以及比自己权限低的系统管理员。至于具体的删除操作,同上面操作的步骤。b.添加用户一般来说,班主任用户和系统管理员是具有特殊权限的用户,不允许自由注册,而应由现有管理员分配,管理员在登录之后进入管理员工作界面,选择添加用户,进入该界面。输入用户信息,以动态的FormBean形式提交给Action。他再调用数据库操作的类,进行用户添加。用户可由此帐户进行对应的操作。2)公告信息管理a.用户留言信息管理(一般只包括删除操图4.3公告信息管理界面。作)在本系统开发中,一开始全部使用了动态FormBean的形式向后台提交信息,这样做省去了大量的手动的建立FormBean的工作,很方便。可是做到这个功能模块时,才发现Struts中这种动态表单的优点正是它的缺点。它过于死板,只能传递一条信息,这里想实现一次多项删除的操作用这种表单就很难实现。由于Struts有向下兼容的优点,用最开始的Html的形式直接向后台提交了要删除信息的记录。具体代码实现如下所示。Enumeration messageid = request.getParameterNames();SqlExcute.sqlConn();while(messageid.hasMoreElements()String mes=(String)messageid.nextElement();if(!mes.equals(delete)int messageids = Integer.parseInt(String) mes);String sqld = delete
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


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

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


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