山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc

上传人:小小飞 文档编号:3928069 上传时间:2019-10-10 格式:DOC 页数:33 大小:718.52KB
返回 下载 相关 举报
山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc_第1页
第1页 / 共33页
山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc_第2页
第2页 / 共33页
山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc_第3页
第3页 / 共33页
山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc_第4页
第4页 / 共33页
山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc》由会员分享,可在线阅读,更多相关《山西大学商务学院家长与学校联系系统的设计与实现 毕业论文设计.doc(33页珍藏版)》请在三一文库上搜索。

1、 山西大学商务学院家长与学校联系系统的设计与实现 作者姓名 指导教师 所学专业 计算机科学与技术 班级 08B6 所属院系 信息学院 学习年限 2008 年 9 月至 2012 年 7 月 二一二年五 月 目目 录录 内容提要 I 1 引言 1 1.1 管理信息系统介 . .1 1.2 开发背景及意义 1 1.3 开发工具简介. . 1 1.4 开发框架及应用技术介绍 1 1.4.1 项目容器 2 1.4.2 项目总体框架 2 1.4.3 请求处理流程 3 2 MVC 设计描述 .4 2.1 MVC 简介 4 2.2 MVC 及其优势优点5 2.3 系统工作流程 5 3 系统需求分析 5 3.

2、1 需求分析. 5 3.2 系统功能分析.5 3.3 数据库需求分析6 4 系统设计 7 4.1 概要设计 . 7 4.2 数据库设计 8 4.2.1 数据库概念设计 8 4.2.2 数据库逻辑设计 9 4.3 系统详细设计 .10 4.3.1 符号代码设计. 10 3 4.3.2 数据结构设计. 10 4.3.3 算法设计 .10 5 系统实现 .11 5.1 系统中对象的创建. 11 5.2 系统功能模块实现. 12 5.2.1 首页访问的实现. 12 5.2.2 用户登录模块功能实现. 13 5.2.3 家长用户模块功能实现 .15 5.2.4 班主任用户模块功能实现 .16 5.2.5

3、 管理员模块功能实现. 18 5.3 系统安全性的实现. 20 6 结语 .21 致谢 .22 参考文献 .23 ABSTRACT .24 I 家长与学校联系系统的设计与实现 内容提要 学校家长联系系统的开发可以解决传统方式带来的耗时、滞后、耗财、耗人力等问题, 方便家长与学校之间进行联系,提高学校对学生信息的管理效率,减轻教师的工作量。本论文通过对 系统的需求分析、概要设计、数据库设计、系统实现等过程的描述,论述了开发一个管理信息系统 (Management Information System)MIS 的基本流程。本系统使用 Java 开发,集成开发环境选 用了 Java 2 Enterp

4、rise Edition,开发框架选用了基于 J2EE 的 Struts 框架,以 Servlet 和 Jsp 为主 要技术。 关键词 管理信息系统 面向对象技术 MVC 三层设计模式 JavaBeans 1 1. 引言 管理信息系统1是现代企业、事业单位提高自身管理效率,加快本单位信息检索和加强信息管理 能力必须倚重的软件系统。管理信息系统的表现形式多种多样,但其基本目的、功能和设计原则都是 相通的。 1.1 管理信息系统简介 管理信息系统的主要功能包括: (1)数据处理:包括数据收集和输入、数据传输、数据存储、数据加工处理和输出。它准备和 提供统一格式的信息,使各种统计工作简化,使信息成本

5、最低。 (2)预测功能:运用现代数学方法、统计方法或模拟方法,根据过去的数据预测未来的情况。 (3)计划功能:根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层, 提供相应的计划报告。 1.2 开发背景及意义 目前,学校和家长之间联系不密切,甚至于联系脱节。开发这套学校家长联系系统用于家长了解 学生在学校期间的学习情况,家长可以查询孩子的学习成绩(期末和平时单元测验) 、到校和放学的时 间、学校要求家长配合的有关事项(公告) ;同时学校也可以使用本系统发布信息,查看家长对学校工 作的反馈意见,并在一定程度上减轻了学校管理部门的工作(如学生成绩排名、成绩分析等) 。 1.3 开

