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

网站开发确认表淘宝seo推广优化

网站开发确认表,淘宝seo推广优化,软件开发外包什么意思,基于开源框架的网站开发文章目录 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.dinnco.com/news/68935.html

相关文章:

  • 做淘宝代销哪个网站好网络推广怎么做好
  • 国家企业信用信息公示系统官网查询成都自然排名优化
  • 做淘宝必备的网站中国新闻网
  • 江苏省中医院网站建设搜索广告是什么
  • 购卡网页怎么制作互联网seo是什么意思
  • 网站建设开发工具一份完整的市场调查方案
  • 个人网站怎么做打赏营销网站建设流程
  • 网站后台管理系统使用手册aso优化教程
  • 我想建个网站会计培训班一般多少钱
  • 深圳住房和建设局网站统一社会代码新手运营从哪开始学
  • 网站的域名做网站排名服务热线
  • 如何看待政府网站群建设的重大意义最新一周新闻
  • 有口碑的顺德网站建设什么是seo搜索优化
  • 网站备案 机构需要什么手续拼多多怎么查商品排名
  • 评价一个网站设计项目的好坏网站制作厂家有哪些
  • 百度做网站联系电话百度搜索引擎工作原理
  • 做专业的精品套图网站百度竞价推广思路
  • 做网站的时候公共部分怎么分离阿里巴巴指数查询
  • wordpress主题语言包广州网站营销seo费用
  • 有哪些做批发的网站有哪些手续深圳推广不动产可视化查询
  • 动态网站建设的基本流程图百度推广怎么才能效果好
  • ps如何做网站横幅东莞整站优化
  • 免费文档网站展示型网站有哪些
  • 唐山网站开发产品推广方案范文500字
  • 手机wap网站模板 带后台优秀网页设计
  • 网站注册转化率软文营销网
  • 农业网站建设模板seo分析seo诊断
  • 32强世界排名网络优化推广公司哪家好
  • 口腔网站设计图图片搜索
  • 闸北区网站建设网页设软文发布平台哪个好