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

上传人:文库蛋蛋多 文档编号:4023680 上传时间:2023-04-01 格式:DOC 页数:33 大小:686.50KB
返回 下载 相关 举报
山西大学商务学院家长与学校联系系统的设计与实现毕业论文设计.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月二一二年五月目 录内容提要I1 引言. .11.1 管理信息系统介. . .11.2 开发背景及意义 . .11.3 开发工具简介. . 11.4 开发框架及应用技术介绍. .11.4.1项目容器21.4.2项目总体框架21.4.3请求处理流程32 MVC设计描述.42.1 MVC简介42.2 MVC 及其优势优点.52.3系统工作流程53 系统需求分析. .53.1 需求分析. 53.2 系统功能分析.53.3 数据库需求分析.64 系

2、统设计. 74.1 概要设计. 74.2 数据库设计. 84.2.1 数据库概念设计. .84.2.2 数据库逻辑设计. 94.3 系统详细设计. .104.3.1 符号代码设计. 104.3.2 数据结构设计. 104.3.3 算法设计. .105 系统实现. .115.1 系统中对象的创建. .115.2 系统功能模块实现. .125.2.1 首页访问的实现. 125.2.2 用户登录模块功能实现. 135.2.3 家长用户模块功能实现. .155.2.4 班主任用户模块功能实现. .165.2.5 管理员模块功能实现. 185.3 系统安全性的实现. 206 结语.21致谢22参考文献2

3、3ABSTRACT24 家长与学校联系系统的设计与实现 内容提要 学校家长联系系统的开发可以解决传统方式带来的耗时、滞后、耗财、耗人力等问题,方便家长与学校之间进行联系,提高学校对学生信息的管理效率,减轻教师的工作量。本论文通过对系统的需求分析、概要设计、数据库设计、系统实现等过程的描述,论述了开发一个管理信息系统(Management Information System)MIS的基本流程。本系统使用Java开发,集成开发环境选用了Java 2 Enterprise Edition,开发框架选用了基于J2EE 的Struts框架,以Servlet和Jsp为主要技术。关键词 管理信息系统 面向

4、对象技术 MVC三层设计模式 JavaBeans1. 引言管理信息系统1是现代企业、事业单位提高自身管理效率,加快本单位信息检索和加强信息管理能力必须倚重的软件系统。管理信息系统的表现形式多种多样,但其基本目的、功能和设计原则都是相通的。1.1 管理信息系统简介管理信息系统的主要功能包括:(1)数据处理:包括数据收集和输入、数据传输、数据存储、数据加工处理和输出。它准备和提供统一格式的信息,使各种统计工作简化,使信息成本最低。(2)预测功能:运用现代数学方法、统计方法或模拟方法,根据过去的数据预测未来的情况。(3)计划功能:根据企业提供的约束条件,合理地安排各职能部门的计划,按照不同的管理层,

5、提供相应的计划报告。1.2 开发背景及意义目前,学校和家长之间联系不密切,甚至于联系脱节。开发这套学校家长联系系统用于家长了解学生在学校期间的学习情况,家长可以查询孩子的学习成绩(期末和平时单元测验)、到校和放学的时间、学校要求家长配合的有关事项(公告);同时学校也可以使用本系统发布信息,查看家长对学校工作的反馈意见,并在一定程度上减轻了学校管理部门的工作(如学生成绩排名、成绩分析等)。1.3 开发工具简介选择一套合适的开发工具是顺利完成项目开发的重要条件,在本系统的开发中,所用到的工具软件是Eclipse java 编辑器、Photoshop 图形处理软件、SQL Server 2000 3

6、数据库以及Java语言。其中,Eclipse是一个开放源代码的、基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。其未来的目标不仅仅是成为专门开发Java程序的IDE环境,而是根据Eclipse的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Ec

