3種Web開發(fā)主流技術(shù)ASP-PHP-JSP的評(píng)價(jià)[轉(zhuǎn)載] --希望給大家作為參考
發(fā)表時(shí)間:2023-07-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]三種主流技術(shù)是哪三種呢?我主要講一下ASP(ActiveX Server Page)、PHP、Java這三種技術(shù)。主要是基于我到現(xiàn)在已經(jīng)使用的以下產(chǎn)品而談:ASPMS IIS 4/Visuale I...
三種主流技術(shù)是哪三種呢?我主要講一下ASP(ActiveX Server Page)、PHP、Java這三
種技術(shù)。主要是基于我到現(xiàn)在已經(jīng)使用的以下產(chǎn)品而談:
ASP
MS IIS 4/Visuale Interdev 6
PHP
Apache 1.2.x/HomeSite 4.5/PHP 4
Java
iPlanet Web Server 4.1/JBuilder 3.5/JDK 1.2.2
以上技術(shù)本人卻實(shí)使用過,而且已經(jīng)使用它們做過項(xiàng)目,基于以前的工作經(jīng)驗(yàn)給初學(xué)者
和正在對(duì)自己應(yīng)用系統(tǒng)進(jìn)行選擇的同仁談?wù)勛约簩?duì)它們的評(píng)價(jià),以做參考,同時(shí)也請(qǐng)大
家提出自己的想法和意見 ,多交流。但是我有一個(gè)這樣的看法:“一個(gè)產(chǎn)品它存在就
有存在的理由,它不可能一無是處,而是需要你去選擇一個(gè)最合適你的技術(shù)、產(chǎn)品”。
一個(gè)好的技術(shù)要用在最合適它的地方,所以本文可以做為你參考的一個(gè)文章,而不會(huì)告
訴你任何一個(gè)技術(shù)的“最”。
ASP
我們先來談?wù)勊,因(yàn)锳SP是到現(xiàn)在開發(fā)人郡最廣的一個(gè)技術(shù)了,所以想來大家也會(huì)對(duì)
它最關(guān)注。ASP是一個(gè)近乎完美的想法,可是因?yàn)镸S一個(gè)大的環(huán)境的問題所以在一些方
面反回使它縮小在了一個(gè)小的框架中,如果它能更好的跳出這個(gè)框架,我想由它現(xiàn)在的
基礎(chǔ)將無人可比。
ASP更精確的說是一個(gè)中間件,這個(gè)中間件將Web上的請(qǐng)求轉(zhuǎn)入到一個(gè)解釋器中,在這個(gè)
解釋器中將所有的ASP的Script進(jìn)行分析,再進(jìn)行執(zhí)行,而這時(shí)可以在這個(gè)中間件中去
創(chuàng)建一個(gè)新的COM對(duì)象,對(duì)這個(gè)對(duì)象中的屬性和方法進(jìn)行操作和調(diào)用,同時(shí)再通過這些
COM組件再完成更多的工作。所以說,ASP強(qiáng)大的不在于它的VBScript, 而在于它后臺(tái)
的COM組件,這些組件來無限的擴(kuò)充了ASP的能力。
強(qiáng)勢(shì):
1、簡(jiǎn)單易學(xué)。Basic有誰不會(huì)?很少會(huì)有人舉手,所以有人在說這個(gè)開發(fā)基礎(chǔ)是最廣
的。而且MS有一向做的非常好的聯(lián)機(jī)手冊(cè),本地化語言的幫助,同時(shí)非?斓某霈F(xiàn)教學(xué)
書籍,這樣會(huì)大大方便開發(fā)人員的學(xué)習(xí)和對(duì)技術(shù)的深入研究。
2、安裝使用方便。裝好一個(gè)Windows 2000,只要你安裝了IIS哪么ASP就可以使用了,
從沒有什么需要你花心思去配置的。而說實(shí)話,ASP的調(diào)優(yōu)也不難做,而要做到最細(xì)時(shí)
也不是一般人能做的了的。
3、開發(fā)工具強(qiáng)大而多樣。這個(gè)我不用說了,可以說的就是我以前使用VB中的Web Class
開發(fā)出的Web應(yīng)用一點(diǎn)不差,當(dāng)時(shí)讓許多人大吃一驚,VB也能做ASP上的應(yīng)用。!其實(shí)
這正說明了ASP開發(fā)工具的多樣化,同時(shí)它們的功能也很強(qiáng),這一點(diǎn)已經(jīng)被許多程序員
所津津樂道。易用、簡(jiǎn)單、人性化,這本就是微軟的強(qiáng)項(xiàng)喲。
4、效率高。在低的訪問量下,ASP能體現(xiàn)出一定的效率,這時(shí)它對(duì)機(jī)器的要求并不高。
弱勢(shì):
1、Windows本身的所有問題都會(huì)一成不變的也累加到了它的身上。安全性、穩(wěn)定性、跨
平臺(tái)性(Win2K已經(jīng)不再支持Alpha了)都會(huì)因?yàn)榕cNT的捆綁而顯現(xiàn)出來。
2、ASP由于使用了COM組件所以它會(huì)變的十分強(qiáng)大,但是這樣的強(qiáng)大由于Windows NT系
統(tǒng)最初的設(shè)計(jì)問題而會(huì)引發(fā)大量的安全問題。只要在這樣的組件或是操作中一不注意,
哪么外部攻擊就可以取得相當(dāng)高的權(quán)限而.....
3、由于ASP還是一種Script語言所沒除了大量使用組件外,沒有辦法提高其工作效率。
它必須面對(duì)即時(shí)編繹的時(shí)間考驗(yàn),同時(shí)我們還不知其背后的組件會(huì)是一個(gè)什么樣的狀
況。
4、無法實(shí)現(xiàn)跨操作系統(tǒng)的應(yīng)用。當(dāng)然這也是微軟的理由之一,只有這樣才能發(fā)揮ASP最
佳的能力?墒俏覅s認(rèn)為正是Windows限制了ASP,ASP的概念本就是為一個(gè)能讓系統(tǒng)運(yùn)
行于一個(gè)大的多樣化環(huán)境而設(shè)計(jì)的。
5、還無法完全實(shí)現(xiàn)一些企業(yè)級(jí)的功能:完全的集郡、負(fù)載均橫。
總結(jié):
適用人群:
熟悉MS架構(gòu)的人員。想用最短的時(shí)間學(xué)習(xí),同時(shí)想用最簡(jiǎn)單的方式完成自己的應(yīng)用。
適用平臺(tái):
Windows系列平臺(tái)
適用應(yīng)用:
企業(yè)內(nèi)部管理信息系統(tǒng)、中小Internet應(yīng)用、快速數(shù)據(jù)庫開發(fā)的應(yīng)用。
學(xué)習(xí)方式:
IIS 4 Online Help(中文)
MSDN Lib相關(guān)知識(shí)
市場(chǎng)上眾多的ASP書籍
推薦開發(fā)工具:
Visual InterDev
Home Site
Front Page
推薦開發(fā)環(huán)境:
Windows 2000 Server
MS SQL
推薦應(yīng)用環(huán)境(最少):
Windows 2000 Server/MS SQL 7
PIII 500/256M RAM/18G HD
PHP
PHP是一個(gè)什么原因出現(xiàn)的呢?它是一個(gè)技術(shù)人員希望能用一個(gè)快速的方面來完成他自
己的個(gè)人主頁中的一個(gè)小應(yīng)用。而在他一發(fā)不可收時(shí)出現(xiàn)了php,它使一個(gè)人能在多種
操作系統(tǒng)下迅速的完成一個(gè)輕型的Web應(yīng)用。所以在短短的幾年里,php迅速的升級(jí)了它
的版本,同時(shí)在GNU的世界里找到了一個(gè)青梅竹馬的伙伴----Apache。這終于讓php有了
基礎(chǔ),能在一個(gè)最佳的環(huán)境中運(yùn)行,同時(shí)由于兩個(gè)產(chǎn)品都是公開源代碼的產(chǎn)品,所以大
家可以使用它們的源代碼將這兩個(gè)產(chǎn)品用最完美的方式結(jié)合到一起,使用起來就如一個(gè)
產(chǎn)品一樣。個(gè)人認(rèn)為php是自由軟件在web應(yīng)用平臺(tái)上一個(gè)決勝的工具,如果沒有php的
出現(xiàn),還會(huì)有許多人認(rèn)為自由軟件就代表了對(duì)開發(fā)人員的高技術(shù)要求、難記的代碼、復(fù)
雜的工具.....php使一個(gè)會(huì)使用basic的人員在極短的時(shí)間里快迅學(xué)習(xí)并完成用戶需要
的應(yīng)用。
怎么說php呢?如果說ASP是一個(gè)COM,哪么php說的更精確了可以說php是一個(gè)純粹的
Script翻譯器。這也是php由3升級(jí)為4的一個(gè)重大原因,在4這個(gè)版本里它重寫了語法分
析器,從而加快了php整體的效能。而且從中你也就會(huì)明白為什么php需要支持這種或是
哪種擴(kuò)充功能時(shí)它一定要與相應(yīng)系統(tǒng)的lib庫進(jìn)行再編繹的原因。正因?yàn)樗钦诘?br>“翻譯器”,所以它是將script翻譯成為需要執(zhí)行的函數(shù),再去執(zhí)行它們,外部擴(kuò)充不
能由一些“動(dòng)態(tài)加載”的方式進(jìn)行,所以只能靜態(tài)的編繹進(jìn)php中(這只能在windows中
除外)。
強(qiáng)勢(shì):
1、一種能快速學(xué)習(xí)、跨平臺(tái)、有良好數(shù)據(jù)庫交互能力的開發(fā)語言。ASP比不上它的就是
這種跨平臺(tái)能力了,而正是它的這種能力讓Unix/Linux有了一種與ASP媲美的開發(fā)語
言。語法簡(jiǎn)單、書寫容易、現(xiàn)在市面上也有了大量的書,同時(shí)Internet上也有大量的代
碼可以共享,對(duì)于一個(gè)初學(xué)者想學(xué)些“高深的Unix”下的開發(fā)來說是一個(gè)決好的入手
點(diǎn)。
2、與Apache及其它擴(kuò)展庫結(jié)合緊密。php與Apache可以以靜態(tài)編繹的方式結(jié)合起來,而
與其它的擴(kuò)展庫也可以用這樣的方式結(jié)合(除外的就是Windows平臺(tái)了)。這樣的方式
的最大的好處就是最大化的利用了cpu時(shí)和內(nèi)存,同時(shí)極為有效的利用了apache的高性
能的吞吐能力。同時(shí)外部的擴(kuò)展也是靜態(tài)連編,從而達(dá)到了最快的運(yùn)行速度。由于與數(shù)
據(jù)庫的接口也使用了這樣的方式,所以使用的是本地化的調(diào)用,這也讓數(shù)據(jù)庫發(fā)揮了最
佳效能。
3、良好的安全性。由于php本身的代碼開放所以它的代碼在許多工程師手中進(jìn)行了檢
測(cè),同時(shí)它與apache編繹在一起的方式也可以讓它具有靈活的安全設(shè)定。所以到現(xiàn)在為
止,php具有了公認(rèn)的安全性能。
弱勢(shì):
1、數(shù)據(jù)庫支持的極大變化。由于php的所有的擴(kuò)展接口都是獨(dú)立團(tuán)隊(duì)開發(fā)完成的,同時(shí)
在開發(fā)時(shí)為了形成相應(yīng)數(shù)據(jù)的個(gè)性化操作,所以php雖然支持許多數(shù)據(jù)庫,可是針對(duì)每
種數(shù)據(jù)庫的開發(fā)語言都完全不同。這樣形成針對(duì)一種數(shù)據(jù)庫的工發(fā)工作,在數(shù)據(jù)庫進(jìn)行
升級(jí)后需要開發(fā)人員進(jìn)行幾乎全部的代碼更改工作。而為了讓應(yīng)用支持更多種的數(shù)據(jù)
庫,就需要開發(fā)人員將同樣的數(shù)據(jù)庫操作使用不同的代碼寫出n種代碼庫出來,讓程序
員的工作量大大增大。
2、安裝復(fù)雜。由于php的每一種擴(kuò)充模塊并不是完全由php本身來完成,需要許多外部
的應(yīng)用庫,如圖形需要gd庫、LDAP需要LDAP庫......這樣在安裝完成相應(yīng)的應(yīng)用后,再
聯(lián)編進(jìn)php中來。這也就是我以前在代碼聯(lián)盟新聞組中對(duì)網(wǎng)友所說的一定要在
FreeBSD/Linux/Unix下運(yùn)行php的原因。只有在這些環(huán)境下才能方便的編繹對(duì)應(yīng)的擴(kuò)展
庫。這些都是一般開發(fā)人員在使用php前所先要面對(duì)的問題,正是這樣的問題讓許多開
發(fā)人員轉(zhuǎn)而使用其它的開發(fā)語言,必竟Unix沒有哪么多的用戶。
3、缺少企業(yè)級(jí)的支持。沒有組件的支持,哪么所有的擴(kuò)充就只能依靠php開發(fā)組所給出
的接口,事實(shí)上這樣的接口還不夠多。同時(shí)難以將集群、應(yīng)用服務(wù)器這樣的特性加入到
系統(tǒng)中去。而一個(gè)大型的站點(diǎn)或是一個(gè)企業(yè)級(jí)的應(yīng)用一定需要這樣的支持的。注:在
php的4.0版本以后加入了對(duì)servlet/javabean的支持,也許這樣的支持會(huì)在以后的版本
中更加增強(qiáng),也許這樣的支持會(huì)是php以后的企業(yè)級(jí)支持的起點(diǎn)。
4、缺少正規(guī)的商業(yè)支持。這也是自由軟件一向的缺點(diǎn),我想在國內(nèi)php的開發(fā)人員正在
快速增加,相信在不久的將來,這樣的支持能多起來。
5、無法實(shí)現(xiàn)商品化應(yīng)用的開發(fā)。由于php沒有任何編繹性的開發(fā)工作,所有的開發(fā)都是
基于腳本技術(shù)來完成的。所以所有的源代碼都無法編譯,所以做完成的應(yīng)用只能是自己
或是內(nèi)部使用,無法實(shí)現(xiàn)商品化。
總結(jié):
適用人群:
熟悉Unix環(huán)境,需要在最少的投入下完成快速的應(yīng)用開發(fā)。
適用平臺(tái):
FreeBSD/Linux/Unix操作系統(tǒng)、Apache服務(wù)器
適用應(yīng)用:
Internet高訪問量、快速數(shù)據(jù)庫開發(fā)的應(yīng)用。
學(xué)習(xí)方式:
Internet上國內(nèi)豐富的資源
Internet上豐富的源代碼資源,完全可以參考這樣的例程來完成自己的應(yīng)用。
市場(chǎng)上最近出版的好幾本php手冊(cè)
推薦開發(fā)工具:
Home Site
PHPEd
推薦開發(fā)環(huán)境:
FreeBSD 4.1/RedHat 6.1操作系統(tǒng)
Apache 1.3.12
MySQL 3.22
P 200/64M RAM/9G HD
推薦應(yīng)用環(huán)境(最少):
FreeBSD 3.5/MySQL 3.22/Apache 1.3.12
P 200/128M RAM/9G HD
推薦應(yīng)用環(huán)境(最佳):
FreeBSD 3.5/Sybase 11/Apache 1.3.12
P III 500/512M RAM/18G HD
JSP
JSP又是什么原因出現(xiàn)的呢?Java在推向開發(fā)人員時(shí)出現(xiàn)了重重困難,首先是Java缺少
主流系統(tǒng)的廣泛支持,而在所有的平臺(tái)和技術(shù)上都缺少可以直接參照的應(yīng)用方式。這時(shí)
java就走向了在各個(gè)應(yīng)用層上的積極進(jìn)取,在自己擅長的與不擅長的領(lǐng)域都走出了堅(jiān)定
的腳步。其中最讓W(xué)eb技術(shù)人員興奮的就是Java Servlet的出現(xiàn)和JSP的漸漸成熟,這一
步步都讓Java正式的走向了Web開發(fā)技術(shù)的舞臺(tái)。Java利用了它的跨平臺(tái)技術(shù),使java
的應(yīng)用能快速的部署在各個(gè)平臺(tái)上,而真的可以一處編寫隨處運(yùn)行。它有較的利用了這
個(gè)優(yōu)勢(shì),巧妙的將java的通用性、jsp的易用性、servlet的速度結(jié)合在一起,利用平臺(tái)
部署上的技巧有效的屏蔽java的速度問題,所以Java迅速的在Web開發(fā)人員的團(tuán)員中推
廣開來。攜著Java Bean、EJB、Java Application Server、Java事務(wù)服務(wù)器等這樣的
強(qiáng)大后臺(tái)走向了真正的成熟應(yīng)用。
Jsp到底是一個(gè)什么樣的語言呢?實(shí)際上JSP就是Java,只是它是一個(gè)特別的Java語言,
加入了一個(gè)特殊的引擎,這個(gè)引擎將HTTPServlet這個(gè)類的一些對(duì)象自動(dòng)進(jìn)行初始化好
讓用戶使用,而用戶不用再去操心前面的工作。同時(shí)這個(gè)引擎又引入了〈jsp:*、〈%@等
一系列的特別語法,使用這些語法來進(jìn)行一些特定的操作,如引用文件、URL轉(zhuǎn)向、
JavaBean引用等這樣的操作,這些都是由引擎自動(dòng)幫你完成初始化的工作。我們可以將
這個(gè)引擎看作一個(gè)Jsp到Java Servlet的生成器或是翻譯器,讓用戶不用再面對(duì)復(fù)雜的
Servlet中的還沒開始工作就要寫的幾十行代碼。這就是JSP---一個(gè)Java Servlet生成
器。JSP-〉Java Servlet Code(.java文件)-〉Java Runtime Bin Code(.class文件),這
就是為什么我們第一次運(yùn)行JSP時(shí)CPU運(yùn)行能達(dá)到很高的原因,它實(shí)際上是調(diào)用了jsp引
擎來生成java文件,再用javac來編譯它到class文件,這才能去執(zhí)行它。同時(shí)也說明了
在第一次運(yùn)行以后,速度為什么哪么快的原因,只要這個(gè)jsp文件不改變哪么這個(gè)操作
就不再會(huì)進(jìn)行了(除非你刪除了class文件)。所以說,java有什么jsp就有什么樣的功
能,與asp一樣,jsp的真正力量是我們永遠(yuǎn)看不到頭的!
強(qiáng)勢(shì):
1、一處編寫隨入運(yùn)行。這是一個(gè)程序員的夢(mèng)想,也是從前的程序員的惡夢(mèng),為了在不
同的平臺(tái)間運(yùn)行,使許多程序員一行行的重寫代碼。在這一點(diǎn)上java已經(jīng)給了我最完美
的答案它做的要比php更出色,除了系統(tǒng)之外,你的代碼不用做一點(diǎn)更改的。
2、系統(tǒng)的多臺(tái)平支持。我已經(jīng)在差不多所有平臺(tái)上見到了一致的java servlet/jsp的
Web Server/Application Server......系統(tǒng)它可以讓你在任意環(huán)境做開發(fā),在任意環(huán)
境進(jìn)行系統(tǒng)部署,在任意環(huán)境擴(kuò)展。相比asp/php的局限性是顯面易見的。
3、強(qiáng)大的的可伸縮性。從只有一個(gè)小的jar文件就可以運(yùn)行servlet/jsp到由多臺(tái)服務(wù)
器進(jìn)行集群和負(fù)載均橫,到多臺(tái)Application進(jìn)行事務(wù)處理、消息處理......一臺(tái)服務(wù)
器到無數(shù)以服務(wù)器,Java顯示了一個(gè)巨人的生命力。
4、多樣化和功能強(qiáng)大的開發(fā)工具支持。這一點(diǎn)與asp很像,java已經(jīng)有了許多非常優(yōu)秀
的開發(fā)工具而且有許多可以免費(fèi)得到,并且其中的許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)
之下。如果你細(xì)心的使用它們會(huì)發(fā)現(xiàn)比自己第一面看到它們時(shí)的功能要強(qiáng)大的多。
弱勢(shì):
1、與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問題所在。正是由于為了跨平臺(tái)的功能,
為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。這么說,它在擴(kuò)展時(shí)需要的分
成多少塊,哪么java系統(tǒng)中就有多少種產(chǎn)品。所以你要以看到j(luò)re、jdk、jsdk、
jswdk......,實(shí)際上它們只要有效的搭配在一起,就可以產(chǎn)生強(qiáng)大的效能,密不可
分,但是對(duì)于一位初學(xué)者來說:“有沒有搞錯(cuò)!難道讓我運(yùn)行一個(gè)jsp就要這么多亂七
八糟的東西!”
2、從出現(xiàn)的第一天起就被對(duì)手痛罵的:“慢如老!薄U娴,我在第一次運(yùn)行我的jsp
時(shí),我竟然以為我的機(jī)器死機(jī)而將哪個(gè)進(jìn)程給kill了!第一次編繹、運(yùn)行對(duì)于使用者來
說真是一場(chǎng)惡夢(mèng),在開發(fā)時(shí)我經(jīng)常晚上做夢(mèng)在看WinNT的任務(wù)管理器CPU格全綠時(shí)等著降
下來的樣子和感覺。
3、技巧還是技巧。一個(gè)短處就一定要付出代價(jià)的。Java的運(yùn)行速度是用將class常駐內(nèi)
存來完成的,所以它在一些情況下所使用的內(nèi)存比起用戶數(shù)量來說卻實(shí)是“最低性能價(jià)
格比”了。另一方面來說,它還需要硬盤空間來存儲(chǔ)一系列的.java文件和.class文件
以及對(duì)應(yīng)的版本文件。
4、缺少系統(tǒng)性的資料。這也許不該說,但是sun在國內(nèi)做的卻實(shí)很差勁,java的資烊在
國內(nèi)極少,到現(xiàn)在我還沒有在書店里看到一本jsp的書,而對(duì)java體系的論述書更是少
而又少,與java相關(guān)的書(中文版)到現(xiàn)在不過三位數(shù)。而再看看之中大量的具然還在
講Visual J++或是Java 1.1這樣的陣年舊貨。
總結(jié):
適用人群:
具有較強(qiáng)學(xué)習(xí)能力和耐心的開發(fā)人員。投入低但是希望擁有較大的伸縮能力的應(yīng)用。
適用平臺(tái):
........(太多而只不再一一列說)
適用應(yīng)用:
Internet/Intranet高可靠性應(yīng)用、Internet/Intranet與Client/Server結(jié)合的應(yīng)用系
統(tǒng)
學(xué)習(xí)方式:
Java的Doc文檔和java站點(diǎn)中的一系文檔
Internet的源代碼資源
(對(duì)不起大家,真的不能提出更好的見議了,再有的就是大家的能力和運(yùn)氣,以及
Inetnet上網(wǎng)友的幫助了)
推薦開發(fā)工具:
JBuilder
Visual Age for java(這個(gè)我沒用過,但是有人強(qiáng)力推薦)
Sun Forte for Java
KAWA
推薦開發(fā)環(huán)境:
Windows NT/Windows 2000開發(fā)系統(tǒng)
JBuilder 3.5(它能成為Web Server,甚至不再需要其它的工具)
Tomcat 3.1
JDK 1.3(可以不安裝)
Access 2000
P II 266/128M RAM/9G HD
推薦應(yīng)用環(huán)境(最少):
RedHat Linux 6.2/MySQL 3.22/Apache 1.3.12/Tomcat 3.1/JDK 1.3Beta
PIII 500/512M RAM/9G HD
推薦應(yīng)用環(huán)境(最佳):
Solaris 8/Sybase 11/iPlanet Enterprise Web Server 4.1/JDK 1.3Beta
Sun Netra T1/1G RAM/18G HD