更新時間:2020-02-19 10:02:34 來源:動力節(jié)點 瀏覽2120次
Java語言能長期霸占語言排行榜一個重要的原因就是強大的web開發(fā)能力,web開發(fā)是java的基石(在EJB推出的時候當(dāng)時的Sun用基石來描述EJB),所以了解javaweb開發(fā)原理是非常重要的
Web開發(fā)的歷史
web開發(fā)的歷史其實并不久遠,要搞清楚javaweb開發(fā)的特點(主要是優(yōu)點),首先要了解web開發(fā)的歷史(簡單的回歸一下)。早期的web是非常簡單的結(jié)構(gòu),用戶發(fā)出請求(request),服務(wù)器給出回應(yīng)(response),這個時期的web應(yīng)用,我們稱為website(網(wǎng)站),特點是一些列靜態(tài)內(nèi)容的集合。看一個圖示:紹。
圖中的服務(wù)器保持了一系列html腳本來響應(yīng)用戶的請求,可以說這個時期的web應(yīng)用還是比較簡單的,但是卻確立了兩個重要的對象:一個request(代表請求),另一個是response(代表回應(yīng))。如果把web開發(fā)的歷史比喻成一部美國大片的話,那么request和response絕對是這部大片的那女主角,而且每一部都是不可或缺的主角(簡單的說就是死不了)。
看到這個圖,不知道第一批從事web開發(fā)的80后是否和我一樣,已經(jīng)有點感觸了,當(dāng)年為了搞清楚這個結(jié)構(gòu),曾經(jīng)連續(xù)多少個通宵做實驗(實驗環(huán)境比較惡劣)。沒關(guān)系,這僅僅是個開始,我想當(dāng)你看完這篇文章的時候,你會淚流滿面的(相信我)。為了配合一下這張結(jié)構(gòu)圖,在web發(fā)展過程中,有一個小插曲,就是在website向webapplication發(fā)展的過程中,出現(xiàn)了一個小“玩意兒”,就是applet,很多人了解java都是從使用javaapplet開始的(70,80后那一批程序員)。當(dāng)時風(fēng)靡校園(我當(dāng)時在讀大一)的網(wǎng)易聊天室,哎呀那個火啊(大家回憶一下你在學(xué)校機房上網(wǎng)時的興奮),這個聊天室就是采用了applet構(gòu)建的,當(dāng)時applet給靜態(tài)頁面一個動態(tài)交互的可能,著實火了一段時間。現(xiàn)在知道applet的程序員,你已經(jīng)暴露年齡了。看一張圖片吧:
我想這個時候,淚點低的70、80后已經(jīng)有點濕潤了吧。濕潤的,自覺在這里停留一分鐘,對著屏幕來張合影,發(fā)個朋友圈。
過了這個插曲,真正的三層web開發(fā)來了,一個里程碑式的web處理方式CGI,看一張圖:
CGI的推出,使得web開發(fā)正式進入了動態(tài)處理時代,服務(wù)器能與客戶有真正意義上的交流了,有能存儲數(shù)據(jù)的數(shù)據(jù)庫了,雖然CGI的使用周期并不長,但是一定要紀(jì)念一下它,畢竟它是里程碑式的變革。javaweb技術(shù)正是踩著CGI的肩膀來到了廣大程序員的面前,javaweb解決了CGI的性能問題。CGI是以進程為單位管理請求的,而javaweb則是以線程為單位,處理能力更強,占用的資源更少,這個核心的組件就是Servlet。看一組資源占用圖,先看CGI的:
再看一下javaweb中的servlet資源圖:
孰優(yōu)孰劣一目了然,Servlet解決相同數(shù)量的請求,卻占用較少的系統(tǒng)資源,這就是為什么廣大程序員拋棄了CGI轉(zhuǎn)向javaweb的原因。
另外,開發(fā)一個Servlet并不復(fù)雜,看一個Servlet編寫的HelloWorld應(yīng)用:
這個代碼結(jié)構(gòu)是不是很親切,是不是很有Coding的感覺,其實Servlet就是個java類而已,只不過增加了幾個限制而已,所以開發(fā)一個Servlet并不復(fù)雜。然后就是把它部署到web服務(wù)器上(Tomcat這個老人家現(xiàn)在身體依然硬朗!),然后就等待客戶的請求就可以了。這是Servlet的三層部署圖:
再看一下組合使用Servlet+javaBean+JSP的Model2開發(fā)結(jié)構(gòu):
這個結(jié)構(gòu)是標(biāo)準(zhǔn)的Javaweb開發(fā)結(jié)構(gòu),現(xiàn)在是不是很少能看到這么“干凈”的描述圖了?以上就是標(biāo)準(zhǔn)的javaweb開發(fā)的歷史描述,當(dāng)然這并不是說這些內(nèi)容已經(jīng)過時了,反而它一直是官方的標(biāo)準(zhǔn)解決方案。只不過web發(fā)展迎來了另一個階段,繁榮的開源架構(gòu)時代來了。。。
開源框架時代
這個時代的典型代表就是Struts、Spring和Hibernate,簡稱SSH。
嚴(yán)格的說,這部分內(nèi)容并不是官方解決方案,但是這些方案卻得到了廣大程序員的擁護,一方面原因是EJB的方案太重了,另一方面開源架構(gòu)使用起來非常方便和靈活,所以從03年以后這些開源框架得到了普通的使用。
下面我簡單描述一下這三個框架:
Struts基于MVC結(jié)構(gòu)的解決方案,分為struts1(已經(jīng)淘汰了,用過Struts1的程序員已經(jīng)老了)和struts2兩個版本,和Python一樣,這兩個版本不兼容,目前Struts2的最新版本是2.5.14.1,簡單的說Struts就是構(gòu)建了現(xiàn)成的MVC框架,程序員往這個框架里加代碼就可以了,使用起來非常方便。
Hibernate框架完成了面向?qū)ο笈c面向關(guān)系的映射,讓java程序以面向?qū)ο蟮姆绞讲僮髅嫦蜿P(guān)系的數(shù)據(jù)庫。整體結(jié)構(gòu)基于DAO進行擴展,很多操作只需要配置一下就可以了,極其方便。
Spring提供了javaBean的容器,池化了javabean,提高了性能,而且核心代碼不到2M,小巧且強大。
動力節(jié)點Javaweb開發(fā)視頻
Tomcat9配置和使用:http://m.ilovecolors.com.cn/v76/
JavaWeb開發(fā)基礎(chǔ):http://m.ilovecolors.com.cn/v77/
Servlet編程:http://m.ilovecolors.com.cn/v33/
JSP:http://m.ilovecolors.com.cn/v34/
Session/Cookie:http://m.ilovecolors.com.cn/v74/
Filter:http://m.ilovecolors.com.cn/v80/
以上就是動力節(jié)點Java培訓(xùn)機構(gòu)小編介紹的“java web是什么原理?內(nèi)涵Javaweb最新視頻教程”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)內(nèi)容
Javaweb開發(fā)學(xué)習(xí)路線及Java三大框架
Javaweb學(xué)習(xí)路線(自學(xué)規(guī)劃)
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743