zoukankan      html  css  js  c++  java
  • MVC模型概述(1)

    摘自(跟开涛学SpringMVC)

    1.标准MVC模型概述

          MVC模型(Model-View-Controller)是一种架构型的模式,本身不引入新功能,只是帮助我们将开发的结构组织的更加合理,使展示与模型分离、流程控制逻辑、业务逻辑调用与展示逻辑分离。

        Model提供要展示的数据。View负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。Controller接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。

        在标准的MVC中模型能主动推数据给视图进行更新(观察者设计模式,在模型上注册视图,当模型更新时自动更新视图)。

    2.Web MVC模型概述

        在Web MVC模式下,模型无法主动推数据给视图(无法主动更新用户界面),如果用户想要视图更新,需要再发送一次请求(即请求-响应模型)。

        第一步:Web浏览器使用HTTP请求向服务器传达用户的动作。(当HTTP请求到达服务器的时候,MVC模式开始运行。根据请求中携带的信息,比如URL和任何参数,Web应用程序开始工作。)

        第二步:服务器完成某些处理并且生成一个视图。(当它处理完用户请求时,可能创建或者更新一个模型,它将职责移交给视图。)

        第三步:使用HTTP响应把该视图传送回客户端。(视图使用HTTP响应把数据传输回客户端,比如使用HTML标记的页面,或者EXCEL文档的原始数据。)

       Web开发中的请求-响应模型。Web客户端发起请求,Web服务器接收、处理并产生响应。一般Web服务器是不能主动通知Web客户端更新内容。

    1. Web浏览器(如IE)发起请求,如访问http://www.kjnyjt.com。
    2. Web服务器(如Tomcat/Jetty)接收请求,处理请求,最后产生响应(一般为html)。
    3. web服务器处理完成后,返回内容给web客户端(web浏览器),客户端对接收的内容进行处理(如web浏览器将会对接收到的html内容加上css样式渲染以展示给客户)。

    3.主流 Web MVC框架

        好的Web框架把请求发送和处理区分开来,使用前端控制器Servlet(Front Controller Servlet)来实现发送HTTP请求行为。换句话说,分发器(dispatcher)决定需要哪个控制器来完成每个请求,而控制器完成实际的处理。主流Web MVC框架有:

    1. struts1
    2. struts2
    3. webwork
    4. jsf
    5. spring mvc

        Spring也是这样,用户发布的任何请求的主要入口是DispatcherServlet.该分发器Servlet必须在web.xml文件中声明。

     4.Web端开发发展历程

        CGI-->Servlet-->JSP-->Model1

        CGI-->Servlet-->JSP-->Model2(WebMVC)-->Front Controller + Page Controller

    1. Servlet一种JavaEE web组件技术,是一种在服务器端执行的web组件,用于接收web用户请求并处理,最后动态产生响应给用户。本质就是在java代码里面输出html流。最大的问题就是直接在Java代码里面输出Html。
    2. JSP(Java Server Page)一种在服务器端执行的web组件,是一种运行在标准的HTML页面中嵌入脚本语言(现在只支持Java)的模板页面技术。本质就是在html代码中嵌入java代码。SP本质还是Servlet,最终还是会被编译为Servlet,只不过比纯Servlet开发页面更简单、方便。
    3. Model2架构其实可以认为就是我们所说的Web MVC模型,只是控制器采用Servlet、模型采用JavaBean、视图采用JSP。
    4. 服务到工作者,也是Web MVC,只是责任更加明确。Front Controller + Application Controller + Page Controller + Context 前端控制器+应用控制器+页面控制器(也有称其为动作)+上下文
  • 相关阅读:
    oracle实例的内存(SGA和PGA)调整,优化数据库性能
    Redhat 安装perl模块
    三、Java基础---------关于继承、构造函数、静态代码块执行顺序示例讲解
    二、Java基础--02
    一、Java基础--01
    提醒用户收到短信
    手机屏幕更改
    查看手机信息和SIM卡信息
    还原和设置手机桌面背景
    wifi的开与关
  • 原文地址:https://www.cnblogs.com/kjitboy/p/5101895.html
Copyright © 2011-2022 走看看