6、发工具简介 选择一套合适的开发工具是顺利完成项目开发的重要条件,在本系统的开发中,所用到的工具软 件是 Eclipse java 编辑器、Photoshop 图形处理软件、SQL Server 2000 3数据库以及 Java 语言。 其中,Eclipse 是一个开放源代码的、基于 Java 的整合型可扩展开发平台,也是目前最著名的开源项 目之一。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附 带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT) 。其未来的目标不仅仅 是成为专门开发 Java 程序的

7、IDE 环境,而是根据 Eclipse 的体系结构,通过开发插件,它能扩展到任 何语言的开发,甚至能成为图片绘制的工具。 Eclipse 是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、 具有商业品质的工业平台。它主要由 Eclipse 项目、Eclipse 工具项目和 Eclipse 技术项目三个项目 山西大学商务学院家长与学校联系系统的设计与实现 2 2 组成,具体包括四个部分组成-Eclipse Platform、JDT、CDT 和 PDE。JDT 支持 Java 开发、CDT 支持 C 开发、PDE 用来支持插件开发,Eclipse Platform 则是一

8、个开放的可扩展 IDE,提供了一个通用的开 发平台,它提供建造块和构造并运行集成软件开发工具的基础。 1.4 开发框架及应用技术介绍 1.4.1 项目容器 项目的运行依赖于 Tomcat 容器。Tomcat 是 Java 领域最著名的开源 Web 容器,简单、易用且稳 定性极好。Tomcat 作为一个 Web 服务器,默认的服务端口是 8080 ,但该端口完全可以自己控制。虽 然 Tomcat 是免费的 Web 服务器,但也提供了两个图形界面的控制台。用户可以使用控制台方便地部 署 Web 应用、配置数据源及监控服务器中的 Web 应用等。 1.4.2 项目总体框架 在线家长与学校联系系统整体

9、框架采用了 struts2框架。Struts 是由 Apache 开源联盟 (www.apache.org)提供的一套用于构建 Java Web 应用程序的框架。它的目标是希望分离 Web 程序的 表示层、控制层和模型层,即 MVC 模式,使程序员将更多的精力投入后台的业务逻辑设计,而不是底 层的 Web 基础框架。Struts 的所有功能都是建立在已有的 Java Web 组件上,如 Servlet、JSP 或是 JavaBean,它只是利用一种方式将这些元素组织起来,使他们协同工作。 总之,Struts 只是一个 MVC 框架(Framework) ,用于快速开9 Web 应用。Strut

10、s 实现的重点在 C(Controller),包括 ActionServlet / RequestProcessor 和我们定制的 Action,也为 V(View)提供了 一系列定制标签(Custom Tag) 。Struts 几乎没有涉及 M(Model),所以 Struts 可以采用 Java 实现的 任何形式的商业逻辑。 (1)Model 部分 Struts 的Model 部分由ActionForm和lavaBean 组成。其中ActionForm用于封装用户请求参数, 所有的用户请求参数由系统自动封装成ActionForm 对象:该对象被ActionServlet转发给Action;

11、 然后 Action 根据ActionForm里的请求参数处理用户请求。而lavaBean 则封装了底层的业务逻辑,包括数 据库访问等。在更复杂的应用中,lavaBean所代表的绝非一个简单的lavaBean,可能是EJB 组件或者 其他的业务逻辑组件。该Model 对应图Model 部分 (2)View 部分 Struts 的View 部分采用JSP5Struts 提供了丰富的标签库,通过这些标签库可以最大限度地减 少脚本的使用。这些自定义的标签库可以实现与Model 的有效交互,并增加了显示功能。对应图的JSP 3 部分。整个应用由客户端请求驱动,当客户端请求被ActionServlet拦

