• 课程作业07 MVC框架


    MVC简介

    • MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。
    • MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式
    • MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
    • 最典型的MVC就是JSP + servlet + javabean的模式。
    • MVC模式的意思是,软件可以分成三个部分
    • 如下图:

    MVC实现的两种分离

    View与Model的分离:

    能够为相同的Model开发不同的View进行展示;分离了可视与不可视的组件,能够对Model进行独立的测试(只有View到Model的单向引用)。

    View与Controller的分离此处的分离,使得能够对Controller进行独立的测试(只有Controller到View的单向引用)

    Mvc各部分之间的关系:

    1. View 传送指令到 Controller
    1. Controller 完成业务逻辑后,要求 Model 改变状态
    1. Model 将新的数据发送到 View,用户得到反馈

    如图:

     

    Mvc详细请求流程

    c控制着model模型与view(jsp)视图的之间的通信,然后把model与view的耦合度解开。

    如下图:

     

    Mvc的特点:

    • 优点

    1、耦合性低

    运用MVC的应用程序的三个部件是相互独立,改变其中一个不会影响其它两个,所以依据这种设计思想能构造良好的松耦合的构件

    2、重用性高

    MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码,因为多个视图能共享一个模型;

    3、可维护性高

    分离视图层和业务逻辑层也使得web应用更易于维护和修改

    • 缺点

    1、没有明确的定义

    完全理解MVC并不是很容易,每个构件在使用之前都需要经过彻底的测试

    2、不适合小型,中等规模的应用程序

    花费大量时间将MVC应用到规模并不是很大的应用程序通常会得不偿失

    3、视图与控制器间的过于紧密的连接

    视图与控制器是相互分离,但却是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。

    Java Web应用程序的主要组件

    • Servlet组件
    • Servlet运行于Web容器中,如Tomcat。
    • .JSP组件
    • JSP是一种动态网页技术。
    • JavaBean组件
    • JavaBean组件是一种符合特定规范的Java对象。
    • web容器通过ServletRequest对象和ServletResponse对象与方法进行信息传递,再将返回的信息给浏览器解析
    • 浏览器把jsp翻译成java文件进行编译,生产HTML。
    • 使用该组件存储一些中间数据。例如ServletRequest的请求信息、从数据库中查询出来的信息

    Java Web解决方案

    • JSP+Servlet+JavaBean开发模式:JSP作为视图,来表现页面;Servlet作为控制器,控制程序的流程并调用业务进行处理;JavaBean封装了业务逻辑。遵循了MVC设计模式。
    • Struts+Spring+Hibernate开发方案:
    • Struts负责表示层,
    • Spring负责逻辑层的业务,
    • Hibernate持久层中数据库的操作,
    • 组成的开发方案。

    常用的Java Web 的MVC框架

    • Struts是一个基于Sun J2EE平台的MVC框架,主要是采Servlet和JSP技术来实现的。
    • Struts把Servlet、JSP、自定义标签和信息(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间。

    Spring MVC

    Spring Web MVC框架( 简称Spring MVC)是一个丰富的模型视图控制Web框架。它通过使用 Dispatcher Servlet发布请求处理,他使用可配置的处理程序映射,视图解析和主题解决方案。

  • 相关阅读:
    CSS开发中常用技巧总结
    Linq的分组功能
    深入理解 C# 协变和逆变
    js数组删除数组元素!
    关于 Photoshop 蒙版和 Alpha 通道
    jQuery数组处理详解(含实例演示)
    多媒体指令(灰度像素最大值)
    多媒体指令(图像均值模糊)
    matlab练习程序(立体相关块匹配)
    matlab练习程序(steerable filters)
  • 原文地址:https://www.cnblogs.com/chenpengmeng/p/6755059.html
Copyright © 2020-2023  润新知