7、lipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成-Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台,它提供建造块和构造并运行集成软件开发工具的基础。1.4 开发框架及应用技术介绍1.4.1 项目容器项目的运行依赖于Tomcat容器。Tomcat 是Java 领域最著名的开源Web 容器,简单、易用且稳定性极好。Tomcat 作为一个Web 服务器,默认的服务端口是8080 ,但该端口完全可

8、以自己控制。虽然Tomcat 是免费的Web 服务器,但也提供了两个图形界面的控制台。用户可以使用控制台方便地部署Web 应用、配置数据源及监控服务器中的Web 应用等。1.4.2 项目总体框架在线家长与学校联系系统整体框架采用了struts2框架。Struts是由Apache开源联盟(www.apache.org)提供的一套用于构建Java Web应用程序的框架。它的目标是希望分离Web程序的表示层、控制层和模型层,即MVC模式,使程序员将更多的精力投入后台的业务逻辑设计,而不是底层的Web基础框架。Struts的所有功能都是建立在已有的Java Web组件上,如Servlet、JSP或是J

9、avaBean,它只是利用一种方式将这些元素组织起来,使他们协同工作。总之,Struts只是一个MVC框架(Framework),用于快速开9 Web应用。Struts实现的重点在C(Controller),包括ActionServlet / RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag)。Struts几乎没有涉及M(Model),所以Struts可以采用Java实现的任何形式的商业逻辑。(1)Model 部分Struts 的Model 部分由ActionForm和lavaBean 组成。其中ActionForm用于封装

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

11、交互,并增加了显示功能。对应图的JSP 部分。整个应用由客户端请求驱动,当客户端请求被ActionServlet拦截时ActionServlet根据请求决定是否需要调用Model 处理用户请求,当用户请求处理完成后,其处理结果通过JSP 呈现给用户。(3)Controller部分Struts 的Controller 由两个部分组成。系统核心控制器和业务逻辑控制器。其中,系统核心控制器对应图中的ActionServlet。该控制器由Struts框架提供,继承HttpServlet类,因此可以配置成一个标准的Servlet。该控制器负责拦截所有Hp请求,然后根据用户请求决定是否需要调用业务逻辑控制

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

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

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

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

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

17、它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。2.2 MVC 及其优势优点MVC 是Model 、View 、Controller 三个词的缩写,三个词分别代表应用的三个组成部分:模型、视图与控制器。三个部分以最少的稿合,协同工作,从而提高应用的可扩展性及可维护性。2.3 系统工作流程(1)页面查询:view层的JSP提交访问

18、请求,Controller层通过调用Model层dbDAO来处理用户请求,提供返回数据,Model层则是对Hibernate对持久层的访问返回数据给Controller层,然后返回给view层。(2)增加删除操作:view层的JSP提交请求,Controller层通过调用Model层dbDAO来处理用户请求,Model层则是通过Hibernate对数据持久化。3. 系统需求分析3.1 需求分析在线家长与学校联系系统主要分为了对学校的公告、新闻、活动、家教园地、父母课堂、益智乐园、荣誉台等模块内容的查看,和管理后台登陆进行的对以上模块内容的增删改查的功能和教师对本班学生信息的增删改查功能,及家长

19、注册登陆查询相关学号学生的在校信息。需求分析从狭义上讲,最直接的是用户对目标系统的需求,即用户在信息管理中对应用系统所产生的各种各样的和可能的需要,这种需要是对应用系统开发的定位和最基本的立足点,这种定位不应该局限于目前的需要,还应该有一个长远需求的预测,以尽可能提高系统应用的生命周期。3.2 系统功能分析本系统有三种不同角色的用户。这三个角色分别是:家长、班主任以及系统管理员。他们的角色、权限不同,因而所要执行的操作也有很大差别。家长用户权限最低。他仅能访问自己孩子的信息、学校公告,并可以对学校工作提出意见等。由此确定其对应的操作:学生成绩、在校时间查询,学校新闻浏览,发表意见等。而对于教师