12、截时ActionServlet根据请求决 定是否需要调用Model 处理用户请求,当用户请求处理完成后,其处理结果通过JSP 呈现给用户。 (3)Controller部分 Struts 的Controller 由两个部分组成。系统核心控制器和业务逻辑控制器。其中,系统核心控 制器对应图中的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成 一个标准的Servlet。该控制器负责拦截所有Hp请求,然后根据用户请求决定是否需要调用业务逻辑 控制器,如果需要调用业务逻辑控制器,则将请求转发给Action 处理,否则直接转向请求的JSP 页面。 业

13、务逻辑控制器负责处理用户请求,但业务逻辑控制器本身并不具有处理能力,而是调用Model 来完 成处理。业务逻辑控制器对应图中的Action 部分。 1.4.3 请求处理流程 每次打开页面进行对内容的增删改查操作时发送请求,在处理请求时控制器将完成如下任务: (1)为到来的请求找到URL (2)把URL 映射到适当的ActionMapping (3)创建或找到封装相关的ActionMapping 实例 (4)如果找到了ActionForm 的声明,就根据声明创建或找到ActionFormbean 的实例,并且用 request 参数去产生一个ActionForm bean 的属性。 (5)对于在

14、ActionMapping 中声明的Action 类实例,调用适当的execute方法,并为之传递 ActionMapping 对象,ActionForm 对象,request对象,response 对象4 个参数。 (6)接受execute 方法返回的ActionForward,转发响应到源(该源由ActionForward 指定) 注:以上任务都被定义在strutsconfig.xml 中,ActionServlet 会读取strutsconfig.xml 的 相关信息然后完成任务。ActionServlet 的声明是在web.xml 中完成的,配置ActionServlet 和配置 其他

15、Servlet 没有区别。通过Action返回页面所需要的内容,所需要的内容在JSP页面显示。 2. MVC 设计描述 MVC 架构的核心思想是:将程序分成相对独立,而又能协同工作的三个部分。通过使用 MVC 架构, 可以降低模块之间的搞合,提供应用的可扩展性。另外, MVC 的每个组件只关心组件内的逻辑,不应 与其他组件的逻辑混合。MVC 并不是 Java 所独有的概念,而是面向对象程序都应该遵守的设计理念。 山西大学商务学院家长与学校联系系统的设计与实现 4 4 2.1 MVC 简介 MVC 英文即 Model-View-Controller,即把一个应用的输入、处理、输出流程按照 Mod

16、el、View、Controller 的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制 层。视图(View)代表用户交互界面,对于 Web 应用来说,可以概括为 HTML 界面,但有可能为 XHTML、XML 和 Applet。业务流程的处理交予模型(Model)处理。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来 说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是 MVC 最 主要的核心。目前流行的 EJB 模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进 一步的划分,以便充分利用现有的

17、组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模 型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务 模型的设计。MVC 设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这 也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC 并没有提供模 型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。可用对象编程 7喻,MVC 定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程开发 人员非常重要。 控制(Controller)可以理解为从用户接收请求,将模型

18、与视图匹配在一起,共同完成用户的请求。 划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样 的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控 制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要 求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 2.2 MVC 及其优势优点 MVC 是Model 、View 、Controller 三个词的缩写,三个词分别代表应用的三个组成部分:模型、 视图与控制器。三个部分以最少的稿合,协同工作,从而提高应用的可扩

19、展性及可维护性。 2.3 系统工作流程 (1)页面查询:view层的JSP提交访问请求,Controller层通过调用Model层dbDAO来处理用户请 求,提供返回数据,Model层则是对Hibernate对持久层的访问返回数据给Controller层,然后返回给 view层。 (2)增加删除操作:view层的JSP提交请求,Controller层通过调用Model层dbDAO来处理用户请 5 求,Model层则是通过Hibernate对数据持久化。 3. 系统需求分析 3.1 需求分析 在线家长与学校联系系统主要分为了对学校的公告、新闻、活动、家教园地、父母课堂、益智乐 园、荣誉台等模块内

