Java和Python的Web開發

dicksonjyl560101發表於2017-12-21

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

Java和Python的Web開發

按照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框架都是在這個基礎之上補充完善。

Java和Python的Web開發

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

Java和Python的Web開發

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

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2149016/,如需轉載,請註明出處,否則將追究法律責任。

相關文章