1. 程式人生 > >web技術發展史

web技術發展史

        繼承關係如下:

        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. 統一控制。