20、容的查看,和管理后台登陆进行的对以上模块内容的增删改查的功能和教师对本 班学生信息的增删改查功能,及家长注册登陆查询相关学号学生的在校信息。需求分析从狭义上讲, 最直接的是用户对目标系统的需求,即用户在信息管理中对应用系统所产生的各种各样的和可能的需 要,这种需要是对应用系统开发的定位和最基本的立足点,这种定位不应该局限于目前的需要,还应 该有一个长远需求的预测,以尽可能提高系统应用的生命周期。 3.2 系统功能分析 本系统有三种不同角色的用户。这三个角色分别是:家长、班主任以及系统管理员。他们的角色、 权限不同,因而所要执行的操作也有很大差别。 家长用户权限最低。他仅能访问自己孩子的信息、学

21、校公告,并可以对学校工作提出意见等。由 此确定其对应的操作:学生成绩、在校时间查询,学校新闻浏览,发表意见等。而对于教师来说,他 可以执行的功能操作有:学生信息的录入、修改、删除等操作(包括姓名、家长号、离、到校时间等) ; 成绩信息的录入、修改、删除等操作(包括成绩、时段、科目等) ;查看花名册、查看班级成绩列表等。 系统管理员所要执行的功能操作有:公告信息管理、用户信息管理两大部分。其中公告信息管理又包 括:学校公告管理,公告信息的删除、更新、修改(包括公告日期、内容、主题等) ,家长意见管理, 家长意见的删除、查看等。用户管理是指管理员有权对比其权限低的用户进行操作。管理员用户可以 指定

22、、删除班主任用户,可以分配、删除其他管理员用户等。在此基础上,有三个大的功能模块。它 们分别为不同的用户服务,共同构成整个系统的功能框架。 3.3 数据库需求分析 数据库需求需要从三个方面进行分析,分别为信息需求,信息处理要求,设计需要遵循的准则。 首先是信息需求。它是指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据 要求,即在数据库中需要存储哪些数据。本系统中有三类基本用户:家长、教师、管理员。家长从数 据库中获得子女的在校信息,包括在校时间,成绩查询,学校公告(这些信息家长仅仅有查询的权限, 山西大学商务学院家长与学校联系系统的设计与实现 6 6 而不能修改、删除、更新)以

23、及其他家长发表的建议、评论等。教师需要从数据库中提取班级学生信 息,班级成绩信息,可以录入、修改、删除、更新学生信息和班级成绩等。管理员需要从数据库中获 取学校公告信息,家长意见,用户信息等。 其次是处理要求。家长用户所要完成的处理:学生在校信息查询,学生成绩查询,学校公告信息 查询,发表意见等。班主任用户所要完成的处理:学生信息录入、修改、更新、删除、查询等;学生 成绩信息的录入、修改、更新、删除、查询等。系统管理员所要完成的操作:学校公告信息的更新、 删除、插入、查询等;家长信息的删除、查询等。班主任、管理员用户的分配、删除、信息修改等。 最后在进行表设计时要注意主键的安排,表之间的联系,

24、实体范围的确定等,以免造成数据库的 大量冗余,从而保证了实体完整性和参照完整性。 (1) 数据库:mysql6 数据库名:jiaoyu 数据库功能表单: classinfo(班级信息表); managers(管理员信息); teachers(教师信息); students(学生信息); parents(家长用户); examtypes(考试类型); subjects(考试科目名称); grades(学生成绩表); kaoqingtype(考勤类型); news(学校新闻); familyedu(家庭教育); parentedu(父母课堂); wenzhang(文章展示); huodong(学校

25、活动); rongyutai(荣誉台);yizhi(益智乐园) (2)根据功能的不同,把本系统的主要页面分为: 查询页面:系统主页显示的几个页面主要显示的是一条信息的标题部分,可以通过点击指定的某 一条信息,进行对这条信息的标题、作者、发表时间和内容的查看。 修改页面:指定的对象修改页面,通过请求返回的数据在 JSP 上以 text 的 Value 属性上,即在 text 中显示相对应 javaBean 的属性值的内容,当 text 文本修改后将提交信息到 Controller 层处理 业务。 增加页面:增加信息模板和学生,将 Form 中数据提交,在 Controller 层处理业务,并在

