ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:298.74KB ,
资源ID:3997668      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3997668.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生信息管理系统的MVC架构分析.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、学生信息管理系统的MVC架构分析学生信息管理系统的MVC架构分析课程大作业专 业:统专软件班 级:1001班学 号:姓 名:孙东升指导教师姓名:张文胜报 告 日 期:2012年6月摘 要 目前,高校Web学生信息管理系统开发中多选用J2EE三层结构,在分析了某学院学生管理信息系统的实际需求的基础上,在中间应用层开发中,采用以EJB为中心、Servlets做控制、JSP负责呈现逻辑的MVC结构,提高了Web应用程序的可扩展性和可维护性。关键词 模型-视图-控制器;JSP;Servlets;EJB1 引言 目前Web学生信息管理系统都能支持多平台访问与控制,采用分布数据管理方式。学生可以通过网络实

2、现信息查询、选课、个人信息统计、下载学习资料、上传作业、报告乃至实现网络化学习。教师可以充分利用网络资源,对每一门课程建设一个网络节点,将课程要求、教学大纲、参考书目、电子教案、教学课件、习题指导等全部建设在该节点上,供学生使用,进一步实现网络化教学。教务人员可以通过网络数据库平台实现课程管理、教学管理、成绩管理、学籍管理的自动化,以及教学质量评估、人才评估的自动化。在开发高校Web学生信息管理系统中多选用J2EE三层结构,其中中间层采用MVC结构可使系统具有良好的可扩展性及灵活性。2 MVC概述21 MVC简介 MVC即“模型-视图-控制器”(Model-View-Control,MVC)。

3、MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。模型、视图、控制器三者之间的关系和各自的主要功能,如图1所示。MVC架构是一个复杂的架构。但是,我们已经总结出了很多可靠的设计模型,种设计模式结合在一起,使MVC架构的实现变得相对简单易行。Views可以看作一棵树,显然可以用Composite Pattern来实现。Views和Model

4、s之间的关系可以用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实现。22 MVC的产生Model-View-Control是软件

5、设计的典型结构,它最先在Smalltalk中应用,是1996年由Buschmann提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC架构作为开发Web应用的架构模式。MVC架构是一种架构,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要

6、开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。23 MVC设计思想MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。 231 视图视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,

7、以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个学生添加学籍信息的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。232 模型模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术

8、组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。比如将所添加的学生学籍信息保存到数据库,再从数据库获取所需要

9、查询的学生学籍信息。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 233 控制控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 图2 模型的变化-传播机制 模型、视图与控制器的分离,

10、使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。3 系统功能划分Web学生信息管理系统完成的主要功能有(如图3所示):浏览学生基本信息、添加学生信息、修改学生信息、删除学生信息、查询学生信息。 图3 系统功能模块划分4 系统中间层采用MVC设计模式系统Web应用部分采用基于J2EE三层架构,将表现层,中间层和数据层分开,将所有的商业逻辑和工作流放入服务器端。在中间应用层中,采用以EJB为中心、Ser

11、vlets做控制、JSP负责呈现逻辑的MVC结构(如图4所示)。图4 MVC体系结构 系统中间层中MVC结构把功能模块、显示模块和控制模块分离,使各部分之间协调工作、耦合性较小。EJB负责业务逻辑部分。通过对系统的分析,为了使系统开发与维护更具有可操作性,使系统的体系结构更清晰,将业务逻辑划分为应用逻辑和商业逻辑两部分,其中应用逻辑部分负责用户的请求,商业逻辑部分负责与数据库服务器的操作。应用逻辑以应用的需求条件调用商业逻辑,商业逻辑将相应结果再返回给应用逻辑。业务逻辑功能的划分使EJB的处理更加自如,缩短开发周期,提高开发质量。同时也提高了系统的可复用性。在这样的模式下,HTTP请求从客户端

