上海網(wǎng)站建設(shè)JSP與PHP的比較:JSP利用了Java的跨平臺(tái)技術(shù),jsp開(kāi)發(fā)出的Web應(yīng)用能快速的部署在各個(gè)平臺(tái)上,從而可以一處編寫隨處運(yùn)行。它有效地利用了這個(gè)優(yōu)勢(shì),巧妙地將通用性、易用性、速度結(jié)合在一芯,所以Java迅速地在Web開(kāi)發(fā)人員當(dāng)中推廣開(kāi)來(lái)。在Java Bean. EJB. Java應(yīng)用服務(wù)器、Java事務(wù)服務(wù)器等這樣的強(qiáng)大后臺(tái)體系支撐下走向了真正成熟的應(yīng)用。
由于PHP的所有的擴(kuò)展接口都是獨(dú)立團(tuán)隊(duì)開(kāi)發(fā)完成的,網(wǎng)站制作同時(shí)在開(kāi)發(fā)時(shí)為了形成相應(yīng)數(shù)據(jù)的個(gè)性化操作,所以PHP雖然支持許多數(shù)據(jù)庫(kù),可是針對(duì)每種數(shù)據(jù)庫(kù)的開(kāi)發(fā)語(yǔ)言都完全不同。這樣形成針對(duì)一種數(shù)據(jù)庫(kù)的開(kāi)發(fā)工作,在數(shù)據(jù)庫(kù)進(jìn)行升級(jí)后需要開(kāi)發(fā)人員進(jìn)行幾乎全部的代碼更改工作。而為了讓應(yīng)用支持更多種的數(shù)據(jù)庫(kù),就需要開(kāi)發(fā)人員將同樣的數(shù)據(jù)庫(kù)操作使用不同的代碼寫出多種代碼庫(kù)出來(lái),使程序員的工作量大大增加。
PHP同JSP一樣具有跨平臺(tái)的能力,但是網(wǎng)站建設(shè)兩者的實(shí)現(xiàn)方式不同。JSP完全基于Java的跨平臺(tái)特性,架構(gòu)于Java虛擬機(jī)(JVM)之上。而PHP采用的是不同平臺(tái)之上里新編譯的方式,以適應(yīng)不同平臺(tái)之間的差異性。
可以認(rèn)為PHP是一個(gè)純粹的腳本編譯器,它是將腳本編譯成為需要執(zhí)行的函數(shù),再去執(zhí)行它們,整個(gè)系統(tǒng)以一種函數(shù)調(diào)用的方式進(jìn)行,除Windows外,外部擴(kuò)充不能由一些“動(dòng)態(tài)加載”的方式進(jìn)行,只能靜態(tài)地編譯進(jìn)PHP函數(shù)庫(kù)中。從中也就會(huì)明白為什么PHP需要支持這種或者那種擴(kuò)充功能時(shí)它一定要與相應(yīng)平臺(tái)的lib庫(kù)進(jìn)行再編譯的原因。這種方式的最大的好處就是最大化地利用了CPU和內(nèi)存,同時(shí)使用的是本地化的調(diào)用,從而達(dá)到了最快運(yùn)行速度。
PHP在UNIX/Linux下有著更好的編譯環(huán)境、更多的共享資源和更好的性能,Linux+Apache +PHP+MySQL成為許多人選擇的黃金組合。
PHP語(yǔ)法簡(jiǎn)單、書寫容易、是一種能快速學(xué)習(xí)、跨平臺(tái)、有良好數(shù)據(jù)庫(kù)交互能力的開(kāi)發(fā)語(yǔ)言。對(duì)于在Unix/Linux下做Web應(yīng)用的人是一種較好的選擇。
但是PHP安裝復(fù)雜。由于PHP的每一種擴(kuò)充模塊并不是完全由PHP本身來(lái)完成,需要許多外部的應(yīng)用庫(kù),如圖形需要扣庫(kù)、LDAP需要LDAP庫(kù)……這樣在安裝完成相應(yīng)的應(yīng)用后.再聯(lián)編進(jìn)PHP中來(lái)。這些都是一般開(kāi)發(fā)人員在使用PHP前所先要面對(duì)的問(wèn)題,正是這樣的問(wèn)題讓許多開(kāi)發(fā)人員轉(zhuǎn)而使用其他的開(kāi)發(fā)語(yǔ)言,畢竟UNIX沒(méi)有那么多用戶。
PHP沒(méi)有組件的支持。PHP所有的擴(kuò)充就只能依靠所給出的開(kāi)發(fā)接口.事實(shí)上這樣的接口還不夠多。網(wǎng)時(shí)難以將集群、應(yīng)用服務(wù)器這樣的特性加入到系統(tǒng)中去,而一個(gè)大型的站點(diǎn)或是一個(gè)企業(yè)級(jí)的應(yīng)用一定需要這樣的支持的。因此PHP難以開(kāi)發(fā)大型應(yīng)用。