26、Model 层通过 Hibernate 对数据持久化。 7 4系统设计 系统设计是在前期需求分析的基础上提出的。它将着重对系统渐进的实现过程进行论述。这是一 个重要的过程,系统能否实现,系统软件产品质量的好坏都与此有关,必须把握好设计的方法、流程 甚至于细节。 4.1 概要设计 概要设计是对系统在最高抽象层上的设计,它不应关注于系统功能的实现细节。下面给出概要设 计的过程和结果。 (1)教师功能模块: a 学生资料的输入。包括学号、姓名、性别、到校时间、离校时间、家庭编号等。 b 成绩录入。包括课程号、成绩、成绩所属时段等。 c 课程设置。包括课程号、课程名等。 d 家长信息录入。包括账户名、

27、密码、姓名、性别、家庭住址、联系电话等。该信息录入是通过 家长用户注册的方式实现的。 (2)家长功能模块: a 学生信息查询。包括孩子到校时间查询、离校时间查询等。 b 意见管理。包括查看意见薄、留言等。 (3)系统管理功能模块: a 用户管理。包括分配班主任用户、分配系统管理员用户、删除班主任用户、删除系统管理员用 户等。注:班主任用户和系统管理员用户是不能自行随意注册的,他们是具有一定权限的用户,须由 现有管理员给予分配。 b 信息管理。包括学校公告信息管理、家长意见管理。学校公告信息管理包括公告信息的删除、 增加、更新、修改等,管理员需要实时的发布学校公告信息。而家长意见管理功能又包括了

28、浏览家长 意见板、删除家长留言等。 4.2 数据库设计 数据库设计是对系统所需要的一系列数据在经过分析之后,进行实体归纳、设计。其目的在于在 数据库操作时能尽可能的减少冗余,提高数据完整性。 山西大学商务学院家长与学校联系系统的设计与实现 8 8 4.2.1 数据库概念设计 数据库概念设计用 E-R 图来描述。本系统中部分 E-R 图如图 4.1 所示。 家庭号 教师号 学生 学号 姓名 监护 学生 家庭号 密码 家庭住址 姓名 留言管理 班主任留言 账户名 姓名 密码留言板内容 类别标题 图 4.1 E-R 图 实体关系图描述了数据库中各种实体的相互关系。从图中可以确定家长、学生之间,学生、

29、班主 任之间,留言、家长之间存在的关系。 4.2.2 数据库逻辑设计 上文中提到的多个模块在实现过程中都与数据库有着密切的联系,因此数据库的设计在本系统的 开发过程中占有重要地位。以下是本系统中用到的部分表,学生信息表如表 4.1 所示。 9 表 4.1 stuInfo 表 字段名字段类型字段长度是否主键意义 stuidNvchar10 是唯一标识学生 stunameNvchar16 否姓名 comeTimeDatetime8 否到校时间 goTimeDatetime8 否离校时间 homeIdnvchar15 否家庭号 teacherIdnvchar15 否教师号 对于表 4.2:其中 st

30、uid 为主键,用来唯一的标识一名学生。而 homeId 是家庭编号,它用来把每 个学生和其家长对应起来。家长可用此号访问到自己孩子的信息。teacherId 是班主任的编号,用于 联系学生表,从而可以对班级学生信息进行查询、修改、删除等操作,用户信息表如表 4.2 所示。 表 4.2 userInfo 表 字段名字段类型字段长度是否主键意义 userTypeNvchar10 否表示用户类别 userIdNvchar20 是唯一标识用户 PasswordNvchar20 否密码 userNameNvchar20 否用户名 userSexChar2 否用户性别 对于表 4.3:userId 用来

31、唯一标识一名用户,userType 用来区分不同用户,如 01 表示管理员, 02 表示班主任用户,03 表示家长用户。对于后两种用户,userId 即是连接两表的 homeId 或 teacherId,留言信息表如表 4.3 所示。 山西大学商务学院家长与学校联系系统的设计与实现 1010 表 4.3 messageInfo 表 字段名字段类型字段长度是否主键意义 messageidInt4Key 标识一条留言 messagetypeNvchar5 否公告类别 useridNvchar20 否留言人 TitleNvchar50 否 标题 ContentNvchar500 否内容 dateNv