20、来说,他可以执行的功能操作有:学生信息的录入、修改、删除等操作(包括姓名、家长号、离、到校时间等);成绩信息的录入、修改、删除等操作(包括成绩、时段、科目等);查看花名册、查看班级成绩列表等。系统管理员所要执行的功能操作有:公告信息管理、用户信息管理两大部分。其中公告信息管理又包括:学校公告管理,公告信息的删除、更新、修改(包括公告日期、内容、主题等),家长意见管理,家长意见的删除、查看等。用户管理是指管理员有权对比其权限低的用户进行操作。管理员用户可以指定、删除班主任用户,可以分配、删除其他管理员用户等。在此基础上,有三个大的功能模块。它们分别为不同的用户服务,共同构成整个系统的功能框架。3

21、.3 数据库需求分析数据库需求需要从三个方面进行分析,分别为信息需求,信息处理要求,设计需要遵循的准则。首先是信息需求。它是指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。本系统中有三类基本用户:家长、教师、管理员。家长从数据库中获得子女的在校信息,包括在校时间,成绩查询,学校公告(这些信息家长仅仅有查询的权限,而不能修改、删除、更新)以及其他家长发表的建议、评论等。教师需要从数据库中提取班级学生信息,班级成绩信息,可以录入、修改、删除、更新学生信息和班级成绩等。管理员需要从数据库中获取学校公告信息,家长意见,用户信息等。其次是处理要求。家长

22、用户所要完成的处理:学生在校信息查询,学生成绩查询,学校公告信息查询,发表意见等。班主任用户所要完成的处理:学生信息录入、修改、更新、删除、查询等;学生成绩信息的录入、修改、更新、删除、查询等。系统管理员所要完成的操作:学校公告信息的更新、删除、插入、查询等;家长信息的删除、查询等。班主任、管理员用户的分配、删除、信息修改等。最后在进行表设计时要注意主键的安排,表之间的联系,实体范围的确定等,以免造成数据库的大量冗余,从而保证了实体完整性和参照完整性。(1) 数据库:mysql6数据库名:jiaoyu 数据库功能表单: classinfo(班级信息表); managers(管理员信息);tea

23、chers(教师信息); students(学生信息); parents(家长用户); examtypes(考试类型); subjects(考试科目名称); grades(学生成绩表);kaoqingtype(考勤类型); news(学校新闻); familyedu(家庭教育); parentedu(父母课堂); wenzhang(文章展示); huodong(学校活动);rongyutai(荣誉台);yizhi(益智乐园)(2)根据功能的不同,把本系统的主要页面分为:查询页面:系统主页显示的几个页面主要显示的是一条信息的标题部分,可以通过点击指定的某一条信息,进行对这条信息的标题、作者、发表

24、时间和内容的查看。修改页面:指定的对象修改页面,通过请求返回的数据在JSP上以text的Value属性上,即在text中显示相对应javaBean的属性值的内容,当text文本修改后将提交信息到Controller层处理业务。增加页面:增加信息模板和学生,将Form中数据提交,在Controller层处理业务,并在Model 层通过Hibernate对数据持久化。4系统设计系统设计是在前期需求分析的基础上提出的。它将着重对系统渐进的实现过程进行论述。这是一个重要的过程,系统能否实现,系统软件产品质量的好坏都与此有关,必须把握好设计的方法、流程甚至于细节。4.1 概要设计概要设计是对系统在最高抽

25、象层上的设计,它不应关注于系统功能的实现细节。下面给出概要设计的过程和结果。(1)教师功能模块:a学生资料的输入。包括学号、姓名、性别、到校时间、离校时间、家庭编号等。b成绩录入。包括课程号、成绩、成绩所属时段等。c课程设置。包括课程号、课程名等。d家长信息录入。包括账户名、密码、姓名、性别、家庭住址、联系电话等。该信息录入是通过家长用户注册的方式实现的。(2)家长功能模块:a学生信息查询。包括孩子到校时间查询、离校时间查询等。b意见管理。包括查看意见薄、留言等。(3)系统管理功能模块:a用户管理。包括分配班主任用户、分配系统管理员用户、删除班主任用户、删除系统管理员用户等。注:班主任用户和系

