浅析JavaWeb开发模式:Model1和Model2
一、前言
在学习JavaWeb的过程中,大家都会接触到Model1和Model2,历史的发展过程是Model1 → Model2。那么它们之间有何相同之处和不同之处呢?
二、Model1
Model1使用了两种技术:JSP+JavaBean。


在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接受处理客户端请求,对请求处理后直接做出响应。用少量的JavaBean来处理数据库连接、数据库访问等操作。
优点:架构简单,比较适合小型项目开发。
缺点:从工程化角度看,它的局限性非常明显;JSP的职责不单一,身兼View和Controller两种角色,将控制逻辑职和表现逻辑混杂在一起,职责过重,代码的可复用性低,不便于维护。
三、Model2
Model2使用了三种技术:JSP+Servlet+JavaBean。
1、JSP的主要作用是显示页面。
2、Servlet作为前端控制器,负责接收客户端发送的请求。它的主要作用是取得表单参数、调用业务逻辑、转向页面(转发或重定向)。
3、JavaBean的主要作用是负责处理业务逻辑、访问数据库、保存数据状态(也就是我们常说的B层、D层、实体层的集合体)。


实际上,Model2就是MVC的一个成功应用。模型(JavaBean)、视图(JSP)、控制器(Servlet)。
正如上图所示,Model2下的JSP不在承担控制器的责任,它仅仅是表现层角色,仅仅用于将结果呈现给用户。浏览器发来的请求与Servlet(控制器)交互,而Servlet负责与后台的JavaBean通信。在Model2模型下,模型(Model)由JavaBean充当,视图(View)有JSP页面充当,而控制器(Controller)则由Servlet充当。
优点:职责清晰,各司其职,互不干扰,有利于组件的重用,适合大型的Web项目。
缺点:不适合小型项目、对开发人员要求更高。
(注:图中所说的业务逻辑实际上是广义的说法,可以认为就是JavaBean)
四、参考文献
SpringMVC中文官网:http://springmvc.cn/
浅析JavaWeb开发模式:Model1和Model2的更多相关文章
- 浅析Java开发模式—Model1、Model2和三层
"解耦"的思想一直是我们倡导的,但在实际项目中怎样去做?这是需要我们去好好思考的.下面以Model1.Model2.三层为切入点,对比下去了解解耦的思想. Model1 使用JSP ...
- 13jsp、javaWeb开发模式
13jsp.javaWeb开发模式-2018/07/25 1.jsp jsp实际上就是servlet.jsp=html+java,为用户提供动态内容 不适合编写Java逻辑 2.JSP原理 翻译(生成 ...
- JavaWeb学习笔记(十一)—— JavaWeb开发模式【转】
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- JavaWeb chapter10 JavaWeb开发模式
1. 开发模式 (1)开发模式1:JSP+JavaBean (2)开发模式2:Servlet+JSP+JavaBean (MVC) 2.JavaBean 本质上是一个普通的Java类:需要遵循一定的 ...
- javaWeb开发模式
1.发展历程 2.模式分析 JSP+JavaBean模式适合开发业务逻辑不太复杂的web服务程序.这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据(JSP编写业务逻辑 ...
- JavaWeb开发之详解Servlet及Servlet容器
自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...
- 【JAVAWEB学习笔记】18_el&jstl&javaee的开发模式
一.EL技术 1.EL 表达式概述 EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写. 2.EL从域中取出数据 ...
- 2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例
JavaWeb-----第七章 JavaWeb常用开发模式与案例 (1)单纯的JSP页面开发模式 通过在JSP中的脚本标记,直接在JSP页面中实现各种功能.称为"单纯的JSP页面编程模式&q ...
- Java Web开发技术教程入门-Model1和Model2
今天我们聊聊JSP开发中的Model1和Model2. Model1采用了JSP+JavaBean技术开发Web应用.其中,JSP实现页面显示,业务逻辑和流程控制,数据处理由JavaBean完成.在J ...
随机推荐
- Comparator比较器
Comparator比较器 简介 为什么写? comparator 是javase中的接口,位于java.util包下,该接口抽象度极高,有必要掌握该接口的使用 大多数文章告诉大家comparator ...
- P4771 八百标兵奔北坡
观察题目中关于北边的定义,发现是以当前点为顶点,向上的倒三角(自己想想为什么). 然后就可以直接 DP 了,令 \(f_{i,j}\) 表示点 \(\left(i,j\right)\) 的答案. \[ ...
- 16_Android的数据存储_ SharedPreference、XML和JSON
1. Android读写首选项 1.1 SharedPreferences SharedPreferences 是一种轻型的数据存储方式,它的本质是基于XML文件存储Key-Value键值对数据,通常 ...
- Spring 源码学习 04:初始化容器与 DefaultListableBeanFactory
前言 在前一篇文章:创建 IoC 容器的几种方式中,介绍了四种方式,这里以 AnnotationConfigApplicationContext 为例,跟进代码,看看 IoC 的启动流程. 入口 从 ...
- fist-第三天冲刺随笔
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- 【NOIP2015模拟11.5】JZOJ8月5日提高组T1 俄罗斯套娃
[NOIP2015模拟11.5]JZOJ8月5日提高组T1 俄罗斯套娃 题目 题解 题意就是说 将1~\(n\)排列,问有多少种方案使得序列的逆序对个数小于\(k\) 很容易想到DP 设\(f[i][ ...
- 解决 Zuul 中 OAuth2 报 unauthorized 错误
问题描述 微服务中使用 OAuth2 鉴权,直接访问正常,通过 Zuul 访问报错: { "error": "unauthorized", "erro ...
- html基础标签用法
head title 行级双 网页标题标签 meta 单 存放网页重要信息,字符集,搜索索引,简介等(不显示) a 标签行内双标签 href="跳转路径", (JavaScript ...
- 老猿Python重难点知识博文汇总
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 除了相关教程外,老猿在学习过程中还写了大量的学习随笔,内容比较杂,文章内容也参差不齐,为了方便,老猿 ...
- 从零开始的sql注入学习(挖坑不填)
首先,本人是小白,这篇文章也只是总结了一下大佬们的sql注入方法,要是有错,请各位大佬指出,以便学习. 虽然我是菜鸡,但是太过基础的sql注入问题也就不再重复的解释了.直接从常用的说起. 实战中常用的 ...