毕业论文-家长与学校联系系统的设计与实现_第1页
毕业论文-家长与学校联系系统的设计与实现_第2页
毕业论文-家长与学校联系系统的设计与实现_第3页
毕业论文-家长与学校联系系统的设计与实现_第4页
毕业论文-家长与学校联系系统的设计与实现_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

山西大学商务学院家长与学校联系系统的设计与实现作者姓名李奇鹏指导教师王建珍郭慧赵伟所学专业计算机科学与技术班级08B6所属院系信息学院学习年限2008年9月至2012年7月二一二年五月学号2008540415本科毕业论文(设计)目录内容提要I1引言111管理信息系统介112开发背景及意义113开发工具简介114开发框架及应用技术介绍1141项目容器2142项目总体框架2143请求处理流程32MVC设计描述421MVC简介422MVC及其优势优点523系统工作流程53系统需求分析531需求分析532系统功能分析533数据库需求分析64系统设计741概要设计742数据库设计8421数据库概念设计8422数据库逻辑设计943系统详细设计10431符号代码设计10432数据结构设计10433算法设计105系统实现1151系统中对象的创建1152系统功能模块实现12521首页访问的实现12522用户登录模块功能实现13523家长用户模块功能实现15524班主任用户模块功能实现16525管理员模块功能实现1853系统安全性的实现206结语21致谢22参考文献23ABSTRACT24山西大学商务学院家长与学校联系系统的设计与实现学生姓名李奇鹏指导教师王建珍郭慧赵伟内容提要学校家长联系系统的开发可以解决传统方式带来的耗时、滞后、耗财、耗人力等问题,方便家长与学校之间进行联系,提高学校对学生信息的管理效率,减轻教师的工作量。本论文通过对系统的需求分析、概要设计、数据库设计、系统实现等过程的描述,论述了开发一个管理信息系统(MANAGEMENTINFORMATIONSYSTEM)MIS的基本流程。本系统使用JAVA开发,集成开发环境选用了JAVA2ENTERPRISEEDITION,开发框架选用了基于J2EE的STRUTS框架,以SERVLET和JSP为主要技术。关键词管理信息系统面向对象技术MVC三层设计模式JAVABEANS1引言管理信息系统1是现代企业、事业单位提高自身管理效率,加快本单位信息检索和加强信息管理能力必须倚重的软件系统。管理信息系统的表现形式多种多样,但其基本目的、功能和设计原则都是相通的。11管理信息系统简介管理信息系统的主要功能包括(1)数据处理包括数据收集和输入、数据传输、数据存储、数据加工处理和输出。它准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低。(2)预测功能运用现代数学方法、统计方法或模拟方法,根据过去的数据预测未来的情况。(3)计划功能根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,提供相应的计划报告。12开发背景及意义目前,学校和家长之间联系不密切,甚至于联系脱节。开发这套学校家长联系系统用于家长了解学生在学校期间的学习情况,家长可以查询孩子的学习成绩(期末和平时单元测验)、到校和放学的时间、学校要求家长配合的有关事项(公告);同时学校也可以使用本系统发布信息,查看家长对学校工作的反馈意见,并在一定程度上减轻了学校管理部门的工作(如学生成绩排名、成绩分析等)。13开发工具简介选择一套合适的开发工具是顺利完成项目开发的重要条件,在本系统的开发中,所用到的工具软件是ECLIPSEJAVA编辑器、PHOTOSHOP图形处理软件、SQLSERVER20003数据库以及JAVA语言。其中,ECLIPSE是一个开放源代码的、基于JAVA的整合型可扩展开发平台,也是目前最著名的开源项目之一。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。其未来的目标不仅仅是成为专门开发JAVA程序的IDE环境,而是根据ECLIPSE的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。ECLIPSE是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由ECLIPSE项目、ECLIPSE工具项目和ECLIPSE技术项目三个项目组成,具体包括四个部分组成ECLIPSEPLATFORM、JDT、CDT和PDE。JDT支持JAVA开发、CDT支持C开发、PDE用来支持插件开发,ECLIPSEPLATFORM则是一个开放的可扩展IDE,提供了一个通用的开发平台,它提供建造块和构造并运行集成软件开发工具的基础。14开发框架及应用技术介绍141项目容器项目的运行依赖于TOMCAT容器。TOMCAT是JAVA领域最著名的开源WEB容器,简单、易用且稳定性极好。TOMCAT作为一个WEB服务器,默认的服务端口是8080,但该端口完全可以自己控制。虽然TOMCAT是免费的WEB服务器,但也提供了两个图形界面的控制台。用户可以使用控制台方便地部署WEB应用、配置数据源及监控服务器中的WEB应用等。142项目总体框架在线家长与学校联系系统整体框架采用了STRUTS2框架。STRUTS是由APACHE开源联盟(WWWAPACHEORG)提供的一套用于构建JAVAWEB应用程序的框架。它的目标是希望分离WEB程序的表示层、控制层和模型层,即MVC模式,使程序员将更多的精力投入后台的业务逻辑设计,而不是底层的WEB基础框架。STRUTS的所有功能都是建立在已有的JAVAWEB组件上,如SERVLET、JSP或是JAVABEAN,它只是利用一种方式将这些元素组织起来,使他们协同工作。总之,STRUTS只是一个MVC框架(FRAMEWORK),用于快速开9WEB应用。STRUTS实现的重点在CCONTROLLER,包括ACTIONSERVLET/REQUESTPROCESSOR和我们定制的ACTION,也为VVIEW提供了一系列定制标签(CUSTOMTAG)。STRUTS几乎没有涉及MMODEL,所以STRUTS可以采用JAVA实现的任何形式的商业逻辑。(1)MODEL部分STRUTS的MODEL部分由ACTIONFORM和LAVABEAN组成。其中ACTIONFORM用于封装用户请求参数,所有的用户请求参数由系统自动封装成ACTIONFORM对象该对象被ACTIONSERVLET转发给ACTION然后ACTION根据ACTIONFORM里的请求参数处理用户请求。而LAVABEAN则封装了底层的业务逻辑,包括数据库访问等。在更复杂的应用中,LAVABEAN所代表的绝非一个简单的LAVABEAN,可能是EJB组件或者其他的业务逻辑组件。该MODEL对应图MODEL部分(2)VIEW部分STRUTS的VIEW部分采用JSP5STRUTS提供了丰富的标签库,通过这些标签库可以最大限度地减少脚本的使用。这些自定义的标签库可以实现与MODEL的有效交互,并增加了显示功能。对应图的JSP部分。整个应用由客户端请求驱动,当客户端请求被ACTIONSERVLET拦截时ACTIONSERVLET根据请求决定是否需要调用MODEL处理用户请求,当用户请求处理完成后,其处理结果通过JSP呈现给用户。(3)CONTROLLER部分STRUTS的CONTROLLER由两个部分组成。系统核心控制器和业务逻辑控制器。其中,系统核心控制器对应图中的ACTIONSERVLET。该控制器由STRUTS框架提供,继承HTTPSERVLET类,因此可以配置成一个标准的SERVLET。该控制器负责拦截所有HP请求,然后根据用户请求决定是否需要调用业务逻辑控制器,如果需要调用业务逻辑控制器,则将请求转发给ACTION处理,否则直接转向请求的JSP页面。业务逻辑控制器负责处理用户请求,但业务逻辑控制器本身并不具有处理能力,而是调用MODEL来完成处理。业务逻辑控制器对应图中的ACTION部分。143请求处理流程每次打开页面进行对内容的增删改查操作时发送请求,在处理请求时控制器将完成如下任务(1)为到来的请求找到URL(2)把URL映射到适当的ACTIONMAPPING(3)创建或找到封装相关的ACTIONMAPPING实例(4)如果找到了ACTIONFORM的声明,就根据声明创建或找到ACTIONFORMBEAN的实例,并且用REQUEST参数去产生一个ACTIONFORMBEAN的属性。(5)对于在ACTIONMAPPING中声明的ACTION类实例,调用适当的EXECUTE方法,并为之传递ACTIONMAPPING对象,ACTIONFORM对象,REQUEST对象,RESPONSE对象4个参数。(6)接受EXECUTE方法返回的ACTIONFORWARD,转发响应到源(该源由ACTIONFORWARD指定)注以上任务都被定义在STRUTSCONFIGXML中,ACTIONSERVLET会读取STRUTSCONFIGXML的相关信息然后完成任务。ACTIONSERVLET的声明是在WEBXML中完成的,配置ACTIONSERVLET和配置其他SERVLET没有区别。通过ACTION返回页面所需要的内容,所需要的内容在JSP页面显示。2MVC设计描述MVC架构的核心思想是将程序分成相对独立,而又能协同工作的三个部分。通过使用MVC架构,可以降低模块之间的搞合,提供应用的可扩展性。另外,MVC的每个组件只关心组件内的逻辑,不应与其他组件的逻辑混合。MVC并不是JAVA所独有的概念,而是面向对象程序都应该遵守的设计理念。21MVC简介MVC英文即MODELVIEWCONTROLLER,即把一个应用的输入、处理、输出流程按照MODEL、VIEW、CONTROLLER的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图VIEW代表用户交互界面,对于WEB应用来说,可以概括为HTML界面,但有可能为XHTML、XML和APPLET。业务流程的处理交予模型MODEL处理。模型MODEL就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。可用对象编程7喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程开发人员非常重要。控制CONTROLLER可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。22MVC及其优势优点MVC是MODEL、VIEW、CONTROLLER三个词的缩写,三个词分别代表应用的三个组成部分模型、视图与控制器。三个部分以最少的稿合,协同工作,从而提高应用的可扩展性及可维护性。23系统工作流程(1)页面查询VIEW层的JSP提交访问请求,CONTROLLER层通过调用MODEL层DBDAO来处理用户请求,提供返回数据,MODEL层则是对HIBERNATE对持久层的访问返回数据给CONTROLLER层,然后返回给VIEW层。(2)增加删除操作VIEW层的JSP提交请求,CONTROLLER层通过调用MODEL层DBDAO来处理用户请求,MODEL层则是通过HIBERNATE对数据持久化。3系统需求分析31需求分析在线家长与学校联系系统主要分为了对学校的公告、新闻、活动、家教园地、父母课堂、益智乐园、荣誉台等模块内容的查看,和管理后台登陆进行的对以上模块内容的增删改查的功能和教师对本班学生信息的增删改查功能,及家长注册登陆查询相关学号学生的在校信息。需求分析从狭义上讲,最直接的是用户对目标系统的需求,即用户在信息管理中对应用系统所产生的各种各样的和可能的需要,这种需要是对应用系统开发的定位和最基本的立足点,这种定位不应该局限于目前的需要,还应该有一个长远需求的预测,以尽可能提高系统应用的生命周期。32系统功能分析本系统有三种不同角色的用户。这三个角色分别是家长、班主任以及系统管理员。他们的角色、权限不同,因而所要执行的操作也有很大差别。家长用户权限最低。他仅能访问自己孩子的信息、学校公告,并可以对学校工作提出意见等。由此确定其对应的操作学生成绩、在校时间查询,学校新闻浏览,发表意见等。而对于教师来说,他可以执行的功能操作有学生信息的录入、修改、删除等操作(包括姓名、家长号、离、到校时间等);成绩信息的录入、修改、删除等操作(包括成绩、时段、科目等);查看花名册、查看班级成绩列表等。系统管理员所要执行的功能操作有公告信息管理、用户信息管理两大部分。其中公告信息管理又包括学校公告管理,公告信息的删除、更新、修改(包括公告日期、内容、主题等),家长意见管理,家长意见的删除、查看等。用户管理是指管理员有权对比其权限低的用户进行操作。管理员用户可以指定、删除班主任用户,可以分配、删除其他管理员用户等。在此基础上,有三个大的功能模块。它们分别为不同的用户服务,共同构成整个系统的功能框架。33数据库需求分析数据库需求需要从三个方面进行分析,分别为信息需求,信息处理要求,设计需要遵循的准则。首先是信息需求。它是指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。本系统中有三类基本用户家长、教师、管理员。家长从数据库中获得子女的在校信息,包括在校时间,成绩查询,学校公告(这些信息家长仅仅有查询的权限,而不能修改、删除、更新)以及其他家长发表的建议、评论等。教师需要从数据库中提取班级学生信息,班级成绩信息,可以录入、修改、删除、更新学生信息和班级成绩等。管理员需要从数据库中获取学校公告信息,家长意见,用户信息等。其次是处理要求。家长用户所要完成的处理学生在校信息查询,学生成绩查询,学校公告信息查询,发表意见等。班主任用户所要完成的处理学生信息录入、修改、更新、删除、查询等;学生成绩信息的录入、修改、更新、删除、查询等。系统管理员所要完成的操作学校公告信息的更新、删除、插入、查询等;家长信息的删除、查询等。班主任、管理员用户的分配、删除、信息修改等。最后在进行表设计时要注意主键的安排,表之间的联系,实体范围的确定等,以免造成数据库的大量冗余,从而保证了实体完整性和参照完整性。(1)数据库MYSQL6数据库名JIAOYU数据库功能表单CLASSINFO班级信息表MANAGERS(管理员信息)TEACHERS(教师信息)STUDENTS(学生信息)PARENTS(家长用户)EXAMTYPES(考试类型)SUBJECTS(考试科目名称)GRADES(学生成绩表)KAOQINGTYPE(考勤类型)NEWS(学校新闻)FAMILYEDU(家庭教育)PARENTEDU(父母课堂)WENZHANG(文章展示)HUODONG(学校活动)RONGYUTAI(荣誉台)YIZHI(益智乐园)(2)根据功能的不同,把本系统的主要页面分为查询页面系统主页显示的几个页面主要显示的是一条信息的标题部分,可以通过点击指定的某一条信息,进行对这条信息的标题、作者、发表时间和内容的查看。修改页面指定的对象修改页面,通过请求返回的数据在JSP上以TEXT的VALUE属性上,即在TEXT中显示相对应JAVABEAN的属性值的内容,当TEXT文本修改后将提交信息到CONTROLLER层处理业务。增加页面增加信息模板和学生,将FORM中数据提交,在CONTROLLER层处理业务,并在MODEL层通过HIBERNATE对数据持久化。4系统设计系统设计是在前期需求分析的基础上提出的。它将着重对系统渐进的实现过程进行论述。这是一个重要的过程,系统能否实现,系统软件产品质量的好坏都与此有关,必须把握好设计的方法、流程甚至于细节。41概要设计概要设计是对系统在最高抽象层上的设计,它不应关注于系统功能的实现细节。下面给出概要设计的过程和结果。(1)教师功能模块A学生资料的输入。包括学号、姓名、性别、到校时间、离校时间、家庭编号等。B成绩录入。包括课程号、成绩、成绩所属时段等。C课程设置。包括课程号、课程名等。D家长信息录入。包括账户名、密码、姓名、性别、家庭住址、联系电话等。该信息录入是通过家长用户注册的方式实现的。(2)家长功能模块A学生信息查询。包括孩子到校时间查询、离校时间查询等。B意见管理。包括查看意见薄、留言等。(3)系统管理功能模块A用户管理。包括分配班主任用户、分配系统管理员用户、删除班主任用户、删除系统管理员用户等。注班主任用户和系统管理员用户是不能自行随意注册的,他们是具有一定权限的用户,须由现有管理员给予分配。B信息管理。包括学校公告信息管理、家长意见管理。学校公告信息管理包括公告信息的删除、增加、更新、修改等,管理员需要实时的发布学校公告信息。而家长意见管理功能又包括了浏览家长意见板、删除家长留言等。42数据库设计数据库设计是对系统所需要的一系列数据在经过分析之后,进行实体归纳、设计。其目的在于在数据库操作时能尽可能的减少冗余,提高数据完整性。421数据库概念设计数据库概念设计用ER图来描述。本系统中部分ER图如图41所示。家庭号教师号学生学号姓名监护学生家庭号密码家庭住址姓名留言管理班主任留言账户名姓名密码留言板内容类别标题图41ER图实体关系图描述了数据库中各种实体的相互关系。从图中可以确定家长、学生之间,学生、班主任之间,留言、家长之间存在的关系。422数据库逻辑设计上文中提到的多个模块在实现过程中都与数据库有着密切的联系,因此数据库的设计在本系统的开发过程中占有重要地位。以下是本系统中用到的部分表,学生信息表如表41所示。表41STUINFO表字段名字段类型字段长度是否主键意义STUIDNVCHAR10是唯一标识学生STUNAMENVCHAR16否姓名COMETIMEDATETIME8否到校时间GOTIMEDATETIME8否离校时间HOMEIDNVCHAR15否家庭号TEACHERIDNVCHAR15否教师号对于表42其中STUID为主键,用来唯一的标识一名学生。而HOMEID是家庭编号,它用来把每个学生和其家长对应起来。家长可用此号访问到自己孩子的信息。TEACHERID是班主任的编号,用于联系学生表,从而可以对班级学生信息进行查询、修改、删除等操作,用户信息表如表42所示。表42USERINFO表字段名字段类型字段长度是否主键意义USERTYPENVCHAR10否表示用户类别USERIDNVCHAR20是唯一标识用户PASSWORDNVCHAR20否密码USERNAMENVCHAR20否用户名USERSEXCHAR2否用户性别对于表43USERID用来唯一标识一名用户,USERTYPE用来区分不同用户,如01表示管理员,02表示班主任用户,03表示家长用户。对于后两种用户,USERID即是连接两表的HOMEID或TEACHERID,留言信息表如表43所示。表43MESSAGEINFO表字段名字段类型字段长度是否主键意义MESSAGEIDINT4KEY标识一条留言MESSAGETYPENVCHAR5否公告类别USERIDNVCHAR20否留言人TITLENVCHAR50否标题CONTENTNVCHAR500否内容DATENVCHARDATETIME否日期对于表43MESSAGEID是主键,自动增量,用于唯一的标识一条信息(学校公告或家长意见)。MESSAGETYPE区分学校公告和家长意见,如01表示公告,02表示意见。USERID记录谁发表了留言。此属性可用于连接表41和表42,由图41的ER图导出的数据库表的关系图如图42所示。图42数据库表的关系43系统详细设计详细设计是对概要设计确定的软件和数据的总体框架的进一步精化,精化成软件的算法和数据结构等。431符号代码设计代码是代表事物的名称、属性、状态等的符号,为了便于计算机处理,一般用数字、字母或它们的组合来表示。它为事物提供一个概要而不模糊的认定,便于数据的存储和检索。使用代码可以提高处理效率和精度,及数据的全局一致性。代码的编码方法有顺序码、区间码、助记码。系统中用到的有顺序码01管理员、02班主任、03家长。助记码USEREXISTS代表用户名存在,STUINFOINSERT代表学生信息录入等。432数据结构设计在此以班主任模块为例进行说明。为了方便班主任查看班级学生信息和学生成绩,分别使用了二维数组来存储这些信息。STUDENTINFOXY中存放班级学生信息。其中X为班级人数,Y为每个学生对应的属性个数。433算法设计为了控制程序的流向,避免大量的重复性操作,对程序进行一些算法设计。下面给出对用户登录中的转向和取数据库表的信息的方法的算法设计,设计语言选用PDL10。1在用户登录时,不同用户需要登录到不同的工作页面中。为此做以下设计。CASE用户类别WHEN管理员SELECT服务器端验证,如果通过则把此用户的登录标志性信息放在其SESSION对象中,用于系统安全性控制。具体实现方法将在43节给出。然后转向管理员工作页面。WHEN班主任SELECT除做上述操作之外,还把学生信息从数据库中取出,以备班主任查询,其目的在于提高用户访问站点的速度。然后转向班主任工作页面。WHEN家长SELECT操作实现类似班主任。然后转向家长工作页面。DEFAULT登录失败。ENDCASE2取数据库表信息。DOWHILE数据库表中还有符合条件的信息,将表中信息封装成相应的JAVABEANS,以备用户访问。ENDWHILE此算法设计为取各种表中信息,取数据时不区分表的类别,待取出信息后再封装成不同的JAVABEANS,比如MESSAGEBEAN等,以此避免重写大量的取表信息的代码。5系统实现系统实现侧重于系统功能的代码实现。在本系统实现的过程中充分应用了STRUTS框架下的MVC设计思想。在JAVA语言基础上的WEB应用开发因为TOMCAT这一APPLICATIONSERVER的应用,而省去了大量的关于用户SESSION管理的手动实现。51系统中对象的创建本系统的开发中,依照STRUTS框架的MVC设计思想,对系统中用到的对象做以下部署继承自ACTIONSERVLET类的类用来进行逻辑控制,即MVC中的CONTROLLER。例如系统中的VIEWDO,用于进行用户登录时的转向控制,不同的用户将转向不同的操作界面。JSP用来进行客户端显示,即MVC中的VIEW。而JAVABEANS用来实现信息的模块封装。程序通过浏览器区分客户,对于每个客户,APPLICATIONSERVER都将自动创建一个SESSION对象,一个用户所需全局信息可置于其中(它其实是一个容器对象)用户浏览器请求通过自动创建的REQUEST传送,而所有关乎数据库的操作都封装在SQLEXCUTE类中(自建类)。而各种经过处理的信息都放在各种JAVABEANS对象中,例如学生信息放在STUDENTBEAN中。所谓JAVABEANS是有GETXXX,SETXXX组成的JAVA类,事实上是一种规则,以利于信息的访问。52系统功能模块实现在系统设计的基础上,依照设计的成果,选用具体的开发语言、环境,进行系统功能的代码实现。521首页访问的实现用户在访问站点时,没有直接发送JSP页面请求,而是将请求发给了SEVELETACTION,并由它来重定向页面请求。这样做的好处在于可以把JAVA实现的数据操作放在JB中,有SEVELETACTION将JSP转向和数据操作结合起来。因为在JSP中直接引用JAVA代码进行数据操作是不可取的。此时用户请求的SEVELETACTION中的代码如下ARRAYLISTALMBNEWARRAYLISTSQLEXCUTESQLCONNARRAYLISTMESSAGELISTSQLEXCUTEGETMESSAGESQL;SQLEXCUTEDOCLOSE;INTLENGTHMESSAGELISTSIZE;FORINTILENGTH1ILENGTH3IALMBADDMESSAGELISTGETI;THISSERVLETGETSERVLETCONTEXTSETATTRIBUTE“MESLIST“,ALMB;RETURNMAPPINGFINDFORWARD“VIEWGO“;这段代码放在一个继承自ACTIONSERVLET的类中,此类即是STRUTSMVC中的CONTROLLER。它不做任何的数据处理,只是把用户的请求和模型结合起来。数据库访问的操作都放在自定义的SQLEXCUTE类中,以静态方法的形式存在。而MESSAGEBEAN即是所谓的EJB,它是一种遵循了某些规则的JAVA类。从数据库中取出的公告信息被封装成MESSAGEBEAN的对象之后放入SERVLETCONTEXT中,以备请求页面的用户预览。CONTROLLER获取这些信息,并定向到用户请求的页面。正是EJB所遵循的规则,使这些以BEAN存放的信息可以在页面以简便的EL语句输出,如下代码所示。其中CFOREACH是JSP的TAGLIB,用于重用JAVA代码,用户注册界面如图51所示。图51用户注册界面522用户登录模块功能实现用户登录时需要向服务器提交登录信息,而以什么形式提交这些信息才能最大限度的实现代码的可重用性,STRUTS也考虑到了这些。此时STRUTS的TAGLIB标签发挥了它完美的作用。标签定义一个用户提交信息的表单,是它最初确定了要把表单提交到何处进行处理。而要完全实现对整个系统导航,必须用到STRUTSCONFIGXML,它是一个配置文件,真正把用户提交的表单封装成一个FORMBEAN的类。这样只需把该类和要提交到的SERVLETACTION在此配置文件中做一个映射即可。不必重写FORMBEAN,只需通过多次映射便可多次使用该表单信息。下面代码片断为本系统中的一个映射。此映射将LOGINFORM表单提交给LOGIN这样一个SERVLETACTION类。表单信息以动态FORMBEAN的形式提交给LOGIN后,LOGIN调用SQLEXCUTE数据库的操作方法,判断用户类别,用户是否存在(不存在就定向到注册页面),密码是否正确等。(这里值得一提的是所有不牵涉数据库操作的客户端验证均利用在JSP页面进行验证,如输入长度,格式等。)待这些服务器端验证成功时,再把对于一个用户来说全程访问的数据信息通过SQLEXCUTE类提取出来,封装成相应的JAVABEANS减少数据库连接次数(这种连接要占用大量资源)以备用户访问。IFUSERTYPEEQUALS“03“IFJUGE0STUDENTBEANSTUINFONEWSTUDENTBEANSBGET0,SBGET1,SBGET2,SBGET3,SBGET4,SBGET5STUINFOPARNAMENAMEREQUESTGETSESSIONSETATTRIBUTE“SCORES“,CBREQUESTGETSESSIONSETATTRIBUTE“STUDENTS“,STUINFORETURNMAPPINGFINDFORWARD“GOPAR“这段代码中,首先判断出该用户是家长用户,然后判断出用户存在。再把从数据库中取出的孩子信息封装成STUDENTBEAN对象,放入用户SESSION对象,最后跳转到家长工作的页面。这是从用户登录中截取的一段代码。在用户登录中要进行用户角色划分,以便不同用户进入不同的工作模块。这里是通过USERTYPE这一属性区分不同用户。01表示管理员、02表示班主任、03表示家长。用户登录界面如图52所示。图52用户登录界面523家长用户模块功能实现家长用户主要执行查询、留言等操作。(1)孩子在校信息、成绩查询在登录之初,已经在VIEWDO中把这些信息封装到相应的JAVABEANS中,放入SESSION对象中,此时可以直接在页面用EL语句输出即可。(2)家长留言用于完成留言信息输入。提交时,以动态FROMBEAN方式提交给相应的继承自ACTION类的类。在此类中判断用户是否登录。如登录则将留言信息以家长用户类型插入到数据库留言表中,同时将操作提示返回给用户。(3)删除留言用户选择删除留言操作后,页面将此信息提交给相应的ACTION去处理,ACTION调用数据库操作的类执行删除操作,并将操作结果的信息返回给页面,家长登录后的学生信息如图53所示。图53家长登录后的学生信息524班主任用户模块功能实现(1)学生信息录入班主任选择学生信息录入的操作,进入信息录入界面。根据界面提示输入学生信息,以动态FORMBEAN的形式提交给相应的ACTION类。此类调用数据库操作类,判断学生是否存在。如果不存在,则调用数据库操作类将学生信息插入学生信息表。操作后要返回操作结果信息给班主任页面。动态FORMBEAN是在STRUTSCONFIGXML配置文件中进行定义,并由TOMCAT自动创建的。提交的学生信息表单定义形式如下显示的是教师信息里对应的班级里所有的学生,教师登录后的页面如图54所示。图54教师登录界面添好学生信息后,点击继续添加后的界面状态。这里有操作成功的提示信息(INSERTINGISOK),关于它的实现方法会在管理员工作模块中的公告信息添加中详细说明。在判断出要插入的学生信息不存在后,可以执行插入操作,将学生信息插入数据库。下面代码片断给出了部分实现过程。STRINGSQL“INSERTINTOSTUDENTSSTUID,STUNAME,STUSEX,COMETIME,GOTIME,HOMEID,TEACHERID“VALUES,“/为了描述方面用”代替具体的属性值SQLEXCUTESQLCONNSQLEXCUTEINSERTINFOSQL,USERINFOSQLEXCUTEDOCLOSESQLCONN为数据库连接的方法,INSERTINFO为向数据库插入记录的方法,DOCLOSE为关闭连接的方法。这些方法都为自定义的,目的在于实现代码的完全重用。这也是所谓的完全面向对象,因为对于使用这些方法的人员,他不必关心这些方法的实现细节,只需要知道它们的作用即可方便使用。(2)成绩录入基本的实现过程同上,所要注意的是成绩的插入必须以该生存在为前提,也就是说必须做到确保实体的完整性、一致性。(3)查看班级花名册在登录之初,已经把这些信息封装在相应的JAVABEANS中,放于SESSION对象,此时直接在页面输出即可。(4)班级成绩查询在登录之初,已经把这些信息封装在相应的JAVABEANS中,放于SESSION对象,此时直接在页面输出即可。(5)学生信息删除在查看花名册时,对应每条学生信息都有删除/添加的操作。用户在选择删除操作之后,转到相应ACTION类中。判断学生信息是否存在,如果存在,则调用数据库操作类进行删除操作。此时注意级联删除的概念。要同时删除与学生对应的家长信息,学生成绩等,防止数据库的不一致。(6)成绩删除步骤同上,不需要考虑级联删除的问题,修改学生信息界面如图55所示。图55修改学生信息界面525管理员模块功能实现管理员拥有最高权限,他可以执行其他用户无法执行的操作,如分配班主任用户,管理员用户等。(1用户信息管理A删除用户包括删除班主任用户,家长用户,以及比自己权限低的系统管理员。至于具体的删除操作,同上面操作的步骤。B添加用户一般来说,班主任用户和系统管理员是具有特殊权限的用户,不允许自由注册,而应由现有管理员分配,管理员在登录之后进入管理员工作界面,选择添加用户,进入该界面。输入用户信息,以动态的FORMBEAN形式提交给ACTION。他再调用数据库操作的类,进行用户添加。用户可由此帐户进行对应的操作。(2公告信息管理A用户留言信息管理(一般只包括删除操作)在本系统开发中,一开始全部使用了动态FORMBEAN的形式向后台提交信息,这样做省去了大量的手动的建立FORMBEAN的工作,很方便。可是做到这个功能模块时,才发现STRUTS中这种动态表单的优点正是它的缺点。它过于死板,只能传递一条信息,这里想实现一次多项删除的操作用这种表单就很难实现。由于STRUTS有向下兼容的优点,用最开始的HTML的形式直接向后台提交了要删除信息的记录。具体代码实现如下所示。ENUMERATIONMESSAGEIDREQUESTGETPARAMETERNAMESSQLEXCUTESQLCONNWHILEMESSAGEIDHASMOREELEMENTSSTRINGMESSTRINGMESSAGEIDNEXTELEMENTIFMESEQUALS“DELETE“INTMESSAGEIDSINTEGERPARSEINTSTRINGMESSTRINGSQLD“DELETEFROMBROADCASTWHEREMESSAGETYPE02“ANDMESSAGEID“MESSAGEIDS“SQLEXCUTEDELETESQLSQLD用REQUEST这一隐式对象获取一个表单参数名的枚举数组,因为这些记录都是从数据库中提出送于页面显示的,只要把数组中MESSAGEID这一主键设为参数名,就可以获得选中要删除信息的标志,调用自定义数据库操作类的DELETESQL方法进行删除操作。B学校公告信息管理包括信息删除和添加,其中删除操作的实现同家长意见的删除,在此不做赘述,重点说明添加公告信息功能的实现。(3学校公告信息添加DYNAVALIDATORFORMDMDYNAVALIDATORFORMFORMSTRINGTITLESTRINGDMGET“TITLE“STRINGCONTENTSTRINGDMGET“CONTENT“DATETODAYNEWDATESIMPLEDATEFORMATSDFSDFNEWSIMPLEDATEFORMAT“YYYY年MM月DD日HH时MM分“STRINGDATESDFFORMATTODAY图43公告信息管理界面。STRINGMESINFO“01“,MANID,TITLE,CONTENT,DATE这段代码是该SERVLETACTION接受管理员提交的公告信息。这些信息被封装在一个叫做BROADFORM的动态FROMBEAN中。获得该表单对象实例DM,代码为DYNAVALIDATORFORMDMDYNAVALIDATORFORMFORM;再由DM得到公告信息的各个属性,以备插入数据库中。在数据库中判断不存在该条记录后,将该记录插入数据库。代码如下所示。STRINGSQL“INSERTINTOBROADCASTMESSAGETYPE,PARNAME,TITLE,“MESSAGEBODY,MESSAGEDATEVALUES,“SQLEXCUTESQLCONNSQLEXCUTEINSERTINFOSQL,MESINFOSQLEXCUTEDOCLOSE插入操作成功,将成功提示信息返回给页面的代码如下ACTIONERRORSERRORSNEWACTIONERRORSERRORSADD“NAME“,NEWACTIONERROR“INSERTOK“THISSAVEERRORSREQUEST,ERRORSRETURNMAPPINGFINDFORWARD“GOBROAD“这段代码中,实际上是利用了STRUTS中的ACTIONERRORS类,以错误信息的方式把成功信息返回给了页面。返回的内容则在APPLICATIONRESOURCES配置文件中给出。其配置形式为INSERTOKINSERTISOK,这其实是一个键值对。前面为键,用来与SERVLETACTION中的ACTIONERROR对象匹配,以找到后面的值INSERTISOK进行页面输出,用户操作界面如图56所示。图56用户操作界面53系统安全性的实现系统安全性是系统抵御外界非善意访问、攻击等的重要屏障。本系统中,在用户顺利登录之后,用用户帐户号、用户类别为其创建一个标志对象,把这一对象放入TOMCAT为用户创建的SESSION对象中。某些页面对用户来说是无权访问的,这时需要提出标志信息对用户是否登录,是否有权访问进行判断。对于家长用户,他只能查询自己孩子成绩而不能查看整个班级学生成绩,如果家长直接进入查询班级成绩页面时,系统将阻止其访问。6结语目前,学校和家长之间的联系主要采用传统的联系方式,而这种方式已经不适应时代的要求了。本系统的开发旨在解决这一问题。论文在内容上是按照软件工程中项目开发的流程,经过了需求分析、总体设计、程序编码及测试的阶段而逐步完成的,将理论应用到实际工作中,用流行的开发技术和设计模式来完成了本毕业设计。学生家长联系系统采用STRUTS框架,用TAGLIB获得可重用代码和抽象JAVA代码,利用ACTIONSERVLET配合STRUTSCONFIGXML实现对整个系统的导航。系统的可维护性和可扩充性好。系统各模块划分合理、类的责任划分明确、代码可重用性强。本系统还存在不足之处,如由于整体结构设计不够合理导致了页面跳转逻辑不清晰。在以后的项目开发中,要汲取此次教训,努力做好系统整体结构的设计。致谢大学四年的学习以今天的毕业论文画了一个句号。感谢大学四年,各位老师对我的教诲,感谢山西大学商务学院,感谢大家有缘能在生命中重要的四年,出现在彼此的生活中。很幸运,在我大学的最后一次作业的完成中,能得到王建珍、郭慧、赵伟三位老师的指导与帮助,有了一次宝贵的机会跟王老师接触。王老师严谨治学的态度,在我的心里留下深刻的影响,在以后的日子里,我要学习王老师的求实精神。这里,真诚的向王建珍老师说一句王老师,感谢您,祝您一切都好。感谢所有帮助过我的老师、同学、朋友,感谢你们,希望你们在以后的日子里,开心、快乐。参考文献1林杰斌,刘明德编著,MIS管理信息系统第1版,清华大学出版社,2006年5月12孙卫琴等,精通STRUTS基于MVC的JAVAWEB设计与开发第2版,电子工业出版社,2004年8月254李伟红等,SQLSERVER2000数据库及应用第2版,中国水利水电出版社,2007年1月7105孙鑫编著,JAVAWEB开发详解XMLXSLTSERVLETJSP深入剖析与实例应用第3版,电子工业出版社,2006年4月236JAMESRGROFF,PAULNWEINBERY著,SQL完全手册第二版,电子工业出版社,2006年6月677BRUCEECKEL著,JAVA编程思想第3版,机械工业出版社,2005年5月458庞娅娟,房大伟,张跃廷SQLSERVER应用与开发范例宝典M人民邮电出版社,2009109王晶SQLSERVER2000管理与应用开发教程M人民邮电出版社,20091310(美)沃恩(VAUGHN,WR),(美)布莱克伯恩(BLACKBURN,P)著,沈洁,杨华译VISUALSTUDIO与SQLSERVER开发指南M清华大学出版社,2008711DESIGNANDIMPLEMENTATIONOFCOMMUNICATIONSYSTEMBETWEENSCHOOLANDPARENTSOFBUSINESSCOLLEGEOFSHANXIUNIVERSITYABSTRACTWITHTHERAPIDDEVELOPMENTOFCOMPUTERTECHNOLOGY,TRADITIONALMETHODSOFINFORMATIONMANAGEMENTSAREBEINGUNCEASINGLYSUBSTITUTEDBYTHEMODERNMANAGEMENTAPPROACHWHICHMANAGESINFORMATIONBYCOMPUTERSINFACT,THECONTACTMODEBETWEENSCHOOLANDGUARDIANSISALSOAKINDOFINFORMATIONMANAGEMENTFORMBUTBECAUSEOFVARIOUSREASONS,ITSTILLUSESTHETRADITIONALMODEANDHASNOTMOVEDTOWARDSTHEINFORMATIONTIMEYETTHEDEVELOPMENTOFTHECONNECTIONSYSTEMISTOSOLVEPROBLEMSBROUGHTBYTHETRADITIONALMODESUCHASTIME,MONEY,LABORCONSUMINGANDSOONWITHTHESYSTEM,PARENTSANDSCHOOLCANCONNECTWITHEACHOTHERCONVENIENTLYAND,ITCANIMPROVETHEEFFICIENCYOFSTUDENTMANAGEMENTANDRELIEVETHEBURDENOFTEACHERSWORKTHISPAPERELABORATSTHEBASICFLOWOFMISSUPPORTEDBYTHEDESCRIPTIONOFDEMANDANALYSIS,OUTLINEDESIGN,DATABASEDESIGN,SYSTEMREALIZATIONANDSOONTHESYSTEMTAKESJAVAASITSDEVELOPMENTLANGUAGE,J2EEASINTEGRATIONDEVELOPMENTENVIRONMENT,STRUTSWHICHBASEDONJ2EEASTHEDEVELOPINGFRAMEWORK,SERVLETANDJSPASTHEDEVELOPINGTECHNOLOGYKEYWORDSMANAGEMENTINFORMATIONSYSTEMOBJECTORIENTEDTECHNOLOGYMVCDESIGNPATTERNJAVABEANSAGANEMPLOYMENTTRIBUNALCLAIEMLOYMENTTRIBUNALSSORTOUTDISAGREEMENTSBETWEENEMPLOYERSANDEMPLOYEESYOUMAYNEEDTOMAKEACLAIMTOANEMPLOYMENTTRIBUNALIFYOUDONTAGREEWITHTHEDISCIPLINARYACTIONYOUREMPLOYERHASTAKENAGAINSTYOUYOUREMPLOYERDISMISSESYOUANDYOUTHINKTHATYOUHAVEBEENDISMISSEDUNFAIRLYFORMOREINFORMU,TAKEADVICEFROMONEOFTHEORGANISATIONSLISTEDUNDERFURTHERHELPEMPLOYMENTTRIBUNALSARELESSFORMALTHANSOMEOTHERCOURTS,BUTITISSTILLALEGALPROCESSANDYOUWILLNEEDTOGIVEEVIDENCEUNDERANOATHORAFFIRMATIONMOSTPEOPLEFINDMAK

温馨提示

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

评论

0/150

提交评论