模型视图控制器MVC模式学习报告憧憧

MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好

的开发和维护效率。在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分

包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;而控制器部分负责协调

模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。MVC模式的这三个部分的职责非常明确

,而且相互分离,因此每个部分都可以独立的改变而不影响其他部分,从而大大提高了应用的灵活性和重用性。

二、JavaWeb应用程序的主要组件

1.Servlet组件

Servlet运行于Web容器中,如Tomcat,它可以被Web容器动态加载,接收浏览器请求,调用其他组件处理请求,然后把处理结果返回。

当浏览器访问某个Servlet时,Web容器将会创建一个ServletRequest对象和ServletResponse对象,并且把用户的请求信息封装在

ServletRequest对象中。然后把这两个对象作为参数传输给Servlet的特定方法中。在该方法中处理请求,把处理结果封装在

ServletResponse对象中,返回给Web容器。最后Web容器把结果返回到浏览器去解析、显示。

2.JSP组件

JSP是一种动态网页技术。它把HTML页面中加入Java脚本,以及JSP标签构成JSP文件。当浏览器请求某个JSP页面时,Tomcat会把JSP页面翻译

为Java文件。然后将它编译为class文件,接着执行它,把生成的HTML页面返回到客户端显示。

3.JavaBean组件

JavaBean组件是一种符合特定规范的Java对象。在JavaBean组件中定义一系列的属性,并且每个属性都提供setter和getter方法,这样就可

以使用该组件存储一些中间数据。例如ServletRequest的请求信息、从数据库中查询出来的信息等。

4.EJB组件

EnterpriseJavaBean(EJB)组件是服务器端的Java组件。该组件基于标准分布式对象技术、CORBA和RMI等技术,用于实现企业级应用的额

业务逻辑。

5.XML语言

XML(ExtensibleMarkupLanguage)是一种用来创建自定义标记的标记语言。

6.Web服务器和应用服务器

Web服务器用来处理HTTP请求,并返回HTTP数据。它主要用来和浏览器进行交互,给用户提供服务。应用服务器可以被Web服务器调用,进行

业务逻辑的处理。它返回的数据被Web服务器组织为HTML格式,然后返回到浏览器去解析。

三、JavaWeb解决方案(开发方法)

JSP+JAVABEAN开发模式:

特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性。

缺点:页面将控制与显示集于一身。

结论:简单,适合小型项目的快速构建与运行。

JSP+Servlet+JavaBean开发模式:

特点:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设

计模式。

缺点:没有统一的开发框架导致开发周期长。

Struts开发方案:

特点:成熟的MVC开发框架。

构成:控制器:ActionServlet组件:Struts框架的中央控制器。

RequestProcessor组件:每个子模块都具有的请求处理器。

Action组件:业务代理,它将调用模型进行一项具体的业务逻辑处理。

视图:主要由JSP页面构成

还包括HTML文档;标准标签库(JSTL)和Struts标签库;

JavaScript脚本和CSS样式;

多媒体文件;

消息资源文件;

ActionForm类。

模式:通常在Structs中使用其他模型组建来实现业务逻辑。

如:JavaBean技术、EJB技术、Hibernates设计模式。

结论:对于一些大型的项目,Struts框架会提高开发效率,并对后期的维护有很大好处。

Spring开发方案:

特点:拥有IOC和AOP两种先进的技术为基础,完美的简化了企业级开发的复杂度,

是一个理想的Web程序框架。

构成:核心模块:实现了IOC模式,包含BeanFactory类负责对JavaBean的配置与管理。

上下文模块:继承BeanFactory类,

添加了事件处理、国际化、资源装载、透明装载以及数据校验等功能,

提供了框架式的Bean访问方式和很多企业级功能。

如:JNDI访问、支持EJB、远程调用、继承模板框架、E-mail和定时任务调度等。

AOP模块:提供了用标准Java语言编写的AOP框架,

使应用程序抛开EJB的复杂性,但拥有传统EJB的关键功能。

Web模块:建立在上下文模块基础之上,提供了Servlet监听器的Context和Web应用的上下文。

对现有的Web框架如:JSF、Tapestry、Struts等提供了集成。

O/R映射模块:提供了对现有ORM框架的支持如Hibernate。

SpringMVC框架:建立在核心模块之上,嫩够适应于多种多视图、模板技术、国际化和验证服务,

实现控制逻辑和业务逻辑清晰的分离。

Struts+HIbernate开发方案:

特点:利用Struts的MVC设计模式,与Hibernate持久化对象组成的开发方案。

Struts+Spring+Hibernate开发方案:

特点:Struts负责表示层,

Spring负责逻辑层的业务,

Hibernate持久层中数据库的操作,组成的开发方案。

