前言:这两天总结了一些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

MVC开发流程

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

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

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

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

总结

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

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

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

转载请说明出处

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

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

转载于:https://www.cnblogs.com/zyx110/p/11238644.html

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

  1. 只会用框架,看不懂源码,不了解其底层机制与实现原理,成了一名只会搬运源码库的开发。说白了,就是真正牛逼的技术不属于你。

    对于开发来说,我们在工作中普遍都会用到各个开源框架,比如最基础的 Spring,使开发网络编程变得特别简单的 Netty 框架,还有成为目前微服务框架首选的 Spring Cloud 等.在多个框架之 ...

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

    阅读目录 一.Django请求生命周期: 二.WEB开发模式: 三.cbv源码分析: 四.认识RESTful 补充知识:跨域 五.基于原生django开发restful的接口 六.drf安装.使用.A ...

  3. python上手--flask框架web开发实践-数据库

    这篇文章,由易而难,步骤清晰,思路讲得很明白.花两小时跟着作者稻谷先生的这篇文章走一遍,对学习python使用Flask来开发web的应用很有帮助. python上手--flask框架web开发实践 ...

  4. python bottle框架 运维_python bottle框架(WEB开发、运维开发)教程 | linux系统运维...

    教程目录 一:python基础 二:bottle基础 python bottle 框架基础教程:环境部署 三:WEB开发教程 四:运维开发教程 运维开发(1.1):框架.结构介绍 运维开发(1.2): ...

  5. python bottle部署g_python bottle框架(WEB开发、运维开发)教程 | linux系统运维

    教程目录 一:python基础 二:bottle基础 python bottle 框架基础教程:环境部署 三:WEB开发教程 四:运维开发教程 运维开发(1.1):框架.结构介绍 运维开发(1.2): ...

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

    写在前面: 本文是转自:http://www.oschina.net/question/12_52027  的文章,如果要求删除,第一时间联系我立即删除! Web框架是开发者在使用某种语言编写Web应 ...

  7. 基于Stripes框架进行Java Web开发

    Mark Eagle是美国乔治亚州亚特兰大市MATRIX Resources有限公司的一位资深软件工程师,拥有Sun公司的SCP和SCWCD认证.Mark本人非常喜欢使用开源软件进行软件开发,并且多次 ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制 ...

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

    [转载自红薯,原帖地址]http://www.oschina.net/question/12_52027 OSCHINA 软件库有一个分类--Web框架,该分类中包含多种编程语言的将近500个项目. ...

最新文章

  1. php 和ajax,PHP与Ajax
  2. mysql 8.3_8.3 - mysql 表操作
  3. 小白都能看懂的网络性能测试
  4. Retina时代的前端视觉优化
  5. PHP Token(令牌)设计
  6. esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制
  7. Qt杂记-QQuick之Android隐藏状态栏以及状态栏透明(QQuick项目)
  8. kubernetes 磁盘、PV、PVC
  9. 语音专题第四讲,语音识别之解码器技术简介|大牛讲堂
  10. OpenCV Viz 3D虚拟空间模块
  11. 伪随机数生成算法-梅森旋转(Mersenne Twister/MT)
  12. Win7安装虚拟光驱蓝屏解决办法
  13. 谷粒商城项目基础篇总结文档
  14. Java银行账户管理子系统
  15. Educational Codeforces Round 47 (Rated for Div. 2) ---- C Annoying Present
  16. 免费下载shape_predictor_68_face_landmarks.dat
  17. [ 英语 ] 马斯克抱水槽“入主”推特总部中那句 Let that sink in 到底是什么梗?
  18. html火狐浏览器秒杀插件,火狐浏览器Firefox(已装载常用渗透插件) 2018-06
  19. [xueqi]吃着榨菜,轻松搞下漏洞百出的湾湾站
  20. 微信公众号外部登录与授权,保存登录信息问题记录

热门文章

  1. java list平均分成5份_java中将一个List等分成n个list的工具方法(推荐)
  2. 银行家算法检测死锁c语言,[算法]操作系统进程调度与通信算法 Dijkstra银行家算法 C语言实现 | 李大仁博客...
  3. JavaScript的new关键字执行过程(1)
  4. Lc123验证是不是回文序列
  5. hdu 6397 Character Encoding
  6. C#基础11:五种访问修饰符
  7. Ubuntu不能挂载移动硬盘问题Error mounting /dev/sda1 at /media/XXXX: Command-line `mount -t ntfs -o
  8. 利用k-means算法实现图像自动色彩量化
  9. kong插件应用(熔断 限流,黑白名单,认证(basic,key,jwt,hmac,),授权,加密,zipkin链路跟踪,日志, prometheus可视化, 爬虫控制插件)
  10. 贺利坚老师汇编课程27笔记(二):loop和[bx]访问连续内存单元