32、chardatetime 否日期 对于表 4.3:Messageid 是主键,自动增量,用于唯一的标识一条信息(学校公告或家长意见) 。 Messagetype 区分学校公告和家长意见,如 01 表示公告,02 表示意见。Userid 记录谁发表了留言。 此属性可用于连接表 4.1 和表 4.2,由图 4.1 的 E-R 图导出的数据库表的关系图如图 4.2 所示。 图 4.2 数据库表的关系 4.3 系统详细设计 详细设计是对概要设计确定的软件和数据的总体框架的进一步精化,精化成软件的算法和数据结 构等。 4.3.1 符号代码设计 代码是代表事物的名称、属性、状态等的符号,为了便于计算机处理

33、,一般用数字、字母或它们 的组合来表示。它为事物提供一个概要而不模糊的认定,便于数据的存储和检索。使用代码可以提高 11 处理效率和精度,及数据的全局一致性。 代码的编码方法有:顺序码、区间码、助记码。系统中用到的有: 顺序码:01 管理员、02 班主任、03 家长。 助记码:USEREXISTS 代表用户名存在,stuInfoInsert 代表学生信息录入等。 4.3.2 数据结构设计 在此以班主任模块为例进行说明。为了方便班主任查看班级学生信息和学生成绩,分别使用了二 维数组来存储这些信息。studentInfoxy中存放班级学生信息。其中 x 为班级人数,Y 为每个学生 对应的属性个数。

34、 4.3.3 算法设计 为了控制程序的流向,避免大量的重复性操作,对程序进行一些算法设计。下面给出对用户登录 中的转向和取数据库表的信息的方法的算法设计,设计语言选用 PDL10。 1.在用户登录时,不同用户需要登录到不同的工作页面中。为此做以下设计。 CASE 用户类别 WHEN 管理员 SELECT 服务器端验证,如果通过则把此用户的登录标志性信息放在其 Session 对象中,用于系统安全性控制。具体实现方法将在 4.3 节给出。然后转向管理员工作页面。 WHEN 班主任 SELECT 除做上述操作之外,还把学生信息从数据库中取出,以备班主任查询, 其目的在于提高用户访问站点的速度。然后

35、转向班主任工作页面。 WHEN 家长 SELECT 操作实现类似班主任。然后转向家长工作页面。 DEFAULT:登录失败。 ENDCASE 2.取数据库表信息。 DO WHILE 数据库表中还有符合条件的信息,将表中信息封装成相应的 JAVABEANS,以备用户 访问。 ENDWHILE 此算法设计为取各种表中信息,取数据时不区分表的类别,待取出信息后再封装成不 同的 JavaBeans,比如 MessageBean 等,以此避免重写大量的取表信息的代码。 5. 系统实现 系统实现侧重于系统功能的代码实现。在本系统实现的过程中充分应用了 Struts 框架下的 MVC 山西大学商务学院家长与学

36、校联系系统的设计与实现 1212 设计思想。在 Java 语言基础上的 Web 应用开发因为 Tomcat 这一 Application Server 的应用,而省 去了大量的关于用户 Session 管理的手动实现。 5.1 系统中对象的创建 本系统的开发中,依照 Struts 框架的 MVC 设计思想,对系统中用到的对象做以下部署:继承自 ActionServlet 类的类用来进行逻辑控制,即 MVC 中的 Controller。例如系统中的 view.do,用于进 行用户登录时的转向控制,不同的用户将转向不同的操作界面。JSP 用来进行客户端显示,即 MVC 中 的 View。而 Jav