四、常用的JavaWeb的MVC框架

1、框架不是一开始就有的。在javaweb开发的世界里,最开始就只有一个可用的servletAPI,你要开发web应用,就只能靠它了;

就单单这个简陋的API,开发起来,实在是捉襟见肘。于是在一个个前赴后继的'先烈'往这个坑里跳的同时,一部分人实在看不下去了,于是

便有了所谓的框架。其实这个时候的所谓框架就是个框框,帮你解决了一部分的工作,可是还是很难用,更别谈什么解耦、扩展,吧啦吧啦

滴;

2、MVC最开始对于Web开发者而言还不一定混的很熟,它也就是一个设计模式而已。突然某一天,某个大神发现这个东西用在Web开发上真是

物尽其用啊,很好地解耦了web请求过程中的数据、业务逻辑和信息展示,而且很好地提供了各个部分的扩展性。概括起来,就是说它妙不妙

,谁用谁知道啊!这个时候,MVC与Web开发的关系迅速进入蜜月期,作为一个web开发者,聊天的时候,你都不好意思说不知道MVC。于是,

各种web开发的MVC框架雨后春笋般的,往外冒...这个时期,struts是java世界中最被广大web开发者接受的大众情人了。

3、差不多与此同时,javaEE的世界还有另一个大众情人,那就是EJB了。不过她仗着大家对她的宠爱,越来越啰嗦、拖沓,养成了不少的坏

毛病。此时一个牛X哄哄的家伙看不爽了,捧出了另一个新人-spring。这个家伙的横空出世,让java世界的小伙伴们惊呆了,他是那样的清

者展现了她独有的,性感的一面-springMVC。

4、spring尽管光环无比闪耀,springMVC拥有对web开发者独有的吸引力,但她为了扩大自己的魅力,同时与struts等老的大众情人交好,

地基本是百花争放,百家争鸣了。

(1)Spring框架

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不

仅仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,绝大部分Java应用都可以从Spring中受益。

◆目的:解决企业应用开发的复杂性

◆功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能

◆范围:任何Java应用Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

Spring的初衷:

1、J2EE开始应该更加简单。

2、使用接口而不是使用类,是更好的编程习惯。Spring将使用接口的复杂度几乎降低到了零。

3、为JavaBean提供了一个更好的应用配置框架。

4、更多地强调面向对象的设计,而不是现行的技术如J2EE。

5、尽量减少不必要的异常捕捉。

6、使应用程序更加容易测试。

Spring的目标:

1、可以令人方便愉快的使用Spring。

2、应用程序代码并不依赖于SpringAPIs。

3、Spring不和现有的解决方案竞争,而是致力于将它们融合在一起。

Spring的基本组成:

1、最完善的轻量级核心框架。

2、通用的事务管理抽象层。

3、JDBC抽象层。

4、集成了Toplink,Hibernate,JDO,andiBATISSQLMaps。

5、AOP功能。

6、灵活的MVCWeb应用框架。

优点:

◆J2EE应该更加容易使用。

◆面向对象的设计比任何实现技术(比如J2EE)都重要。

◆面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)

◆代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。

◆JavaBean提供了应用程序配置的最好方法。

◆在Java中,已检查异常(Checkedexception)被过度使用。框架不应该迫使你捕获不能恢复的异常。

(2)Struts2

Struts2是Struts的下一代产品。是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。其全新的Struts2的体系结构与

Struts1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够

与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。因为Struts2和Struts1有着太大的变化,但是相对于WebWork,

Struts2只有很小的变化。Struts技术的发展概况经过六年多的发展,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠

,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。对于Struts1框架而言,由于与JSP/Servlet耦合非常紧密

,因而导致了一些严重的问题。首先,Struts1支持的表现层技术单一。由于Struts1出现的年代比较早,那个时候没有FreeMarker、

Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。其次,Struts1与ServletAPI的严重耦合,使应用难于测试。最后,

Struts1代码严重依赖于Struts1API,属于侵入性框架。从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、

Tapestry和SpringMVC等。这些框架由于出现的年代比较近,应用了最新的设计理念,同时也从Struts1中吸取了经验,克服了很多不足。这

些框架的出现也促进了Struts的发展。目前,Struts已经分化成了两个框架:第一个是在传统的Struts1的基础上,融合了另外的一个优秀的

Web框架WebWork的Struts2。Struts2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。Struts2为传统的Struts1注

入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。Struts1分化出来的另外一个框架是Shale。这个框架远远超出了

Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。Shale更像一个新的框架而不是Struts1的升级。本文下面的

内容将主要讨论Struts2。Struts2体系结构Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不

是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与ServletAPI分离。

(3)IBATIS

