用框架名唬人谁都会,那你知道Web开发模式吗?——莫问前程莫装逼
前言:这两天总结了一些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开发模式吗?——莫问前程莫装逼的更多相关文章
- Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
一.Django请求生命周期: 前端发出请求到后端,通过Django处理.响应返回给前端相关结果的过程 先进入实现了wsgi协议的web服务器--->进入django中间件--->路由f分 ...
- python bottle框架(WEB开发、运维开发)教程
教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架 ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
- 加速Web开发的9款知名HTML5框架
与手工编码比起来,HTML5框架在准确性和正确率方面给予了保证.大多数HTML5框架都会有一个组合或者包含一些额外的组件,比如jQuery Scripts.CSS3样式表则以改善多媒体特征的功能性和响 ...
- PHP做Web开发的MVC框架(Smarty使用说明 )
PHP做Web开发的MVC框架(Smarty使用说明 ) 一.Smarty简明教程 1.安装演示 下载最新版本的Smarty-3.1.12,然后解压下载的文件.接下来演示Smarty自带的demo例子 ...
- 转: 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
from: https://github.com/RubyLouvre/agate/issues/8 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以 ...
- 在做java 的web开发,为什么要使用框架
现在做项目都会使用框架,现在很常见的框架就是SSH(Struts+SpringMVC+spring+hibernate),SSM(Struts/springMVC+Spring+Hibernate), ...
- 【原创】三分钟教你学会MVC框架——基于java web开发(2)
没想到我的上一篇博客有这么多人看,还有几位看完之后给我留言加油,不胜感激,备受鼓励,啥都别说了,继续系列文章之第二篇.(如果没看过我第一篇博客的朋友,可以到我的主页上先浏览完再看这篇文章,以免上下文对 ...
随机推荐
- FrieMonkey获取手机的IMSI等信息
procedure THeaderFooterForm.FormCreate(Sender: TObject); var TelephonyManager: JTelephonyManager; Te ...
- QT+OpenCV+OpenGL安装
Ubuntu 10.04.3 LTS ("fresh" install) OpenCV 2.3.1 Qt SDK version 1.2.0 for Linux/X11 32-bi ...
- comboBox控件动态绑定数据
/// <summary> /// load加载数据 /// </summary> /// <param name=" ...
- Git 本地仓库(使用小乌龟进行操作,一个人开发)
一.首先在本地创建版本库 创建成功最明显的特征是该目录下存在一个隐藏文件夹(.git) 前提:已设置显示隐藏文件 三种方式: 1.Git GUI Here(右击) 2.Git Bash Here(右击 ...
- C#常用设计模式--单例模式
为什么要使用单例模式 在我们的整个游戏生命周期当中,有很多对象从始至终有且只有一个.这个唯一的实例只需要生成一次,并且直到游戏结束才需要销毁. 单例模式一般应用于管理器类,或者是一些需要持久化存在的 ...
- Programming In Lua 第四章
1, 2, 3, 4, 5, 6, 7,
- 漫谈Redis分布式锁实现
在Redis上,可以通过对key值的独占来实现分布式锁,表面上看,Redis可以简单快捷通过set key这一独占的方式来实现分布式锁,也有许多重复性轮子,但实际情况并非如此.总得来说,Redis实现 ...
- 使用Appium做手机自动化录制问题
最近在使用appium做Android手机自动化脚本录制, 发现点击“tap”时,一直没有用,页面还是不能跳转. 咋办?发愁... 于是看到旁边有个“sendkeys”,那是不是能够直接发送参数不就行 ...
- spring boot 2.0 thymeleaf调试时正常,打包后运行报错. 找不到模板文件.
使用th:fragment 定义模板 使用 th:replace 来添加模板到需要的地方. 使用时发现一个非常奇怪的问题. 本机idea 调试环境一切正常, 但是打成jar包以后报错,提示找不到对 ...
- ECShop安装问题
Ecshop安装过程中的的问题:cls_image::gd_version()和不支持JPEG 在安装Ecshop的时候,遇到两个问题: 1.Strict Standards: Non-static ...