当前位置: 首页 > news >正文

网站开发确认表北京首页关键词优化

网站开发确认表,北京首页关键词优化,温州做网站费用,星空无限传媒在线观看电视剧赘婿文章目录 JSP 和 ServletMVC 的演进1. JSP Model 12. JSP Model 23. MVC 的一般化4. MVC 的变体 总结 JSP 和 Servlet 如果你有使用 Java 作为主要语言开发网站的经历,那么你一定听过别人谈论 JSP 和 Servlet。其中,Servlet 指的是服务端的一种 Java 写…

文章目录

    • JSP 和 Servlet
    • MVC 的演进
      • 1. JSP Model 1
      • 2. JSP Model 2
      • 3. MVC 的一般化
      • 4. MVC 的变体
    • 总结

JSP 和 Servlet

  • 如果你有使用 Java 作为主要语言开发网站的经历,那么你一定听过别人谈论 JSP 和 Servlet。其中,Servlet 指的是服务端的一种 Java 写的组件,它可以接收和处理来自浏览器的请求,并生成结果数据,通常它会是 HTML、JSON 等常见格式,写入 HTTP 响应,返回给用户。
  • 至于 JSP,它的全称叫做 Java Server Pages,它允许静态的 HTML 页面插入一些类似于“<% %>”这样的标记(scriptlet),而在这样的标记中,还能以表达式或代码片段的方式,嵌入一些 Java 代码,在 Web 容器响应 HTTP 请求时,这些标记里的 Java 代码会得到执行,这些标记也会被替换成代码实际执行的结果,嵌入页面中一并返回。这样一来,原本静态的页面,就能动态执行代码,并将执行结果写入页面了。
  • 第一次运行时,系统会执行编译过程,并且这个过程只会执行一次:JSP 会处理而生成 Servlet 的 Java 代码,接着代码会被编译成字节码(class 文件),在 Java 虚拟机上运行。之后每次就只需要执行运行过程了,Servlet 能够接受 HTTP 请求,并返回 HTML 文本,最终以 HTTP 响应的方式返回浏览器。
    这个过程大致可以这样描述:
编译过程:JSP 页面 → Java 文件(Servlet)→ class 文件(Servlet)
运行过程:HTTP 请求 + class 文件(Servlet)→ HTML 文本

MVC 的演进

  • MVC 这种经典的架构模式,它早在 20 世纪 70 年代就被发明出来了,直到现在,互联网上的大多数网站,都是遵从 MVC 实现的,这足以见其旺盛的生命力。MVC 模式包含这样三层:
    • 控制器(Controller),恰如其名,主要负责请求的处理、校验和转发。
    • 视图(View),将内容数据以界面的方式呈现给用户,也捕获和响应用户的操作。
    • 模型(Model),数据和业务逻辑真正的集散地。
  • 你可能会想,这不够全面啊,这三层之间的交互和数据流动在哪里?别急,MVC 在历史上经历了多次演进,这三层,再加上用户,它们之间的交互模型,是逐渐变化的。哪怕在今天,不同的 MVC 框架的实现在这一点上也是有区别的。

1. JSP Model 1

  • JSP Model 1 是整个演化过程中最古老的一种,请求处理的整个过程,包括参数验证、数据访问、业务处理,到页面渲染(或者响应构造),全部都放在 JSP 页面里面完成。JSP 页面既当爹又当妈,静态页面和嵌入动态表达式的特性,使得它可以很好地容纳声明式代码;而 JSP 的 scriptlet,又完全支持多行 Java 代码的写入,因此它又可以很好地容纳命令式代码。
    在这里插入图片描述

2. JSP Model 2

  • 在 Model 1 中,你可以对 JSP 页面上的内容进行模块和职责的划分,但是由于它们都在一个页面上,物理层面上可以说是完全耦合在一起,因此模块化和单一职责无从谈起。和 Model 1 相比,Model 2 做了明显的改进。
    • JSP 只用来做一件事,那就是页面渲染,换言之,JSP 从全能先生转变成了单一职责的页面模板;
    • 引入 JavaBean 的概念,它将数据库访问等获取数据对象的行为封装了起来,成为业务数据的唯一来源;
    • 请求处理和派发的活交到纯 Servlet 手里,它成为了 MVC 的“大脑”,它知道创建哪个 JavaBean 准备好业务数据,也知道将请求引导到哪个 JSP 页面去做渲染。
      在这里插入图片描述

3. MVC 的一般化

  • JSP Model 2 已经具备了 MVC 的基本形态,但是,它却对技术栈有着明确限制——Servlet、JSP 和 JavaBean。今天我们见到的 MVC,已经和实现技术无关了,并且,在 MVC 三层大体职责确定的基础上,其中的交互和数据流动却是有许多不同的实现方式的。
  • 不同的 MVC 框架下实现的 MVC 架构不同,有时即便是同一个框架,不同的版本之间其 MVC 架构都有差异(比如 ASP.NET MVC),在这里我只介绍最典型的两种情况,如果你在学习的过程中见到其它类型,请不要惊讶,重要的是理解其中的原理。

