MVC是三个单词的缩写,这三个单词分别为:模型、视图和控制。

使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如Windows系统资源管理器文件夹内容的显示方式,下面两张图中左边为详细信息显示方式,右边为中等图标显示方式,文件的内容并没有改变,改变的是显示的方式。不管用户使用何种类型的显示方式,文件的内容并没有改变,达到M和V分离的目的。

MVC架构是交互式应用中广泛使用的架构。它将对象按功能进行划分,尽可能地最小化对象之间的耦合度。MVC架构与传统的应用程序架构—输入,处理,输出给用户接口的模型相对应。它们也与基于域的多层企业级WEB应用相对应。

MVC架构将应用分为三层—模型,视图,控制,并减弱它们各自的责任。每一层处理特定的任务并对其它层有特殊的责任。

模型存储业务数据和控制访问与修改业务数据的业务逻辑或操作。表现上看,模型与软件中的函数功能有些相似。当模型改变时会通知视图并为视图提供了查询模型状态的能力。它也为控制器提供了访问封装在模型中的应用功能函数的能力。

视图展示模型中的内容。它访问模型中的数据并完成数据的显示工作。当模型改变时它会即时更新数据的展示。视图也完成将用户的输入传递到控制器的功能。

控制器定义了应用程序的行为。它分派用户的请求然后调用相应的视图来展示。它解析用户的输入然后与模型中完成相应功能的事件处理相匹配。在标准的GUI客户端应用中,用户输入包括点击按钮和选择菜单。在WEB应用中,它们则是WEB层中的HTTP GET和POST请求。控制器选择相应的视图来显示是基于用户与模型相互交互的结果。一个典型的应用是所有相关的功能由一个控制器来处理。一些应用针对不同的客户端类型采用不同的控制器来处理,因为视图的交互与选择可能因客户端类型的不同而有所不同。

最典型的MVC就是jsp+servlet+javabean模式。

JavaBean作为模型,既可以作为数据模型来封装业务数据,又可以作为业务逻辑模型来包含应用的业务操作。其中,数据模型用来存储或传递业务数据,而业务逻辑模型接收到控制器传过来的模型更新请求后,执行特定的业务逻辑处理,然后返回相应的执行结果。

JSP作为表现层,负责提供页面为用户展示数据,提供相应的表单(Form)来用于用户的请求,并在适当的时候(点击按钮)向控制器发出请求来请求模型进行更新。

Serlvet作为控制器,用来接收用户提交的请求,然后获取请求中的数据,将之转换为业务模型需要的数据模型,然后调用业务模型相应的业务方法进行更新,同时根据业务执行结果来选择要返回的视图。

MVC举例二:

JSP其实就是servlet。是从Servlet继承而来。只不过它在Servlet当中又添加/修改了一些方法,作了新的封装。

JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。  由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。  从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。

servlet(其实之前需要在xml配置文件,现在不需要了,更方便了)

servlet需要容器的支持才能运行,如Tomcat、jetty.
达到servlet的请求,需要ServletRequest对象和ServletResponse对象去处理。

现在JSP用来做页面视图的展现,servlet用于逻辑控制。在MVC架构模式中,就 JSP 和 Servlet而言,C通常由 Servlet充当,V通常由 JSP来充当。

servlet在服务器中的运行:1.加载到内存->2.初始化(init()) - > 3.调用(service(){doGet/doPost}) - 4.销毁(destroy())。其中(1)(2)(4)在 Servlet的整个生命周期中只会被执行一次,

servlet是后台处理程序,负责接收客户端发送的信息,处理并返回相应的信息。
jsp在现在的环境下,作用就如同一个显示器+键盘+鼠标,负责显示、输入数据。
Java Web项目运行的流程大概是这样的客户端jsp页面发送请求-->servlet接收-->其他层次处理数据(biz、dao等业务处理,访问数据库等)-->servlet将处理后的结果返到客户端jsp-->jsp负责显示处理后的数据。
搞清楚这个流程之后,servlet和jsp的作用就一目了然了。
JAVAEE常说的三大框架就是SSH:struts2+spring+hibernate;
其中structs是显示层的框架,为数据传入、数据返回客户端提供支持。
hibernate是数据层的框架,负责与数据库连接,简化JDBC开发。
spring则是一个轻量级框架,他提供很多功能,能对上面的框架提供更好的支持,同时解决耦合、业务变更等其他问题。

