明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線(xiàn)學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

3種Web開(kāi)發(fā)主流技術(shù)的評(píng)價(jià)之JSP

[摘要]JSP又是什么原因出現(xiàn)的呢?Java在推向開(kāi)發(fā)人員時(shí)出現(xiàn)了重重困難,首先是Java缺少主流系統(tǒng)的廣泛支持,而在所有的平臺(tái)和技術(shù)上都缺少可以直接參照的應(yīng)用方式。這時(shí)java就走向了在各個(gè)應(yīng)用層上的積極進(jìn)取,在自己擅長(zhǎng)的與不擅長(zhǎng)的領(lǐng)域都走出了堅(jiān)定的腳步。其中最讓W(xué)eb技術(shù)人員興奮的就是Java Ser...
JSP又是什么原因出現(xiàn)的呢?Java在推向開(kāi)發(fā)人員時(shí)出現(xiàn)了重重困難,首先是Java缺少主流系統(tǒng)的廣泛支持,而在所有的平臺(tái)和技術(shù)上都缺少可以直接參照的應(yīng)用方式。這時(shí)java就走向了在各個(gè)應(yīng)用層上的積極進(jìn)取,在自己擅長(zhǎng)的與不擅長(zhǎng)的領(lǐng)域都走出了堅(jiān)定的腳步。其中最讓W(xué)eb技術(shù)人員興奮的就是Java Servlet的出現(xiàn)和JSP的漸漸成熟,這一步步都讓Java正式的走向了Web開(kāi)發(fā)技術(shù)的舞臺(tái)。Java利用了它的跨平臺(tái)技術(shù),使java的應(yīng)用能快速的部署在各個(gè)平臺(tái)上,而真的可以一處編寫(xiě)隨處運(yùn)行。它有較的利用了這個(gè)優(yōu)勢(shì),巧妙的將java的通用性、jsp的易用性、servlet的速度結(jié)合在一起,利用平臺(tái)部署上的技巧有效的屏蔽java的速度問(wèn)題,所以Java迅速的在Web開(kāi)發(fā)人員的團(tuán)員中推廣開(kāi)來(lái)。攜著Java Bean、EJB、Java Application Server、Java事務(wù)服務(wù)器等這樣的強(qiáng)大后臺(tái)走向了真正的成熟應(yīng)用。

  Jsp到底是一個(gè)什么樣的語(yǔ)言呢?實(shí)際上JSP就是Java,只是它是一個(gè)特別的Java語(yǔ)言,加入了一個(gè)特殊的引擎,這個(gè)引擎將HTTPServlet這個(gè)類(lèi)的一些對(duì)象自動(dòng)進(jìn)行初始化好讓用戶(hù)使用,而用戶(hù)不用再去操心前面的工作。同時(shí)這個(gè)引擎又引入了<jsp:*、<%@等一系列的特別語(yǔ)法,使用這些語(yǔ)法來(lái)進(jìn)行一些特定的操作,如引用文件、URL轉(zhuǎn)向、JavaBean引用等這樣的操作,這些都是由引擎自動(dòng)幫你完成初始化的工作。我們可以將這個(gè)引擎看作一個(gè)Jsp到Java Servlet的生成器或是翻譯器,讓用戶(hù)不用再面對(duì)復(fù)雜的Servlet中的還沒(méi)開(kāi)始工作就要寫(xiě)的幾十行代碼。這就是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引擎來(lái)生成java文件,再用javac來(lái)編譯它到class文件,這才能去執(zhí)行它。同時(shí)也說(shuō)明了在第一次運(yùn)行以后,速度為什么哪么快的原因,只要這個(gè)jsp文件不改變哪么這個(gè)操作就不再會(huì)進(jìn)行了(除非你刪除了class文件)。所以說(shuō),java有什么jsp就有什么樣的功能,與asp一樣,jsp的真正力量是我們永遠(yuǎn)看不到頭的!

  強(qiáng)勢(shì):

  1、一處編寫(xiě)隨處運(yùn)行。這是一個(gè)程序員的夢(mèng)想,也是從前的程序員的惡夢(mèng),為了在不同的平臺(tái)間運(yùn)行,使許多程序員一行行的重寫(xiě)代碼。在這一點(diǎn)上java已經(jīng)給了我最完美的答案它做的要比php更出色,除了系統(tǒng)之外,你的代碼不用做一點(diǎn)更改的。

  2、系統(tǒng)的多臺(tái)平支持。我已經(jīng)在差不多所有平臺(tái)上見(jiàn)到了一致的java servlet/jsp的Web Server/Application Server……系統(tǒng)它可以讓你在任意環(huán)境做開(kāi)發(fā),在任意環(huán)境進(jìn)行系統(tǒng)部署,在任意環(huán)境擴(kuò)展。相比asp/php的局限性是顯面易見(jiàn)的。

  3、強(qiáng)大的的可伸縮性。從只有一個(gè)小的jar文件就可以運(yùn)行servlet/jsp到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均橫,到多臺(tái)Application進(jìn)行事務(wù)處理、消息處理......一臺(tái)服務(wù)器到無(wú)數(shù)以服務(wù)器,Java顯示了一個(gè)巨人的生命力。

  4、多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。這一點(diǎn)與asp很像,java已經(jīng)有了許多非常優(yōu)秀的開(kāi)發(fā)工具而且有許多可以免費(fèi)得到,并且其中的許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。如果你細(xì)心的使用它們會(huì)發(fā)現(xiàn)比自己第一面看到它們時(shí)的功能要強(qiáng)大的多。

  弱勢(shì):

  1、與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。正是由于為了跨平臺(tái)的功能,為了極度的伸縮能力,所以極大的增加了產(chǎn)品的復(fù)雜性。這么說(shuō),它在擴(kuò)展時(shí)需要的分成多少塊,哪么java系統(tǒng)中就有多少種產(chǎn)品。所以你要以看到j(luò)re、jdk、jsdk、jswdk……,實(shí)際上它們只要有效的搭配在一起,就可以產(chǎn)生強(qiáng)大的效能,密不可分,但是對(duì)于一位初學(xué)者來(lái)說(shuō):“有沒(méi)有搞錯(cuò)!難道讓我運(yùn)行一個(gè)jsp就要這么多亂七八糟的東西!”

  2、從出現(xiàn)的第一天起就被對(duì)手痛罵的:“慢如老!。真的,我在第一次運(yùn)行我的jsp時(shí),我竟然以為我的機(jī)器死機(jī)而將哪個(gè)進(jìn)程給kill了!第一次編繹、運(yùn)行對(duì)于使用者來(lái)說(shuō)真是一場(chǎng)惡夢(mèng),在開(kāi)發(fā)時(shí)我經(jīng)常晚上做夢(mèng)在看WinNT的任務(wù)管理器CPU格全綠時(shí)等著降下來(lái)的樣子和感覺(jué)。

  3、技巧還是技巧。一個(gè)短處就一定要付出代價(jià)的。Java的運(yùn)行速度是用將class常駐內(nèi)存來(lái)完成的,所以它在一些情況下所使用的內(nèi)存比起用戶(hù)數(shù)量來(lái)說(shuō)卻實(shí)是“最低性能價(jià)格比”了。另一方面來(lái)說(shuō),它還需要硬盤(pán)空間來(lái)存儲(chǔ)一系列的.java文件和.class文件以及對(duì)應(yīng)的版本文件。

  4、缺少系統(tǒng)性的資料。這也許不該說(shuō),但是sun在國(guó)內(nèi)做的卻實(shí)很差勁,java的資烊在國(guó)內(nèi)極少,到現(xiàn)在我還沒(méi)有在書(shū)店里看到一本jsp的書(shū),而對(duì)java體系的論述書(shū)更是少而又少,與java相關(guān)的書(shū)(中文版)到現(xiàn)在不過(guò)三位數(shù)。而再看看之中大量的具然還在講Visual J++或是Java 1.1這樣的陣年舊貨。

  總結(jié):

  適用人群:具有較強(qiáng)學(xué)習(xí)能力和耐心的開(kāi)發(fā)人員。投入低但是希望擁有較大的伸縮能力的應(yīng)用。

  適用平臺(tái):……(太多而只不再一一列說(shuō))適用應(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)友的幫助了)

  推薦開(kāi)發(fā)工具:JBuilder/Visual Age for java(這個(gè)我沒(méi)用過(guò),但是有人強(qiáng)力推薦)/Sun Forte for JavaKAWA

  推薦開(kāi)發(fā)環(huán)境:Windows NT/Windows 2000開(kāi)發(fā)系統(tǒng)JBuilder 3.5(它能成為Web Server,甚至不再需要其它的工具)Tomcat 3.1JDK 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