一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Servlet:我還活著呢!

 流曲頻陽 2018-05-23

我是Servlet, 由于很多框架把我深深地隱藏了起來,我變得似乎無關緊要了,很多人也選擇性的把我給遺忘了。 其實,我還活得好好的呢, 只不過是從前臺明星慢慢退居幕后而已。


好基友Servlet + JSP

想當年我剛剛誕生的時候,無數(shù)人對我趨之若鶩。


因為那個時候Web服務器只能處理靜態(tài)的HTML頁面,圖片,JavaScript這樣的東西, 比如Apache 這個著名的Web服務器。


人類想要看一點動態(tài)的內(nèi)容,比如什么留言板,購物網(wǎng)站等,還得靠極為難用的CGI。  


我一出生, 他們就歡呼著把CGI給拋棄,紛紛改用Java寫Servlet程序, 再后來我的好兄弟JSP問世,我們簡直形成了絕配。


我負責控制,JSP負責視圖,再加上負責數(shù)據(jù)的Java Bean, MVC三駕馬車正式形成,風靡一時,想當年,著名的開源論壇軟件Jive就是我們的巔峰之作。



說起JSP,這小子有時候還不太服我,經(jīng)常振振有詞地說:“你Servlet沒什么了不起的,我也可以當Controller!”


JSP確實可以當Controller, 早些年我還真的見過,一個長達6000多行的JSP,行使著Controller的職責,每當程序員要改這些代碼就膽顫心驚,叫苦不迭。


其實JSP不知道,它本質上也就是Servlet ,JSP只不過穿了一件漂亮的外衣,給了程序員們一個輕松寫動態(tài)頁面的工具而已,實際運行的時候會被編譯成Servlet類, 本質上我們是一樣的。


我和JSP都生活在Servlet Container當中,Container這個詞有點高大上,但是說白了,無非就是能執(zhí)行Servlet和JSP的一個東西,比如說Tomcat, 比如說Jetty


但是無論是我還是JSP, 我們能處理的只是HTTP請求,必須得有人把HTTP請求轉發(fā)給我們才可以。


這件事情只有讓Tomcat, Jetty他們來做了,他們自己可以接收HTTP請求,然后轉發(fā)給我們;


他們也可以從別人,例如Apache那里接收HTTP請求,然后發(fā)給我們處理,處理完了再轉發(fā)給Apache, Apache再發(fā)給人類的瀏覽器。


雖然有點麻煩, 但是這種方式確實非常靈活,各司其職,擴展性比較好,比如,一個Apache可以把請求分發(fā)給后臺多個Tomcat中的一個。


Apache,Nginx 他們專心致志地去處理靜態(tài)內(nèi)容(HTML, JS, 圖片) ,我們這里心無旁騖地執(zhí)地執(zhí)行“不講邏輯的”業(yè)務邏輯,訪問數(shù)據(jù)庫,然后生成頁面返回。



Application Server

日子過得波瀾不驚,我一度認為,這個世界就將這么運行下去。


應用程序越開發(fā)越多,出現(xiàn)了一些通用的需求,比如安全,事務,分布式等等,這些需求應用程序不愿意處理,想丟給操作系統(tǒng),操作系統(tǒng)也不愿意處理, 那怎么辦?


不知道是誰提了一個叫做中間件的概念: 你們不愿意做的,我們中間件來做。


Java 世界也不敢怠慢,也搞出了一大堆的規(guī)范,像什么EJB,JMS,JTA等等,把我和JSP也合并到其中,形成一個大“雜燴”,叫做J2EE。