第一种:
在这里插入图片描述

  • 上图是第一种典型情况,这种情况下,用户请求发送给 Controller,而 Controller 是大总管,需要主动调用 Model 层的接口去取得实际需要的数据对象,之后将数据对象发送给需要渲染的 View,View 渲染之后返回页面给用户。
  • 在这种情况下,Controller 往往会比较大,因为它要知道需要调用哪个 Model 的接口获取数据对象,还需要知道要把数据对象发送给哪个 View 去渲染;View 和 Model 都比较简单纯粹,它们都只需要被动地根据 Controller 的要求完成它们自己的任务就好了。

第二种:
在这里插入图片描述

  • 上图是第二种典型情况,请和第一种比较,注意到了区别没有?这种情况在更新操作中比较常见,Controller 调用 Model 的接口发起数据更新操作,接着就直接转向最终的 View 去了;View 会调用 Model 去取得经过 Controller 更新操作以后的最新对象,渲染并返回给用户。
  • 在这种情况下,Controller 相对就会比较简单,而这里写操作是由 Controller 发起的,读操作是由 View 发起的,二者的业务对象模型可以不相同,非常适合需要 CQRS(Command Query Responsibility Segregation,命令查询职责分离)的场景,我在 [第 08 讲] 中会进一步介绍 CQRS。

4. MVC 的变体

  • MVC 的故事还没完,当它的核心三层和它们的基本职责发生变化,这样的架构模式就不再是严格意义上的 MVC 了。这里我介绍两种 MVC 的变体:MVP 和 MVVM。
  • MVP 包含的三层为 Model、View 和 Presenter,它往往被用在用户的界面设计当中,和 MVC 比起来,Controller 被 Presenter 替代了。
    • Model 的职责没有太大的变化,依然是业务数据的唯一来源。
    • View 变成了纯粹的被动视图,它被动地响应用户的操作来触发事件,并将其转交给 Presenter;反过来,它的视图界面被动地由 Presenter 来发起更新。
    • Presenter 变成了 View 和 Model 之间的协调者(Middle-man),它是真正调度逻辑的持有者,会根据事件对 Model 进行状态更新,又在 Model 层发生改变时,相应地更新 View。
      在这里插入图片描述
  • MVVM 是在 MVP 的基础上,将职责最多的 Presenter 替换成了 ViewModel,它实际是一个数据对象的转换器,将从 Model 中取得的数据简化,转换为 View 可以识别的形式返回给 View。View 和 ViewModel 实行双向绑定,成为命运共同体,即 View 的变化会自动反馈到 ViewModel 中,反之亦然。
    在这里插入图片描述

总结

  • MVC 的几种形式和变体。
    • JSP Model 1:请求处理的整个过程,全部都耦合在 JSP 页面里面完成;
    • JSP Model 2:MVC 分别通过 JavaBean、JSP 和 Servlet 解耦成三层;
    • MVC 的常见形式一:数据由 Controller 调用 Model 来准备,并传递给 View 层;
    • MVC 的常见形式二:Controller 发起对数据的修改,在 View 中查询修改后的数据并展示,二者分别调用 Model;
    • MVP:Presenter 扮演协调者,对 Model 和 View 实施状态的更新;
    • MVVM:View 和 ViewModel 实行数据的双向绑定,以自动同步状态。

你知道的越多,你不知道的越多。

http://www.khdw.cn/news/62357.html

相关文章:

  • 大连网站建设 领超最好网站开发与设计
  • 做视频给网站到流量seo智能优化系统
  • 全国信用企业公示平台官网廊坊关键词优化排名
  • 淘宝店铺装网站导航怎么做2022年新闻大事
  • 鹤壁市城市建设投资有限公司网站在线搭建网站
  • 温州网站制作多少钱网页加速器
  • 茂名做网站dyiee网络推广员的工作内容和步骤
  • 云南能投基础设施投资开发建设有限公司网站产品推广思路
  • 留学网站建设seo模拟点击工具
  • 整容网站模板谷歌paypal官网入口
  • 网站被k怎么解决百度怎么收录网站
  • 关于强化政府网站建设工作方案网络营销渠道的特点
  • 上海市工程咨询行业协会优化推广
  • 毕设做网站怎么弄代码设计肇庆百度快照优化
  • 网页设计 网站建设 哪个好优化大师win10能用吗
  • 怎么建动态网站长沙做网站推广
  • 企业商城网站 .net做什么推广最赚钱
  • 移动网站优化排名免费收录链接网
  • 城市网站改版建设网站搜索引擎拓客
  • 北京公司网站建设报价什么是seo搜索引擎优化
  • wordpress 排名插件什么是淘宝seo
  • 网站开发主管工作内容青岛网站关键词排名优化
  • 医院做网站开发如何去除痘痘有效果
  • 在哪些网站可以做企业名称预审app拉新推广怎么做
  • 事件营销方案模板优化大师app
  • 电商网站建设实训步骤网上如何做广告
  • 一个企业的网站建设seo查询工具网站
  • 买了域名后做网站该怎么弄网站建设免费
  • 做网站每一步的是什么seo培训优化课程
  • 自己用wordpress建站口碑营销成功案例简短