web技术发展史
来源:互联网 发布:linux文件列表 编辑:程序博客网 时间:2024/05/17 22:58
web技术的发展流程:
基本可以归结为:servlet-->jsp-->model1 -->model2 --> 实际Web mvc
一. 对于Servlet
它是服务器端运行的一个组件,用来处理用户的请求,并且返回响应。
继承关系如下:
在上述的代码中,前段代码直接写在了处理逻辑中,这样前段开发人员就比较难以调试。修改起来也是很麻烦。所以催生了Web技术的下一步发展。更加具体的Servlet知识:http://blog.csdn.net/pzxwhc/article/details/46476871
Servlet接口有5个方法。比如 init()方法,即初始化方法,在GenericServlet中进行了实现。比如service()方法,这也是最重要的响应分发方法,由HttpServlet进行了使用,可以把用户的请求分发给具体的doGet(),doPost()等方法当中。
但是,它也有一些缺点,如下图代码:
在上述的代码中,前段代码直接写在了处理逻辑中,这样前段开发人员就比较难以调试。修改起来也是很麻烦。所以催生了Web技术的下一步发展。更加具体的Servlet知识:http://blog.csdn.net/pzxwhc/article/details/46476871
二. 对于JSP
对于JSP技术,也就是Java Server Page。它可以在标准的HTML页面中嵌入脚本语言,比如 java语言。它的本质也是Servlet。如下代码:
那么可以看到,比起纯Servlet开发要好很多。但是,表现层和业务处理也是混杂在一起。实际中也比较难以运用。所以继续催生Web技术的下一步发展。
三. 对于Model1
可以把它理解成JSP的增强版。主要特点是可以利用<jsp:useBean>标签,自动把请求参数封装到JavaBean组件。但是还是需要使用 java 脚本控制逻辑。如下代码:
同理,和现在的业务处理,模型,视图表现分离,这些技术,思想还是有些落后的。
四.对于Model2
对于Model2 ,就可以认为是我们的MVC模式。它采用了控制器(Servlet),视图(JSP),模型(javaBean)分离,如下图:
这种模式就比较易于分工,前端人员专注前端开发,后端人员专注后台开发,已经比较接近于我们现在的开发技术。但是,这样的模式也不是说没有缺点,比如:
1. 请求参数到模型的封装比较麻烦,如果能交给框架来做这件事情,我们可以从中得到解放。
2. 现在被绑定在JSP,很难更换视图,比如Velocity、FreeMarker;比如我要支持Excel、PDF视图等等。
那么,对现在的Model2技术一个优化,就有如下的实际应用下的Web mvc技术。
五.实际Web mvc
如下架构:
页面控制器/命令,可以看成是我们写的Controller,业务对象也就是model,视图也就是view,所以还是遵守了mvc的开发模式。和model2 不太一样的就是加入了前端控制器和应用控制器。
对于前端控制器:负责为表现层提供统一的访问点。可以为多个请求提供共用的逻辑。
Ps:前端控制器模式:见《设计模式》中的另一篇博文
对于应用控制器:前端控制器分离选择具体视图和具体的功能处理之后,需要有人来管理,应用控制器就是用来选择具体视图技术(视图的管理)和具体的功能处理(页面控制器/命令对象/动作管理),一种策略设计模式的应用,可以很容易的切换视图/页面控制器,相互不产生影响。
Ps:策略模式:
见《设计模式》中的另一篇博文
最后,总的来说Web技术的发展目前围绕两点:1. 业务,视图,模型分离。 2. 统一控制。
参考:http://blog.csdn.net/chichengit/article/details/12098111#reply
0 0
- Web技术发展史
- web技术发展史
- 基石---web开发技术发展史
- Web开发的发展史---Web开发技术的演变
- 【Web发展史】
- Rootkit的技术发展史
- Web本地计算发展史
- Web开发的发展史
- Web的发展史
- Web开发的发展史
- 漫谈Google的Native Client技术(一)--历史动力篇(Web本地计算发展史)
- Web前后端数据交换技术和规范发展史:Form、Ajax、Comet、Websocket
- 计算机科学技术发展史的缩影
- 加密技术发展史(1)
- 框架演变中的技术发展史
- 从图灵奖看计算机科学技术发展史的缩影
- 从图灵奖看计算机科学技术发展史的缩影
- 从图灵奖看计算机科学技术发展史的缩影
- OC中的数组
- HDU4344 Mark the Rope pollard_rho大整数分解应用
- JavaScript权威指南_131_第15章_脚本化文档_15.6-创建、 插入、删除节点-DocumentFragment
- hdu4405Aeroplane chess 概率dp水题
- HDU1005 Number Sequence
- web技术发展史
- S3C2410的触摸屏控制
- OC多态使用注意
- UVa 10189 SDNU 1127 Minesweeper 【7月20】
- HDU 5285:wyh2000 and pupil
- 2015年ALPC暑期专题练习I (计算几何) Space Ant
- 知识储备:JSON数据解析
- Swift学习笔记系列——(10)方法
- 235 Lowest Common Ancestor of a Binary Search Tree