26、统管理员用户是不能自行随意注册的,他们是具有一定权限的用户,须由现有管理员给予分配。b信息管理。包括学校公告信息管理、家长意见管理。学校公告信息管理包括公告信息的删除、增加、更新、修改等,管理员需要实时的发布学校公告信息。而家长意见管理功能又包括了浏览家长意见板、删除家长留言等。4.2 数据库设计数据库设计是对系统所需要的一系列数据在经过分析之后,进行实体归纳、设计。其目的在于在数据库操作时能尽可能的减少冗余,提高数据完整性。4.2.1 数据库概念设计数据库概念设计用E-R图来描述。本系统中部分E-R图如图4.1所示。家庭号教师号学生学号姓名监护学生家庭号密码家庭住址姓名留言管理班主任留言账户

27、名姓名密码留言板内容类别标题图4.1 E-R图实体关系图描述了数据库中各种实体的相互关系。从图中可以确定家长、学生之间,学生、班主任之间,留言、家长之间存在的关系。4.2.2 数据库逻辑设计上文中提到的多个模块在实现过程中都与数据库有着密切的联系,因此数据库的设计在本系统的开发过程中占有重要地位。以下是本系统中用到的部分表,学生信息表如表4.1所示。表4.1 stuInfo表字段名字段类型字段长度是否主键意义stuidNvchar10是唯一标识学生stunameNvchar16否姓名comeTimeDatetime8否到校时间goTimeDatetime8否离校时间homeIdnvchar15

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

29、.3:userId用来唯一标识一名用户,userType用来区分不同用户,如01表示管理员,02表示班主任用户,03表示家长用户。对于后两种用户,userId即是连接两表的homeId或teacherId,留言信息表如表4.3所示。表4.3 messageInfo表字段名字段类型字段长度是否主键意义messageidInt4Key标识一条留言messagetypeNvchar5否公告类别useridNvchar20否留言人TitleNvchar50否 标题ContentNvchar500否内容dateNvchardatetime否日期对于表4.3:Messageid是主键,自动增量,用于唯一的

30、标识一条信息(学校公告或家长意见)。Messagetype区分学校公告和家长意见,如01表示公告,02表示意见。Userid记录谁发表了留言。此属性可用于连接表4.1和表4.2,由图4.1的E-R图导出的数据库表的关系图如图4.2所示。图4.2 数据库表的关系 4.3 系统详细设计详细设计是对概要设计确定的软件和数据的总体框架的进一步精化,精化成软件的算法和数据结构等。4.3.1 符号代码设计代码是代表事物的名称、属性、状态等的符号,为了便于计算机处理,一般用数字、字母或它们的组合来表示。它为事物提供一个概要而不模糊的认定,便于数据的存储和检索。使用代码可以提高处理效率和精度,及数据的全局一致

31、性。代码的编码方法有:顺序码、区间码、助记码。系统中用到的有:顺序码:01 管理员、02 班主任、03 家长。助记码:USEREXISTS代表用户名存在,stuInfoInsert代表学生信息录入等。4.3.2 数据结构设计在此以班主任模块为例进行说明。为了方便班主任查看班级学生信息和学生成绩,分别使用了二维数组来存储这些信息。studentInfoxy中存放班级学生信息。其中x为班级人数,Y为每个学生对应的属性个数。4.3.3 算法设计为了控制程序的流向,避免大量的重复性操作,对程序进行一些算法设计。下面给出对用户登录中的转向和取数据库表的信息的方法的算法设计,设计语言选用PDL10。1.在