12、传送控制器Servlet。Servlet更新模型,然后调用适合的视图绘制JSP程序,利用更新后的模型更新视图,使得执行内容与代码相分离,提高了系统的可复用性和易维护性。运用Session Bean包装所有的Entity Bean,负责调用Entity Bean的方法,客户端只允许与Session Bean交互。这样可以缩短系统响应时间,减少资源利用。因此,系统地实现也将分为三个方面分别进行。41 JSP+Servlet技术实现动态内容服务的表示层 在学校通知模块中用户在页面中单击任意一项选项时,随之对应便产生相对应的动作事件,例如:点击“增加学生” ,程序就对应的调用来完成对学生信息的添加工作

13、,其他选项则与之相同。详细设计如图5:这是一种把JSP与java语句联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让java语句完成深层次的处理任务。在这里,java语句充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的方法和对象,同时根据用户的动作决定把哪个JSP页传给请求者。在JSP页内没有处理逻辑,它仅负责检查原先由java创建的对象或方法,从java中提取动态内容插入静态模板。这种方法清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。图5 模块流程图42 类负责用户的请求处理可以看成是客户程序的扩展,它只能一

14、次由一个客户使用。可以共享基础数据库的数据,但是它并不表示那些数据。在系统学籍信息管理模块的设计实现中, 提供着所有时间的处理及其执行操作,例如添加学生信息: 。类的部分代码:/* * StudentUtil包含和Student表相关的操作 */public class StudentUtil private Connection con; repareStatement(insert into student values(,); (1, (); (2, (); (3, (); (4, (); (5, (); (); (); (); /* * 更改学生的信息,使用Student值对象作为参数

15、传给这个方法。 */ public void modifyStudent(Student student) throws Exception PreparedStatement pstmt = con .prepareStatement(update student set name=, sex=,phone=,birth= where sid=); (1, (); (2, (); (3, (); (4, (); (5, (); (); (); (); /* * 删除指定学号的学生 */ public void deleteStudent(String sid) throws Exceptio

16、n Statement stmt = (); (delete from student where sid= + sid + ); (); (); /* * 返回给定学号的学生的信息,返回的是值对象 */ public Student getStudentInfo(String sid) throws Exception Statement stmt = (); ResultSet rst = (select * from student where sid= + sid + ); Student student = null; while () student = new Student()

17、; (sid); (name); (sex); (phone); (birth); (); (); return student; public synchronized static getStringToDate(String date, String type) throws Exception if (type = null | () | (null) type = yyyyMMdd; jts = new fact = (date); return fact; 43 封装学生信息将信息封装,然后会传给数据库或者浏览器,进行存储或者显示。类的部分代码public class Studen

18、t implements Serializable /* 私有字段 */ private String sid; private String name; private int sex;/0:代表男 1:代表女 private String phone; private String birth; /* JavaBean属性访问方法 */ /* 共公方法 */ public String getBirth() return birth; public String getName() return name; public String getPhone() return phone; pu

19、blic int getSex() return sex; public String getSid() return sid; public void setBirth(String birth) = birth; public void setName(String name) = name; public void setPhone(String phone) = phone; public void setSex(int sex) = sex; public void setSid(String sid) = sid; 5 结论系统实现时采用的MVC结构可用来构建灵活且可重用的用户界面

20、。从体系结构角度来讲,Servlet适合于MVC设计方法,在处理如内容格式化和显示、基本请求处理、安全请求等等之类的用户交互工作时很有效。Servlet又可充当控制器和视图。将JSP页面用作视图组件,JSP页面或纯servlet用作控制器组件。在EJB层开发中将业务逻辑划分为应用逻辑和商业逻辑两部分。采用会话bean+CMP的持久化解决方案来实现业务逻辑。通过以上方法可以使所开发高校学生信息管理系统具有良好的可扩展性及灵活性。6 程序运行截图图6欢迎界面图7 增加信息界面图8 删除信息界面图9 更改信息界面图10 查看所有信息界面图11 输入学号查询信息界面参考文献 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)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1