Java和Python的Web開發


http://baijiahao.baidu.com/s?id=1586556913940526678&wfr=spider&for=pc

 

在Java里面有一種服務端的軟件組件技術,叫做Servlet,其實它的定位就是輕巧的小玩意,比如Java里面的applet也是類似的命名。Servlet能夠動態的擴展web服務器的功能,簡單來說,就是在Http服務器上提供了一個擴展的接口,是一個接口標注。

按照JavaEE的規范,任何servlet都需要直接或間接的實現Servlet接口,即javax.servlet.Servlet,這個接口里面只定義了5個方法,但是因為servlet是協議無關的,要直接實現還是很困難的,所以,曾經的sun給除了實現Servlet接口的類,是javax.servlet.GenericServlet類。很顯然這個通用的類只能是一個抽象類,里面的核心方法是service(),所以由此可以看出,它還是協議無關,依舊和協議無關,所以就有了新的實現類HttpServlet,我們寫web應用的時候只需要重點關注如何重寫get和post方法即可。原來是從安全和擴展性上更傾向於post方法,但是目前get方法更流行一些。

而到了Python棧,情況會略有一些變化。簡單來說,如果不使用任何web框架,我們可以完全使用socket的方式來實現,這也就是Python web應用的本質了。現在流行很火的web框架都是在這個基礎之上補充完善。

Python的web開發使得我們更專注於生成HTML文檔。因為我們不希望接觸到TCP連接、HTTP原始請求和響應格式,所以,需要一個統一的接口,讓我們專心用Python編寫Web業務,這個接口就是WSGI(web server gateway interface),感覺和servlet有異曲同工之妙。和Java中servlet中service()不同的是,WSGI接口定義非常簡單,只要求Web開發者實現一個函數,就可以響應HTTP請求。比如login,index方法等。所以url的篩選也是重中之重。

而從架構模式的角度來說,Java中更側重提到MVC,而在Python中則是MTV(不是音樂的那個mtv)。

簡單來說,MVC和MTV是類似的,只是歸屬於不同的開發目錄。都是在已有的實現上解耦合,通過配置和擴展來實現復雜的需求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM