web技术发展史

来源:互联网 发布:linux文件列表 编辑:程序博客网 时间:2024/05/17 22:58
web技术的发展流程:
基本可以归结为:servlet-->jsp-->model1 -->model2 --> 实际Web mvc

一. 对于Servlet
        它是服务器端运行的一个组件,用来处理用户的请求,并且返回响应。
        继承关系如下:

        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