前言:这两天总结了一些Servlet和JSP里面的知识,写了几篇博客,果然有种“温故而知新”的感觉,学完这些,继续前行,开始整合框架里的知识,框架虽好,可底层原理该掌握的也得掌握,防止以后做项目的时候再掉坑,坑多了,也是很烦人的,为了以后工作的时候不加班,那就在大学暑假加加班吧。

Web开发模式背景

Sun公司推出JSP技术后,同时也推荐了两种Web应用程序       的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式,这两种模式的学习刚好和之前写过的博客相对应,真是无巧不成书(其实是我故意的,皮一下,嘿嘿)。

Web开发模式解答

JSP+JavaBean模式

JSP+JavaBean适合开发业务逻辑不太复杂的Web程序,这种模式下JavaBean用来封装和处理数据,JSP主要是处理用户的请求,用来显示数据。

Servlet+JSP+JavaBean模式

Servlet+JSP+JavaBean模式被称为(MVC)模式,这种模式适合开发复杂的Web程序,这种模式下Servlet主要用来处理用户请求,JSP负责数据显示,JavaBean负责数据封装和处理,这种模式程序各个模块之间的层次非常清晰,Web开发推荐采用这种模式。

Web开发模式分析

其实Sun公司最早推出的一个动态的网页开发技术是Servlet,但是Servlet本身是有一些缺陷的,它的缺陷主要有两个:

  • l  Servlet都需要进行相应的配置
  • l  Servlet在显示HTML元素的时候很复杂

考虑到这些,Sun公司又推出了一个动态的网页开发技术——JSP,JSP比起Servlet确实挺好的,它本身不需要配置,而且在显示一些页面元素的时候特别简单,但是JSP也有缺陷,JSP在封装和处理数据的时候很麻烦,这个时候人们就想到了Java类,         因为在JSP里面写的代码很难有复用的,但我们能在Java类里面定义方法,定义其他的一些东西,这个时候我们可以在JSP里调用这个类里面的方法,这样代码会有很强的复用性,这个时候人们就想到了JavaBean+JSP这种模式,这种模式的优点在于可以让JSP去显示数据,因为JSP显示数据是比较方便的,可以使用JavaBean来封装和处理数据,这样他们就各司其职了。

但是这种模式做一些小的应用还可以,但要是做一些复杂的应用,在后期的维护上是很麻烦的,这个时候人们就想到了Servlet+JSP+JavaBean模式,这种模式的优点是用Servlet来处理用户的请求,然后JSP用来显示数据,JavaBean用来封装和处理数据,这样他们更能各司其职了,这种模式就是传说中的MVC模式。

MVC

这种模式对后期的维护很方便。

对这两种模式还不理解的我可以再举个例子,模式一相当于在一间教室里坐了好多学生,然后有用户请求过来说想找某一个学生,如下图所示,我们直接可以让他找走了,因为JSP里面是可以直接调用JavaBean里面的方法的,new个类然后调方法,然后就完事了,但这样显得特别乱,这个时候就有了模式二。

模式二是什么呢,就是教室里面站一个老师,那么用户请求过来要先经过这位老师,老师会根据用户的请求做出相应的调度,比如说用户要找张三,老师说可以,就把张三给找走了,如下图:

比如说用户又想找李四,老师说不可以,那就不能再去找李四了。这样会有一个统一的调度,有这样调度的好处就是让你知道我们的请求到我们的控制里以后会执行哪个类,执行哪个操作,然后怎么去显示都是由Servlet统一管理的,Servlet不做具体的事情,只是拿到任务之后去安排JavaBean去做,然后显示的时候就让JSP去显示,Servlet只负责统一的管理,这种模式这种思想就叫MVC设计模式。这是对MVC的一个简单的介绍,说到这,应该有朋友能看懂吧,我觉得还挺详细的,自吹一把。

总结

介绍这些不是说这个必须得会,但我觉得至少学习要学的明明白白,不要糊里糊涂的,迷茫的去学,那样不仅效率低下,而且掌握不牢固,会限制你的思维,学习的过程中多探索几个为什么,说不定学习起来就会起到事半功倍的效果。

*****************************************************************************************************

我的博客园地址:https://www.cnblogs.com/zyx110/

转载请说明出处

