基于MVC架构的学生信息管理系统分析

                                  学生信息管理系统的MVC架构分析

                                        摘 要
  目前,高校Web学生信息管理系统开发中多选用J2EE三层结构,在分析了某学院学生管理信息系统的实际需求的基础上,在中间应用层开发中,采用以EJB为中心、Servlets做控制、JSP负责呈现逻辑的MVC结构,提高了Web应用程序的可扩展性和可维护性。   关键词:模型-视图-控制器;JSP;Servlets;EJB
                                  Abstract
  At present, the J2EE three-tier structure is mostly used in the development of Web student information management systems in colleges and universities. Based
on the analysis of the actual needs of a college student management information system, EJB-centered and Servlets are used for control in the development of the intermediate application layer.JSP is responsible for presenting the logical MVC structure, which improves the scalability and maintainability of Web applications.  Keywords: model-view-controller; JSP; Servlets; EJB 1 引言   目前Web学生信息管理系统都能支持多平台访问与控制,采用分布数据管理方式。学生可以通过网络实现信息查询、选课、个人信息统计、下载学习资料、上传作业、报告乃至实现网络化学习。教师可以充分利用网络资源,对每一门课程建设一个网络节点,将课程要求、教学大纲、参考书目、电子教案、教学课件、习题指导等全部建设在该节点上,供学生使用,进一步实现网络化教学。教务人员可以通过网络数据库平台实现课程管理、教学管理、成绩管理、学籍管理的自动化,以及教学质量评估、人才评估的自动化。在开发高校Web学生信息管理系统中多选用J2EE三层结构,其
中中间层采用MVC结构可使系统具有良好的可扩展性及灵活性。 2 MVC概述 2.1 MVC简介 MVC即“模型-视图-控制器”(Model-View-Control,MVC)。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models
的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。模型、视图、控制器三者之间的关系和各自的主要功能,如图
所示:
  
  MVC架构是一个复杂的架构。但是,我们已经总结出了很多可靠的设计模型,种设计模式结合在一起,使MVC架构的实现变得相对简单易行。Views可以看作一棵树,显然可以用Composite Pattern来实现。
Views和Models之间的关系可以用Observer Pattern体现。Controller控制Views的显示,可以用Strategy Pattern实现。Model通常是一个调停者,可采用Mediator Pattern来实现。   MVC与J2EE架构的对应关系是:View处于Web Tier或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。Controller也处于Web Tier,通常用Servlet来实现,即页面显示的逻辑部分实现。Model处
于Middle Tier,通常用服务端的javaBean或者EJB实现。 2.2 MVC的产生   Model-View-Control是软件设计的典型结构,它最先在Smalltalk中应用,是1996年由Buschmann提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然
的SUN在petstore(宠物店)事例应用程序中就推荐MVC架构作为开发Web应用的架构模式。MVC架构是一种架构,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而
service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使
开发者能将Model应用于Struts框架中。

2.3  MVC设计思想 
  MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。
 2.3.1 视图 
  视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,
MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个学生添加学籍信息的视图只接受来自模
型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 2.3.2 模型   模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。
目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技
术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依
据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉
它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将所添加的学生学籍信息保存到数据库,再从数据库获取所需要查询的学生学籍信息。我们可以将这个模
型单独列出,所有有关数据库的操作只限制在该模型中。 2.3.3 控制   控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,
可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用
户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。

3  系统功能划分 
  Web学生信息管理系统完成的主要功能有(如图所示):浏览学生基本信息、添加学生信息、修改学生信息、删除学生信息、查询学生信息。


4  系统中间层采用MVC设计模式 
  系统Web应用部分采用基于J2EE三层架构,将表现层,中间层和数据层分开,将所有的商业逻辑和工作流放入服务器端。在中间应用层中,采用以EJB为中心、Servlets做控制、JSP负责呈现逻辑的MVC结构
