电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

MVC思想及SpringMVC设计理念

25页
  • 卖家[上传人]:ji****81
  • 文档编号:270075024
  • 上传时间:2022-03-24
  • 文档格式:DOCX
  • 文档大小:766.92KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、 MVC思想及SpringMVC设计理念 1:什么是MVC MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。把众多的业务逻辑聚集到一个部件里面,当然这种比较官方的解释是不能让我们足够清晰的理解什么是MVC的。用通俗的话来讲,MVC的理念就是把数据处理、数据展示(界面)和程序/用户的交互三者分离开的一种编程模式。 注意!MVC不是设计模式! MVC框架模式是一种复合模式,MVC的三个核心部件分别是 1:Model(模型):所有的用户数据、状态以及程序逻辑,独立于视图和控制器 2:View(视图):呈现模型,类似于Web程序中的界面,视图会从模型中拿到需要展现的状态以及数据,对于相同的数据可以有多种不同的显示形式(视图) 3:Controller(控制器):负责获取用户的输入信息,进行解析并反馈给模型,通常情况下一个视图具有一个控制器1.2:为什么要使用MVC 程序通过将M(Model)和V(View)的代码分离,实现了前后端代码的分离,会带来几个好

      2、处 1:可以使同一个程序使用不同的表现形式,如果控制器反馈给模型的数据发生了变化,那么模型将及时通知有关的视图,视图会对应的刷新自己所展现的内容 2:因为模型是独立于视图的,所以模型可复用,模型可以独立的移植到别的地方继续使用 3:前后端的代码分离,使项目开发的分工更加明确,程序的测试更加简便,提高开发效率 下图是MVC的各个组件之间的关系以及功能图 其实控制器的功能类似于一个中转站,会决定调用那个模型去处理用户请求以及调用哪个视图去呈现给用户1.3:JavaWeb中MVC模式的应用 在JavaWeb程序中,MVC框架模式是经常用到的,举一个Web程序的结构可以更好的理解MVC的理念 V:View视图,Web程序中指用户可以看到的并可以与之进行数据交互的界面,比如一个Html网页界面,或者某些客户端的界面,在前面讲过,MVC可以为程序处理很多不同的视图,用户在视图中进行输出数据以及一系列操作,注意:视图中不会发生数据的处理操作。 M:Model模型:进行所有数据的处理工作,模型返回的数据是中立的,和数据格式无关,一个模型可以为多个视图来提供数据,所以模型的代码重复性比较低 C:Cont

      3、roller控制器:负责接受用户的输入,并且调用模型和视图去完成用户的需求,控制器不会输出也不会做出任何处理,只会接受请求并调用模型构件去处理用户的请求,然后在确定用哪个视图去显示返回的数据1.4:Web程序中MVC模式的优点 耦合性低:视图(页面)和业务层(数据处理)分离,一个应用的业务流程或者业务规则的改变只需要改动MVC中的模型即可,不会影响到控制器与视图 部署快,成本低:MVC使开发和维护用户接口的技术含量降低。使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上 可维护性高:分离视图层和业务逻辑层也使得WEB应用更易于维护和修改1.5:Web程序中MVC模式的缺点 调试困难:因为模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难,每个构件在使用之前都需要经过彻底的测试 不适合小型,中等规模的应用程序:在一个中小型的应用程序中,强制性的使用MVC进行开发,往往会花费大量时间,并且不能体现MVC的优势,同时会使开发变得繁琐 增加系统结构和实现的复杂性:对于简单的界面,严格遵

      4、循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率 视图与控制器间的过于紧密的连接并且降低了视图对模型数据的访问:视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能2、Spring MVC框架 现在MVC框架已经有很多了,Struts、Webwork,新兴的MVC框架有Spring MVC、JSF等等,本文主要介绍Spring MVC的设计理念 Struts1.0是基于webwork的MVC框架,里面有很多类的继承关系,耦合性太高,之后推出了struts2.0,但是这个MVC框架对于视图的解析还是存在一些小的不妥之处,所以产生了Spring MVC2.1、Spring MVC简介及特点 Spring MVC采用了松散耦合的可插拔组件结构,比其他的MVC框架更具有灵活性和扩展性,Spring MVC通过使用一套注解,使一个Java类成为前端控制器(Contr

      5、oller),不需要实现任何接口,同时,Spring MVC支持RES形式的URL请求,除此之外,Spring MVC在在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。 Spring MVC围绕DispatcherServlet(前端控制器)为中心展开,DispatcherServlet(前端控制器)是Spring MVC的中枢,和MVC的思想一样,它负责从视图获取用户请求并且分派给相应的处理器处理,并决定用哪个视图去把数据呈现给给用户Spring MVC特点 1:让我们能非常简单的设计出干净的Web层和薄薄的Web层; 2:进行更简洁的Web层的开发; 3:天生与Spring框架集成(如IoC容器、AOP等); 4:提供强大的约定大于配置的契约式编程支持; 5:能简单的进行Web层的单元测试; 6:支持灵活的URL到页面控制器的映射; 7:非常容易与其它视图技术集成,如Velocity、FreeMarker等,因为模型数据不放在特定的API里,而是放在一 个Model里(Map数据结构实现,因此很容易被其他框架使用); 8:非常灵活的数据验证、格式化和数据绑定机制

      6、,能使用任何对象进行数据绑定,不必实现特定框架的API; 9:提供一套强大的JSP标签库,简化JSP开发; 10:支持灵活的本地化、主题等解析; 11:更加简单的异常处理; 12:对静态资源的支持; 支持Restful风格。2.2:Spring MVC请求响应 SpringMVC把视图渲染、请求处理、模型创建分离了,遵循了MVC框架模式的思想 SpringMVC的请求相应要经过七个阶段,蓝色的方框是Spring框架已经实现好的,第二阶段到第六阶段对应着Spring MVC中的一些核心理念,分别是前端控制器、处理映射器、控制器(处理器)、视图解析器、视图。要注意的是:前端控制器和控制器不是一个东西,前端控制器负责任务分发,控制器是模型的一部分,负责业务和数据的处理 SpringMVC核心控制类的请求流程SpringMVC的请求相应步骤如下1、用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获2、DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该

      7、Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回3、DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(.)方法)4、提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作 HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息 1.数据转换:对请求消息进行数据转换。如String转换成Integer、Double等 2.数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等 3.数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中5、Handler执行完成后,向DispatcherServlet返回一个ModelAndView对象6、根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet7、ViewResolver 结合Model和View,来渲染视图8、将渲染结果返回给客户端3、SpringMVC 项目简单搭建 搭建一个简单的Spring MVC项目,我们只需要有一个Web服务器(tomcat)和一个IDE就可以了,我选择的是tomcat8.5+IDEA,下图是项目的结构1、首先创建一个Maven项目,添加pom依赖 4.0.0 com.bittech springmvc-case 1.0.0 war org.springframework spring-framework-bom 4.3.9.RELEASE/

      《MVC思想及SpringMVC设计理念》由会员ji****81分享,可在线阅读,更多相关《MVC思想及SpringMVC设计理念》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.