我不能保证我所说的都是对的,但我能保证每一篇都是用心去写的,我始终认同“分享的越多,你的价值增值越大”,欢迎大家关注我的技术分享“Java匹马行天下”和学习心得分享“匹马行天下”,在分享中进步,越努力越幸运,期待我们都有美好的明天!

支持我的朋友们记得点波推荐哦,您的肯定就是我进步的动力。

用框架名唬人谁都会,那你知道Web开发模式吗?——莫问前程莫装逼的更多相关文章

  1. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)

    一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...

  2. python bottle框架(WEB开发、运维开发)教程

    教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架 ...

  3. 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...

  4. 初学 Java Web 开发,请远离各种框架,从 Servlet 开发

    Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...

  5. 加速Web开发的9款知名HTML5框架

    与手工编码比起来,HTML5框架在准确性和正确率方面给予了保证.大多数HTML5框架都会有一个组合或者包含一些额外的组件,比如jQuery Scripts.CSS3样式表则以改善多媒体特征的功能性和响 ...

  6. PHP做Web开发的MVC框架(Smarty使用说明 )

    PHP做Web开发的MVC框架(Smarty使用说明 ) 一.Smarty简明教程 1.安装演示 下载最新版本的Smarty-3.1.12,然后解压下载的文件.接下来演示Smarty自带的demo例子 ...

  7. 转: 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    from: https://github.com/RubyLouvre/agate/issues/8 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以 ...

  8. 在做java 的web开发,为什么要使用框架

    现在做项目都会使用框架,现在很常见的框架就是SSH(Struts+SpringMVC+spring+hibernate),SSM(Struts/springMVC+Spring+Hibernate), ...

  9. 【原创】三分钟教你学会MVC框架——基于java web开发(2)

    没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...

随机推荐

  1. Qt实现网络播放器

        写了这么多的博客,关于网络的还不算多,经常有人询问一些关于网络传输.制作在线试听及下载音乐.构造及解析数据等的一些问题,今天就在这里一并讲解.   网络操作:     主要涉及:QNetwor ...

  2. Flask在VSCODE下基本开发环境配置

    1.创建环境 cd /project/path python3 -m venv venv 第一个VENV是命令,第二个是文件夹名 如果环境不要了,一般做法是直接整个(VENV)文件夹删掉 环境修改下面 ...

  3. Kafka Topic的详细信息 捎带主要的安装步骤

    1. 安装步骤 Kafka伪分布式安装的思路跟Zookeeper的伪分布式安装思路完全一样,不过比Zookeeper稍微简单些(不需要创建myid文件), 主要是针对每个Kafka服务器配置一个单独的 ...

  4. spring boot单元测试之RestTemplate(二)

    上篇博客中,简单介绍了RestTemplate,只是用到了单元测试环节,如果在正式开发环境使用RestTemplate调用远程接口,还有一些配置要做. 一.配置类 由于Spring boot没有对Re ...

  5. 3020配置_Java_win10

    1. 安装Java SE平台 1°  下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213315 ...

  6. hgoi#20190517

    T1-Mike and gcd problem Mike给定一个n个元素的整数序列,A=[a1,a2,...,an],每次操作可以选择一个i(1≤i<n),将a[i],a[i+1]变成a[i]- ...

  7. 程序员修仙之路--优雅快速的统计千万级别uv(留言送书)

    菜菜,咱们网站现在有多少PV和UV了? Y总,咱们没有统计pv和uv的系统,预估大约有一千万uv吧 写一个统计uv和pv的系统吧 网上有现成的,直接接入一个不行吗? 别人的不太放心,毕竟自己写的,自己 ...

  8. MCtalk对话学吧课堂:真正的K12在线教育才刚刚开始

    课堂之外的在线教育已经被大部分家庭所熟知,既涌现出了VIPKID等行业独角兽,也有大量致力于科技改变教育的新兴机构获得了快速成长.成立于2014年的学吧课堂就是专注在K12在线教育领域的创新机构,他们 ...

  9. Angular2国际化

    使用angular-cli初始化项目: ng new my-project 使用npm安装ngx-translate模块 npm install --save @ngx-translate/core ...

  10. C#常用设计模式--单例模式

    为什么要使用单例模式 在我们的整个游戏生命周期当中,有很多对象从始至终有且只有一个.这个唯一的实例只需要生成一次,并且直到游戏结束才需要销毁.  单例模式一般应用于管理器类,或者是一些需要持久化存在的 ...