其中最春風得意的就是EJB這家伙,獨自生活在EJB Container中(又是Container?。?,號稱能支持真正地分布式計算:一個EJB可以有多個實例,分布到多個服務器中,應對用戶的請求, 聽起來很高深的技術。


他們把Servlet Container稱為Web Container ,  和EJB Container 一起,還有其他的一些東西,被合并到一個叫做Application Server當中去了。 最知名的幾個Application Server 就是 Weblogic , WebSphere , JBoss。


國內(nèi)的金蝶也實現(xiàn)過一個,叫做Apusic,雖然影響力不如前面那幾位,但值得贊賞。



退居幕后

我和JSP都沒有料到,EJB搶了我們的風頭,成了系統(tǒng)的中心, 讓我們極為不爽。


我和JSP豈能善罷甘休? 我們決定抓住EJB的弱點進行反擊, 我們和人類一個叫做Rod Johnson的聯(lián)合,讓他出面,列舉出EJB的36大罪狀,昭告天下,這些罪狀包括但不限于:笨重,性能低下,難于測試,昂貴....


EJB確實是個扶不起的阿斗, 很快就被人批得體無完膚,大家紛紛投入Rod Johnson 創(chuàng)建的Spring的懷抱。


我松了一口氣, 可是很快就發(fā)現(xiàn)事情不對勁,大家紛紛用起了框架! 比如Struts, SpringMVC......


在這些框架中,我雖然處于一個非常重要的角色, 但是通常情況下只要配置一下web.xml,就可以把我扔到一邊了。


Container 照例把HTTP請求傳遞給我,但是我卻不能親手處理,我需要傳遞給框架,框架分派給Controller,沒我什么事了!


那些程序員們要做的事情就是寫Controller, Service , DAO這些和我八班桿子打不著的東西。


我恨框架, 但是看到程序員們寫代碼寫得那么高興,又無話可說,畢竟框架極大地減少了他們的工作量:


之前對于每個HTTP請求,程序員得手工地去解析URL, 調(diào)用相關的Java Bean。

現(xiàn)在只需要用個配置文件或者注解就可以把URL給映射到一個Java 類。


之前對于HTTP請求中的參數(shù), 程序員也得手工解析和驗證。

現(xiàn)在也可以直接映射到Java 對象或者變量

......

用起來這么簡單,他們不用才怪。



更讓人生氣的是,Rod他們后來倒騰出來一個叫做Spring Boot的東西,徹底地把我給隱藏起來了!


尤其是對于一個新手來說,甚至完全不知道我的存在。


Tomcat和Jetty這樣的Servlet Container也很悲催,他們竟然被內(nèi)嵌到了Spring Boot中! 程序員開發(fā)出的Web應用,就像一個普通的Java程序一樣,從main函數(shù)開始運行。


我們徹底地退居幕后了!


不過我有義務提醒一下學習后端編程的同學,不要一上來就學習框架,不要被框架迷住你的雙眼!


還是應該好好看看最基本的Java Web, 就是我和我的兄弟JSP。


威脅來臨

雖然是退居幕后,但是我的核心地位依然穩(wěn)固,是Java Web應用的中堅力量,我生活在Servlet Container中,專門處理HTTP請求,這么多年難逢敵手。


直到有一天,有個叫做Netty的家伙上門挑戰(zhàn)。


這個Netty居然完全不用Servlet Container,或者換句話說,人家自己就是一個“Container” , 這對我來說絕對是釜底抽薪的攻擊, 我引以為傲的Servlet 規(guī)范, Servlet API統(tǒng)統(tǒng)不管用了。


我只能處理HTTP, 可是這個Netty支持各種各樣的協(xié)議:HTTP, FTP, UDP, 它還支持實現(xiàn)各種各樣自定義的協(xié)議! 這就意味著程序員完全可以自定義一套自己應用的RPC協(xié)議,然后放到Netty上運行。


它的底層是Java NIO,又封裝了Java NIO那些復雜的底層細節(jié),可以輕松實現(xiàn)高性能、高可靠的網(wǎng)絡服務器, 這實在是太可怕了。


我似乎看到了一個可怕的場景: 用Netty 開發(fā)的服務器端,運行著眾多的Web 服務,他們之間使用私有的協(xié)議在互相調(diào)用,效率極高,性能極高, 根本沒有Servlet, HTTP, Tomcat什么事。


讓我稍感安慰的是,直接使用Netty的程序員們還不多,雖說有不少人在使用基于Netty的Dubbo,  但是Netty也被封裝隱藏起來了。 我估計真正具有鉆研精神的程序員才愿意去研究他吧。


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产偷拍精品在线视频| 日韩少妇人妻中文字幕| 日韩精品视频高清在线观看| 欧美丰满人妻少妇精品| 成在线人免费视频一区二区| 91偷拍与自偷拍精品| 日韩夫妻午夜性生活视频| 99一级特黄色性生活片| 婷婷色香五月综合激激情| 麻豆视传媒短视频免费观看| 国产福利一区二区三区四区| 九九久久精品久久久精品| 日韩欧美三级视频在线| 久久碰国产一区二区三区| 精产国品一二三区麻豆| 少妇人妻精品一区二区三区| 中文字幕人妻一区二区免费| 国产欧美日韩在线一区二区| 男人操女人下面国产剧情| 国产成人精品在线一区二区三区| 欧美在线观看视频三区| 亚洲婷婷开心色四房播播| 国产内射一级一片内射高清| 国产又粗又爽又猛又黄的| 国产一区二区三区午夜精品| 一本色道久久综合狠狠躁| 国产日产欧美精品大秀| 国产精品国三级国产专不卡| 国内尹人香蕉综合在线| 97人妻精品一区二区三区男同| 中文字幕亚洲视频一区二区| 久久国产精品热爱视频| 免费观看成人免费视频| 国产精品亚洲综合天堂夜夜| 好吊妞在线免费观看视频| 亚洲一区二区三区日韩91| 欧美成人国产精品高清| 日本黄色美女日本黄色| 日韩一区二区三区18| 99久久精品免费精品国产| 国产精品日韩精品最新|