32、用户登录时,不同用户需要登录到不同的工作页面中。为此做以下设计。CASE 用户类别WHEN 管理员 SELECT 服务器端验证,如果通过则把此用户的登录标志性信息放在其Session对象中,用于系统安全性控制。具体实现方法将在4.3节给出。然后转向管理员工作页面。WHEN 班主任 SELECT 除做上述操作之外,还把学生信息从数据库中取出,以备班主任查询,其目的在于提高用户访问站点的速度。然后转向班主任工作页面。WHEN 家长 SELECT 操作实现类似班主任。然后转向家长工作页面。DEFAULT:登录失败。ENDCASE2.取数据库表信息。DO WHILE 数据库表中还有符合条件的信息,将表

33、中信息封装成相应的JAVABEANS,以备用户访问。ENDWHILE 此算法设计为取各种表中信息,取数据时不区分表的类别,待取出信息后再封装成不同的JavaBeans,比如MessageBean等,以此避免重写大量的取表信息的代码。5. 系统实现系统实现侧重于系统功能的代码实现。在本系统实现的过程中充分应用了Struts框架下的MVC设计思想。在Java语言基础上的Web应用开发因为Tomcat 这一Application Server 的应用,而省去了大量的关于用户Session管理的手动实现。5.1 系统中对象的创建本系统的开发中,依照Struts框架的MVC设计思想,对系统中用到的对象做

34、以下部署:继承自ActionServlet类的类用来进行逻辑控制,即MVC中的Controller。例如系统中的view.do,用于进行用户登录时的转向控制,不同的用户将转向不同的操作界面。JSP用来进行客户端显示,即MVC中的View。而JavaBeans用来实现信息的模块封装。程序通过浏览器区分客户,对于每个客户,Application Server都将自动创建一个Session对象,一个用户所需全局信息可置于其中(它其实是一个容器对象)用户浏览器请求通过自动创建的request传送,而所有关乎数据库的操作都封装在SqlExcute类中(自建类)。而各种经过处理的信息都放在各种JavaBe

35、ans对象中,例如:学生信息放在StudentBean中。所谓JavaBeans是有getxxx(),setxxx()组成的java类,事实上是一种规则,以利于信息的访问。5.2 系统功能模块实现在系统设计的基础上,依照设计的成果,选用具体的开发语言、环境,进行系统功能的代码实现。5.2.1 首页访问的实现用户在访问站点时,没有直接发送JSP页面请求,而是将请求发给了SeveletAction,并由它来重定向页面请求。这样做的好处在于可以把Java实现的数据操作放在JB中,有SeveletAction将JSP转向和数据操作结合起来。因为在JSP中直接引用Java代码进行数据操作是不可取的。此时

36、用户请求的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); retu

37、rn (mapping.findForward(viewgo);这段代码放在一个继承自ActionServlet的类中,此类即是Struts MVC 中的Controller。它不做任何的数据处理,只是把用户的请求和模型结合起来。数据库访问的操作都放在自定义的SqlExcute类中,以静态方法的形式存在。而MessageBean即是所谓的EJB,它是一种遵循了某些规则的Java类。从数据库中取出的公告信息被封装成MessageBean的对象之后放入ServletContext中,以备请求页面的用户预览。Controller获取这些信息,并定向到用户请求的页面。正是EJB所遵循的规则,使这些以B

38、ean存放的信息可以在页面以简便的EL语句输出,如下代码所示。 其中c:forEach是JSP的taglib,用于重用Java代码,用户注册界面如图5.1所示。图5.1用户注册界面5.2.2 用户登录模块功能实现用户登录时需要向服务器提交登录信息,而以什么形式提交这些信息才能最大限度的实现代码的可重用性,Struts也考虑到了这些。此时Struts的taglib(标签)发挥了它完美的作用。标签定义一个用户提交信息的表单,是它最初确定了要把表单提交到何处进行处理。而要完全实现对整个系统导航,必须用到Struts-config.xml,它是一个配置文件,真正把用户提交的表单封装成一个FormBea

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

40、程访问的数据信息通过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表示管理员、

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号