一站式

iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO),同时还提供一个利用这个框架开发的JPetStore实例。

相对Hibernate和ApacheOJB等“一站式”ORM解决方案而言,ibatis是一种“半自动化”的ORM实现。

ibatis框架

iBATIS提供了三种语言实现的版本,包括:Java、.NET以及Ruby。右图是iBATIS的架构图:

主流

所谓“半自动”,可能理解上有点生涩。纵观主流的ORM,无论Hibernate还是ApacheOJB,都对数据库结构提供了较为完整的封装,提供了从POJO到数据库表的全套映射机制。程序员往往只需定义好了POJO到数据库表的映射关系,即可通过Hibernate或者OJB提供的方法完成持久层操作。程序员甚至不需要对SQL的熟练掌握,Hibernate/OJB会根据制定的存储逻辑,自动生成对应的SQL并调用JDBC接口加以执行。

Java和·NET的持久层框架。它和Hibernate区别就在于自己要写完整sql语句。

THE END
1.英语学习需以兴趣为师,利用碎片时间,刻意练习并构建知识体系口语英语学习方法总结,第一步是找到你的兴趣点。无论是喜欢追剧、听歌、看小说,还是热爱旅行、交友,都可以成为你学习英语的动力。比如,通过看英文电影或剧集,不仅可以锻炼听力和口语,还能让你在轻松愉快的氛围中吸收地道的表达。同时,选择自己感兴趣的英文书籍阅读,不仅能提高阅读理解能力,还能丰富你的词汇量和文化背景知识https://www.163.com/dy/article/JJ9BL7D90556B42J.html
2.中外教育史复习重难点及学习方法指导由此可以看出,近现代史是广大考生备考中外教育史的核心,但同时也不要忘记大面积覆盖式的掌握,因为中外教育史出选择题的几率很大。中外教育史在分析论述题中一直没有超出比较的形式,因此,比较类题型仍然是考生准备的重点。 二、学习方法 1、构建框架知识结构https://yz.chsi.com.cn/kyzx/zyk/201012/20101231/156005625-1.html
3.演讲技巧与方法精华(15篇)短时间准备好三分钟演讲稿的方法 方法一:三分钟演讲稿框架——三段式 我认为,即兴演讲的内容是可以按照一定的框架模式来准备的,如此,在拟定三分钟演讲稿时,就会从容不迫。我把即兴演讲的框架模式总结为三段式,即三大部分: 第一部分:揭题。简单地对演讲题目内涵作出解释,或对其意义作用进行阐述。揭题要简洁明了,旗https://www.oh100.com/peixun/yanjiangjiqiao/478078.html
4.科学网—[转载]群视角下的多智能体强化学习方法综述早期的多智能体协作方法大多考虑集中式评估集中执行的思路,但完全集中的学习导致了适应大规模环境的模型过于复杂。Lowe等人[17]提出了基于DDPG的扩展算法MADDPG,该算法提出了极大降低学习成本的集中训练-分散执行的学习方式。这种集中训练-分散执行的框架也成为范式,大部分的方法都是建立在协作的基础上的。Palmer等人[18https://blog.sciencenet.cn/home.php?mod=space&uid=3472670&do=blog&id=1422698
5.框架式教学法[框架式教学法]一、框架式教学理论(Scaffolding Instruction)根据欧共体“远距离教育与训练项目”(DGXⅢ)的有关文件,支架式教学被定义为:'支架式教学应当为学习者建构对知识的理解提供一种概念框架 (conceptual framework)。这种框架中的概念是为发展学习者对问题的进一步理解所需要的,为此,事先要把复杂的学习任务加以分解,以便于把学http://www.360doc.com/content/22/0214/21/75591611_1017424826.shtml
6.学习教育学的方法教育学课程融会了教育的基本理论、教学原理、德育原理以及教育主体、教育途径等方面的内容。下面小编收集了一些关于学习教育学的方法,希望对你有帮助 学习教育学的方法 1 1.首先要熟悉本课程的多种媒体资源、作业与考核方式等,估计学习任务量。根据这些情况做好学习准备工作,制定学习计划。 https://m.yuwenmi.com/lizhi/jiaoyu/560706.html
7.深化课堂教学改革措施方案(通用10篇)如学科组活动,以学习先进理念、经验、优秀教学设计等资料为主,开展说课、评课、交流、讲座研讨活动;教研组活动,以问题研讨、教后交流等资料为主,开展有主题的组内研讨活动,使组内教师互相学习;备课组活动,以群众研究教材、群众备课为主,共同设计教学方法及学习方法,到达资源共享的目的。https://www.ruiwen.com/fangan/6035763.html
8.学习报告:一种基于多任务学习的人体活动分割和工程学风险评估方法式中,xt是网络预测的得分,yt是真实值得分,α和β是需要学习的权重, 是L1范数。 2.5 ERA的多任务方法 多任务学习(MTL)是对单个网络进行端到端训练以解决多个相关任务的流行框架,在这些网络中,一个共同的主干为负责学习特定任务的分支提供数据表示。在MTL中,通常有一个主要任务加上多个辅助任务来补充核心任务。 https://www.scholat.com/teamwork/showPostMessage.html?id=10295
9.重在BSP驱动包设计方法,HAL库的框架学习1、本教程重在BSP驱动包设计方法和HAL库的框架学习,并将HAL库里面的各种弯弯绕捋顺,从而方便我们的程序设计。 2、由于是基于HAL库的文档,所以不限制H7系列,其它F1,F2,F3,F4,F7等系列通用,只是H7系列的外设更加丰富和强劲些。 3、本次工程延续以往的代码风格,从底层BSP驱动包到应用代码,变量命名,文件命名,程序框https://cloud.tencent.com/developer/article/1478279
10.数据驱动的精准化学习评价机制与方法多场景数据采集为学习评价提供数据来源和量化手段支撑,多空间数据融合为学习评价提供统一数据标准,精准分析模型为学习评价提供数据驱动的学习分析与评价方法,分析结果可视化为学习评价提供反馈和应用服务。数据驱动的精准化学习评价框架,应以区块链技术为基础,融合人工智能、云计算、学习分析、情境感知等新兴技术,在多维时空https://www.fx361.com/page/2021/0226/7597189.shtml
11.在线教学平台学习者参与方式研究前沿领域综上所述,现有学生参与研究存在测量方法不理想、缺乏理论基础等问题,且国内较少有学者应用ICAP框架探讨学生参与。根据ICAP框架,在线教学平台中学习者的各类学习行为(如观看视频、完成作业、参与讨论、线上测试等),可以根据其潜在的认知过程被划分为不同的参与方式,从而实现对学习者学习行为、参与方式和学习成果等的描述https://www.eduwest.com/html/2021/qianyanlingyu_0908/610.html
12.课程建设讲座心得体会(通用17篇)孔子的启发式教学就是八各字:不“愤”不“启”,不“悱”不“发”。通过一系列的问题设计,让学生从问题中发现问题的本质,让他们探求、交流与合作得出一些结论,我想这样的教学方法比教师直接讲出来要强的多。同时这样做,也有利于激发学生学习的积极性,能够使他们积极主动地参与到教学中去,从而使学生经历知识的形成https://www.jy135.com/xindetihui/962357.html
13.五年级语文教学工作总结(精选14篇)俗话说,“磨刀不误砍柴功”,最重要的学习莫过于方法的学习。搞好了学习方法的指导,对提高学生学习成绩是有很大的好处的。我教学课文时候,会结合不同的文章体裁和内容,在教学不同的知识点时,都结合学生学习的情况来渗透学习方法的指导。例如预习课文时,要求学生“读—画—思—写—疑”的五步预习方法,意思是“默读http://zongjie.yjbys.com/zongjie/gerenzongjie/959342.html
14.机电工程学院压阻式传感器的转换原理与使用方法。 温度检测系统 热电阻式传感器; 热电偶式传感器。 教学方法设计 项目教学法:任务发布 任务分析 资料收集整理 任务实施 任务总结 任务拓展 教学条件 1. 教学媒体教学媒体 电梯模拟教学一体化多媒体教室 内设小组学习工位、透明模拟电梯、实训实物电梯、因特网、相应教学软件、教学多媒https://www.gzjszy.cn/site5/n312/20231010/i681.html
15.《创业教育与就业指导》教学大纲重点:创业思维框架。 难点:大学生创业创新的设计。 第三节 创业行动学习与学习方案 基本要求:了解创业的学习方法,在创业案例学习与创业亲验式学习的基础上,掌握创业行动学习这一新型方法,学习其基本原理与方法,编制创业基础教程的行动学习方案。 重点:创业行动学习方法。 https://cy.qlu.edu.cn/2015/1208/c3614a53186/page.htm
16.用字母表示数评课稿范文(通用18篇)数学课创设情境不仅是提高教学效率的手段,也是教学的有机组成因素,具有引导学生经历学习过程,培养学生数学素养的重要作用。沈老师在课堂上创设了学生喜闻乐见的寻找密码游戏。通过观察、猜测出字母代表的数字,从而引出课题。 二、渗透数学思想方法 说数学是一门基础学科不但是因为数学是基础科学的基础,更是因为数学的思想http://mip.gongwen.cnrencai.com/xinwengao/369676.html