系统中间层中MVC结构把功能模块、显示模块和控制模块分离,使各部分之间协调工作、耦合性较小。EJB负责业务逻辑部分。通过对系统的分析,为了使系统开发与维护更具有可操作性,使系统的体系结构更
清晰,将业务逻辑划分为应用逻辑和商业逻辑两部分,其中应用逻辑部分负责用户的请求,商业逻辑部分负责与数据库服务器的操作。应用逻辑以应用的需求条件调用商业逻辑,商业逻辑将相应结果再返回给
应用逻辑。业务逻辑功能的划分使EJB的处理更加自如,缩短开发周期,提高开发质量。同时也提高了系统的可复用性。 在这样的模式下,HTTP请求从客户端传送控制器Servlet。Servlet更新模型,然后调用适合的视图绘制JSP程序,利用更新后的模型更新视图,使得执行内容与代码相分离,提高了系统的可复用性和易维护性。
运用Session Bean包装所有的Entity Bean,负责调用Entity Bean的方法,客户端只允许与Session Bean交互。这样可以缩短系统响应时间,减少资源利用。因此,系统地实现也将分为三个方面分别进行。 4.1 JSP+Servlet技术实现动态内容服务的表示层 在学校通知模块中用户在index.html页面中单击任意一项选项时,随之对应便产生相对应的动作事件,例如:点击“增加学生” ,程序就对应的调用"addStudent.jsp"来完成对学生信息的添加工作,其
他选项则与之相同。详细设计如图5:这是一种把JSP与java语句联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让java语句完成深层次的处理任务。在这
里,java语句充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的方法和对象,同时根据用户的动作决定把哪个JSP页传给请求者。在JSP页内没有处理逻辑,它仅负责检查原先由java创建的对
象或方法,从java中提取动态内容插入静态模板。这种方法清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。
4.2 StudentUtil.java类负责用户的请求处理 
   StudentUtil.java可以看成是客户程序的扩展,它只能一次由一个客户使用。StudentUtil.java可以共享基础数据库的数据,但是它并不表示那些数据。在系统学籍信息管理模块的设计实现中, StudentUt
il.java提供着所有时间的处理及其执行操作,例如添加学生信息:index.html—>addStudent.jsp—>addStudent_do.jsp—>StudentUtil.java—> Student.java—> index.html。
4.3 Student.java封装学生信息 

5  结论 
  系统实现时采用的MVC结构可用来构建灵活且可重用的用户界面。从体系结构角度来讲,Servlet适合于MVC设计方法,在处理如内容格式化和显示、基本请求处理、安全请求等等之类的用户交互工作时很有效。
Servlet又可充当控制器和视图。将JSP页面用作视图组件,JSP页面或纯servlet用作控制器组件。在EJB层开发中将业务逻辑划分为应用逻辑和商业逻辑两部分。采用会话bean+CMP的持久化解决方案来实现业务
逻辑。通过以上方法可以使所开发高校学生信息管理系统具有良好的可扩展性及灵活性。

参考文献:
  [1] 陈彦,沙莎。基于MVC架构的Web应用程序的分析与实现[J]。湖南科技学院学报 2006(11)
  [2] 倪宁。基于J2EE的MVC设计模式的Web应用开发的探讨[J]。科技创新导报,2008(19)
  [3] 彭浩。基于MVC架构的学生管理系统的设计与实现[J]。软件导刊,2008(06)
  [4] 王育坚,刘辰,祝洪涛。基于MVC模式的软件项目管理系统的设计与实现[J]。北京联合大学学报,2004(03)
  [5] 吉莉莉,吕继祥,黄勇留。MVC模式的学生信息管理系统设计与实践[J]。北京机械工业学院学报,2007(02)
 

翻译 朗读 复制 正在查询,请稍候…… 重试 朗读 复制 复制 朗读 复制 via 谷歌翻译(国内)

posted on 2020-05-08 18:48  不愧下学  阅读(2284)  评论(0)    收藏  举报

导航