37、aBeans 用来实现信息的模块封装。程序通过浏览器区分客户,对于每个客户, Application Server 都将自动创建一个 Session 对象,一个用户所需全局信息可置于其中(它其实是 一个容器对象)用户浏览器请求通过自动创建的 request 传送,而所有关乎数据库的操作都封装在 SqlExcute 类中(自建类) 。而各种经过处理的信息都放在各种 JavaBeans 对象中,例如:学生信息放 在 StudentBean 中。所谓 JavaBeans 是有 getxxx(),setxxx()组成的 java 类,事实上是一种规则, 以利于信息的访问。 5.2 系统功能模块实现 在

38、系统设计的基础上,依照设计的成果,选用具体的开发语言、环境,进行系统功能的代码实现。 5.2.1 首页访问的实现 用户在访问站点时,没有直接发送 JSP 页面请求,而是将请求发给了 SeveletAction,并由它来 重定向页面请求。这样做的好处在于可以把 Java 实现的数据操作放在 JB 中,有 SeveletAction 将 JSP 转向和数据操作结合起来。因为在 JSP 中直接引用 Java 代码进行数据操作是不可取的。此时用户 请求的 SeveletAction 中的代码如下: ArrayListalmb =new ArrayList(); SqlExcute.sqlConn();

39、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); 13 return (mapping.findForward(“viewgo“); 这段代码放在一个继承自 ActionServlet 的类中,此

40、类即是 Struts MVC 中的 Controller。它不 做任何的数据处理,只是把用户的请求和模型结合起来。数据库访问的操作都放在自定义的 SqlExcute 类中,以静态方法的形式存在。而 MessageBean 即是所谓的 EJB,它是一种遵循了某些规则 的 Java 类。从数据库中取出的公告信息被封装成 MessageBean 的对象之后放入 ServletContext 中, 以备请求页面的用户预览。Controller 获取这些信息,并定向到用户请求的页面。正是 EJB 所遵循的 规则,使这些以 Bean 存放的信息可以在页面以简便的 EL 语句输出,如下代码所示。 其中 c:

41、forEach 是 JSP 的 taglib,用于重用 Java 代码,用户注册界面如图 5.1 所示。 山西大学商务学院家长与学校联系系统的设计与实现 1414 图 5.1 用户注册界面 5.2.2 用户登录模块功能实现 用户登录时需要向服务器提交登录信息,而以什么形式提交这些信息才能最大限度的实现代码的 可重用性,Struts 也考虑到了这些。此时 Struts 的 taglib(标签)发挥了它完美的作用。 标签定义一个用户提交信息的表单,是它最初确定了要把表单提交到何处进行处理。而要完全实现对 整个系统导航,必须用到 Struts-config.xml,它是一个配置文件,真正把用户提交的

42、表单封装成一 个 FormBean 的类。这样只需把该类和要提交到的 ServletAction 在此配置文件中做一个映射即可。不 必重写 FormBean,只需通过多次映射便可多次使用该表单信息。下面代码片断为本系统中的一个映射。 此映射将 loginForm 表单提交给 login 这样一个 ServletAction 类。 表单信息以动态 FormBean 的形式提交给 login 后,login 调用 SqlExcute 数据库的操作方法,判 断用户类别,用户是否存在(不存在就定向到注册页面) ,密码是否正确等。 (这里值得一提的是所有 不牵涉数据库操作的客户端验证均利用在 Jsp 页

43、面进行验证,如输入长度,格式等。 ) 待这些服务器端验证成功时,再把对于一个用户来说全程访问的数据信息通过 SqlExcute 类提取出来, 封装成相应的 JavaBeans 减少数据库连接次数(这种连接要占用大量资源)以备用户访问。 if(userType.equals(“03“) 15 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().s

44、etAttribute(“scores“,cb); request.getSession().setAttribute(“students“,stuInfo); return (mapping.findForward(“gopar“); 这段代码中,首先判断出该用户是家长用户,然后判断出用户存在。再把从数据库中取出的孩子 信息封装成 StudentBean 对象,放入用户 Session 对象,最后跳转到家长工作的页面。这是从用户登 录中截取的一段代码。在用户登录中要进行用户角色划分,以便不同用户进入不同的工作模块。这里 是通过 userType 这一属性区分不同用户。01 表示管理员、02

45、表示班主任、03 表示家长。用户登录界 面如图 5.2 所示。 山西大学商务学院家长与学校联系系统的设计与实现 1616 图 5.2 用户登录界面 5.2.3 家长用户模块功能实现 家长用户主要执行查询、留言等操作。 (1)孩子在校信息、成绩查询 在登录之初,已经在 view.do 中把这些信息封装到相应的 JavaBeans 中,放入 Session 对象中, 此时可以直接在页面用 EL 语句输出即可。 (2)家长留言 用于完成留言信息输入。提交时,以动态 FromBean 方式提交给相应的继承自 Action 类的类。在 此类中判断用户是否登录。如登录则将留言信息以家长用户类型插入到数据库

46、留言表中,同时将操作 提示返回给用户。 (3)删除留言 用户选择删除留言操作后,页面将此信息提交给相应的 Action 去处理,Action 调用数据库操作 的类执行删除操作,并将操作结果的信息返回给页面,家长登录后的学生信息如图 5.3 所示。 图 5.3 家长登录后的学生信息 5.2.4 班主任用户模块功能实现 (1)学生信息录入 班主任选择学生信息录入的操作,进入信息录入界面。根据界面提示输入学生信息,以动态 FormBean 的形式提交给相应的 Action 类。此类调用数据库操作类,判断学生是否存在。如果不存在, 17 则调用数据库操作类将学生信息插入学生信息表。操作后要返回操作结果

47、信息给班主任页面。 动态 FormBean 是在 Struts-config.xml 配置文件中进行定义,并由 Tomcat 自动创建的。提交的 学生信息表单定义形式如下: 显示的是教师信息里对应的班级里所有的学生,教师登录后的页面如图 5.4 所示。 图 5.4 教师登录界面 添好学生信息后,点击继续添加后的界面状态。这里有操作成功的提示信息(inserting is ok),关于它的实现方法会在管理员工作模块中的公告信息添加中详细说明。 在判断出要插入的学生信息不存在后,可以执行插入操作,将学生信息插入数据库。下面代码片 断给出了部分实现过程。 String sql = “insert i

48、nto students(stuid,stuname,stusex,cometime,gotime,homeid,teacherid) “ + “values (?,?,?,?,?,?,?)“; /为了描述方面用”?”代替具体的属性值 SqlExcute.sqlConn(); 山西大学商务学院家长与学校联系系统的设计与实现 1818 SqlExcute.insertInfo(sql,userInfo); SqlExcute.doClose(); sqlConn()为数据库连接的方法,insertInfo()为向数据库插入记录的方法,doClose()为关闭连 接的方法。这些方法都为自定义的,目

49、的在于实现代码的完全重用。这也是所谓的完全面向对象,因 为对于使用这些方法的人员,他不必关心这些方法的实现细节,只需要知道它们的作用即可方便使用。 (2)成绩录入 基本的实现过程同上,所要注意的是成绩的插入必须以该生存在为前提,也就是说必须做到确保 实体的完整性、一致性。 (3)查看班级花名册 在登录之初,已经把这些信息封装在相应的 JavaBeans 中,放于 Session 对象,此时直接在页面 输出即可。 (4)班级成绩查询 在登录之初,已经把这些信息封装在相应的 JavaBeans 中,放于 Session 对象,此时直接在页面 输出即可。 (5)学生信息删除 在查看花名册时,对应每条学生信息都有删除/添加的操作。用户在选择删除操作之后,转到相 应 Action 类中。判断学生信息是否存在,如果存在,则调用数据库操作类进行删除操作。此时注意级 联删除的概念。要同时删除与学生对应的家长信息,学生成绩等,防止数据库的不一致。 (6)成绩删除 步骤同上,不需要考虑级联删除的问题,修改学生信息界面如图 5.5 所示。 图 5.5 修改学生信息界面 5.2.5 管理员模块功能实现 管理员拥有最高权限,他可以执行其他用户无法执行的操作,如分配班主任用户,管理员用户等。 19 (1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1