(jsp+servlet+javabean )MVC架构的更多相关文章

  1. jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL

     一.JavaBean概念(非常重要) 1.JavaBean就是遵循一定书写规范的Java类型(开发中:封装数据) a.必须有默认的构造方法,类必须是public的   public class  ...

  2. MVC jsp+servlet+javabean 连接Mysql数据库測试demo

    本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...

  3. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  4. Jsp+Servlet+JavaBean经典MVC模式理解

    MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...

  5. JSP中使用的模式——JSP+Servlet+JavaBean

    上一篇博文写到模式一:JSP+JavaBean 链接地址:http://wxmimperio.coding.io/?p=155 JSP中两种模式的总结 链接地址:http://wxmimperio.c ...

  6. JSP+Servlet+javabean+oracle实现页面多条件模糊查询

    之前写过一篇JSP+Servlet+javabean+mysql实现页面多条件模糊查询 使用的是mysql进行的分页查询,mysql用limit控制,而oracle则是用rownum,今天第一次写or ...

  7. jsp+servlet+javabean开发web项目

    一.介绍: 项目依赖包:jdbc数据库包 jsp+servlet+javabean开发web项目,是最接近web项目原生运行原理的. 但是,jsp内容混乱,项目结构复杂时,代码会混乱 二.运行原理: ...

  8. JSP+Servlet+javabean+mysql实现页面多条件模糊查询

    需求: 一般列表页上面会有一个查询框,有各种的查询条件组合,一般都采用模糊查询方式 ,以下以自己做的实例来说明一下实现方法: 需要实现的界面原型:要满足条件: 1.单选分类,点GO按扭 2.单独输入标 ...

  9. java_web—JSP+Servlet+JavaBean

    JSP -> Java Server Page  后端 jsp -> JavaScript  前端 JSP语法 1.JSP插入Java代码 三种形式: (1)<%!  %> ( ...

随机推荐

  1. Linux 系统监控工具 atop

    系统监控是运维工作中重要的一环,本文以 atop 工具为例来介绍系统的重要监控项. atop可以使用yum或apt包管理器进行安装.atop man page 中详细说明了 atop 中各监控项含义及 ...

  2. 【C++】随机数引擎

    rand() 基本:使用随机数时,经常见到的是C标准库提供的函数rand(),这个函数会生成一个0到RAND_MAX之间的一个整形数: 分布:为了得到一个给定范围内的随机数,通常会对生成的随机数取余: ...

  3. css 关于自适应页面

    //不能使用绝对宽度的布局 不能使用具有绝对宽度的元素 media_type 设备类型说明 all 所有设备 aural 听觉设备 braille 点字触觉设备 handled 便携设备,如手机.平板 ...

  4. 基于MR实现ngram语言模型

    在大数据的今天,世界上任何一台单机都无法处理大数据,无论cpu的计算能力或者内存的容量.必须采用分布式来实现多台单机的资源整合,来进行任务的处理,包括离线的批处理和在线的实时处理. 鉴于上次开会讲了语 ...

  5. Windows下无法颜色转义

    只需在最前面添加 import os os.system("") 参考文献:https://blog.csdn.net/ytzlln/article/details/8194524 ...

  6. [jQuery]顶级对象$(二)

    $ 是 jQuery 的缩写 <script> # 方法1. $ 是jQuery的别称 弹出提示 $(function () { alert(11) ); # 方法2 jQuery(fun ...

  7. GNU make doc - 函数总结

    $(value variable) 使用variable未展开状态的值 FOO = $(PATH) all: $(warning $(FOO)) $(warning $(value FOO)) #ou ...

  8. C++ 解决列车重排问题

    问题节选自<<数据结构.算法与应用(C++语言描述)>>, 思路与代码为原创, 如有疏漏及问题欢迎指正 问题描述: 一辆列车有n节车厢, 车厢排列乱序(如: 284657139 ...

  9. Centos 7 使用(Service iptables stop/start)关闭/打开防火墙 Failed to stop iptables.service: Unit iptables.service not loaded.

    背景: 测试部署NetCore 项目到linux 系统时,窗口显示项目部署成功:但是本机无法访问(linux 在虚拟机上[ centos 7.6] );  如下图↓ 能够相互ping  通,(Xshe ...

  10. 802.11 MAC基础

    MAC(媒介访问控制层)位于各式物理层之上,控制数据的传输.它负责核心成帧操作以及与有线骨干网络之间的交互. 802.11采用载波监听多路访问/冲突避免(CSMA/CA)机制来控制对传输媒介的访问. ...