前言
屈指一數(shù),涉足web應(yīng)用的開(kāi)發(fā)都有三四年的日子了,從最初的一些類似于word文檔的網(wǎng)頁(yè)編寫(xiě),到現(xiàn)在一些MIS(manage information System)應(yīng)用系統(tǒng)的開(kāi)發(fā)。當(dāng)中的確經(jīng)歷許多,早已準(zhǔn)備寫(xiě)點(diǎn)文字總結(jié)些東西,最終還是拖到現(xiàn)在才打起精神來(lái)細(xì)寫(xiě)。
何為web應(yīng)用
web應(yīng)用是指基于瀏覽器(browser)的應(yīng)用,用戶使用用簡(jiǎn)單的瀏覽工具(常用的如IE)。
通過(guò)http協(xié)議, 發(fā)出請(qǐng)求(request),服務(wù)器接收作出響應(yīng)(response),返回請(qǐng)求需要結(jié)果或是進(jìn)行相關(guān)的目標(biāo)操作,這種架構(gòu)也可以稱為B/S架構(gòu)( Brower/Server 模式)。
本人懂事之年正遇上internet盛行之際,因此非科班出身的我也進(jìn)入了IT軟件開(kāi)發(fā)的行業(yè),這多得于當(dāng)時(shí)3p(asp,php,jsp)技術(shù)的入門(mén)門(mén)檻不高,以及自己一直以來(lái)的興趣所在。
web應(yīng)用的優(yōu)勢(shì)所在
web應(yīng)用系統(tǒng)使用客戶端采用的是瀏覽器, 基本上每一臺(tái)PC機(jī)都會(huì)有的大眾軟件,免去類似于C/S系統(tǒng)中的升級(jí)麻煩的問(wèn)題。
應(yīng)用服務(wù)器采用 Web 服務(wù)器。只要在一臺(tái)或若干臺(tái)服務(wù)器即可,對(duì)客戶端信賴十分少。
適合于一些分布式的應(yīng)用。對(duì)網(wǎng)絡(luò)用戶跨平臺(tái)支持,可跨平臺(tái)共享數(shù)據(jù)、文本、以及一些多媒體文件等多種形式的信息。
web 應(yīng)用分類
關(guān)于web應(yīng)用的開(kāi)發(fā)實(shí)在太廣泛,在這里以靜態(tài)web應(yīng)用以及動(dòng)態(tài)web應(yīng)用劃分
A 按效果分
這里的靜態(tài)是指純粹的html(超文本標(biāo)記語(yǔ)言)頁(yè)面,或許現(xiàn)在這種web的應(yīng)用可能不再存在,這里只作一個(gè)分類說(shuō)明;
而動(dòng)態(tài)是增加了一些dhtml(動(dòng)態(tài)html),javascript等腳本語(yǔ)言技術(shù)以及flash動(dòng)畫(huà)技術(shù),其實(shí)可以這樣定義,就算增加的是一些動(dòng)畫(huà)效果的GIF圖片以使頁(yè)面不再給人靜的感覺(jué)也屬于這里的范疇。
B 按內(nèi)容分
按內(nèi)容分靜態(tài)web應(yīng)用以及動(dòng)態(tài)web應(yīng)用
這里的靜態(tài)應(yīng)用是指頁(yè)面所展示的內(nèi)容是hardcode在頁(yè)面中的,不可再變化(通俗點(diǎn)來(lái)講是寫(xiě)死在頁(yè)面中),除非從服務(wù)器download下來(lái)修改再upload上去。主要適合一些簡(jiǎn)單的應(yīng)用,以及一些固定內(nèi)容的展示。
現(xiàn)網(wǎng)絡(luò)上不少公司企業(yè)網(wǎng)站屬于這一類,主要是其開(kāi)發(fā)簡(jiǎn)單快捷,以及國(guó)人對(duì)于這方面的應(yīng)用峽窄所至。
而動(dòng)態(tài)是指頁(yè)面中顯示的關(guān)鍵內(nèi)容是保存在數(shù)據(jù)庫(kù)中的(簡(jiǎn)單的應(yīng)用或許保存在文本文件中,例如bat,txt等),授權(quán)用戶通過(guò)交互操作動(dòng)態(tài)新增,修改,刪除相關(guān)的內(nèi)容或紀(jì)錄。通過(guò)控件輸入相關(guān)信息而動(dòng)態(tài)地請(qǐng)求出所需要的內(nèi)容。以達(dá)到真正的人機(jī)互動(dòng)。是過(guò)去幾年來(lái)最受歡迎的應(yīng)用,當(dāng)然也少不了asp,php,jsp服務(wù)器語(yǔ)言技術(shù)的成熟與發(fā)展的一份功勞!
技術(shù)要點(diǎn)
通過(guò)以上的介紹,我們已接觸到相關(guān)的技術(shù)點(diǎn),但是它們是散亂的以及不全的。
在這里我通過(guò)使用java 世界中講得比較流行的的MVC模式 來(lái)進(jìn)行層次劃分說(shuō)明一下可使大家了解其中的技術(shù)點(diǎn)更為清晰:
V (view) - 表現(xiàn)層
負(fù)責(zé)頁(yè)面的展示,提供用戶操作的界面。這里包含的細(xì)節(jié)主要是
頁(yè)面的導(dǎo)航(navigation)
UI 控件( UI component)
數(shù)據(jù)的有效性檢測(cè)( Validator)
事件及監(jiān)聽(tīng) (Events and listeners )
信息的返回(Messages)
…………等
這方面的技術(shù)點(diǎn)主要包括展示語(yǔ)言html,xhtml,css,xml,xslt,script語(yǔ)言,RIA方面的(FLEX,XUL, XAML),jsp,jstl,tab lib,strtus等等。
C (controll) - 控制層
1、負(fù)責(zé)接受客戶端的請(qǐng)求,調(diào)用Model層商業(yè)方法
2、接收DAO執(zhí)行商業(yè)方法的執(zhí)行結(jié)果,將其現(xiàn)給客戶端。
這方面的技術(shù)點(diǎn)主要包括:java world中的 spring,strtus框架提供了這方面的封裝支持等
M (model) - 業(yè)務(wù)層
主要負(fù)責(zé)商業(yè)邏輯,所以也叫商業(yè)邏輯層,包括簡(jiǎn)單的CURD的操作,以及一此復(fù)雜的邏輯。
應(yīng)用領(lǐng)域
1、一般網(wǎng)站應(yīng)用,主要面向的所有瀏覽用戶或注冊(cè)用戶
包括一些門(mén)市網(wǎng)站,企業(yè)(產(chǎn)品)形象的展示,電子商務(wù)站點(diǎn)等
2、 企業(yè)信息化應(yīng)用,主要面向的企業(yè)內(nèi)部員工以及管理層
包括一些日常辦公,生產(chǎn),管理信息化的操作平臺(tái)。典型的有
|
英文簡(jiǎn)稱 |
中文 |
|
OA |
協(xié)同辦公 |
|
CMS |
內(nèi)容管理系統(tǒng) |
|
CRM |
客戶關(guān)系管理
|
|
SCM |
供應(yīng)鏈管理
|
|
|
財(cái)務(wù)系統(tǒng) |
|
|
生產(chǎn)管理 |
|
|
人力資源管理
|
|
KM |
知識(shí)管理 |
技術(shù)表格
sort |
common |
java world |
view 層 |
HTML,XML,XHTML, CSS, script語(yǔ)言,xmlhttp, htc, RIA(FLEX,XUL,XAML) graphic deign 動(dòng)畫(huà)技術(shù) …… |
jstl,tag lib,strtus,jsf,Tapestry,webwork…… |
controller 層 |
|
strtus,spring |
model層 |
|
transactions ,java |
數(shù)據(jù)庫(kù)技術(shù) |
標(biāo)準(zhǔn)sql,db,dba,特定sql,pl/sql |
jdbc,ORM(hibernate,ibatis)等 |
web Containers |
|
tomcat,weblogic,Webspace ,jboss,Resin |
Security |
|
|
os |
window,linux |
|
browser |
IE,firefox |
|
EAI(企業(yè)應(yīng)用整合) |
|
Web Service, Portal …… |
其它 |
Design Pattern,算法,優(yōu)化技巧 |
|
后注
帖些學(xué)習(xí)資料,主要針對(duì)java平臺(tái)開(kāi)發(fā)
1、Struts User and Developer Guides 分類得不錯(cuò),step by step 對(duì)MVC各層的知識(shí)點(diǎn)也提供了介紹以及學(xué)習(xí)資源
2、All About Java 關(guān)于Java的一切 : 工具, 類庫(kù), 框架