前言:这两天总结了一些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. Excel求值表达式——太好用了

    这个需要通过宏表函数EVALUATE来实现,首先需要自定义名称.如果数据在A列,那么在B列自定义名称,按Ctrl+F3键,在“定义名称框”中选择“新建”,然后输入名称为“结果”,数据来源输入=EVAL ...

  2. 当程序调用dll时获取dll路径,DLL中获取自身的句柄

    当程序调用dll时,获取dll路径的方法: HMODULE hMod = GetModuleHandle(_T("axload.dll")); if (hMod != NULL) ...

  3. IO多路复用与异步非阻塞

    1.基于socket,发送http请求 import socket import requests # 方式一 list=['li','gh ','nn'] for i in list: ret=re ...

  4. python列表和字典的迭代

    1.列表和字典的迭代 程序开发中,对列表和字典进行迭代是非常常见的事情. 字典一般可以选择对key进行迭代.对value迭代和对key/value一起迭代 >>> d = {'a': ...

  5. WebApp 安全风险与防护课堂(第二讲)开课了!

    本文由葡萄城技术团队于原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 在昨天的公开课中,由于参与的小伙伴们积极性和热情非常高,我们的讲师Carl ...

  6. 网站压力测试工具 Webbench简单介绍

    Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况.Webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量.Webbench不但 ...

  7. Const用法总结(快速区分指针常量与常量指针)

    想当初面试时,面试官问我熟悉C++么?熟悉的话说一下const的用法,然后我就开始凌乱了~ 其实const的用处还真不少,好好捋顺一下会有很大的帮助. 有时候我们希望定义一种常量,它的值不能被修改,这 ...

  8. Python|网页转PDF,PDF转图片爬取校园课表~

    import pdfkit import requests from bs4 import BeautifulSoup from PIL import Image from pdf2image imp ...

  9. 微服务之服务注册与发现--Consul(转载)

    http://blog.csdn.net/buxiaoxia/article/details/69788114 https://www.cnblogs.com/xiaohanlin/p/8016803 ...

  10. Python初探-基础篇

    python和其他语言其实是相似的,如果你会了另一门语言,那学习这个语言,会很快上手 1.mac下自带的有python,版本为2.7.0(可以用home brew python3 安装最新版本的pyt ...