全面介紹ASP.NET和JSP技術(shù)
JSP是了SUN公司推出的一種網(wǎng)絡(luò)編程語(yǔ)言,比較難學(xué)(是網(wǎng)上公認(rèn)的),跨平臺(tái)運(yùn)行.安全性比較高,運(yùn)行效率也比較的快.備受企業(yè)級(jí)的公司及銀行金融機(jī)構(gòu)使用.
ASP.NET 從某種意義上說應(yīng)該是ASP版本的升級(jí),但是它又不完全是從ASP上升級(jí)來的,ASP.NET的推出是微軟為了與SUN公司的JSP在網(wǎng)絡(luò)上的迅猛發(fā)展抵抗的,.NET架構(gòu)現(xiàn)在有許多人都在學(xué)習(xí),主要是開發(fā)的效率比較的高.但是還是基于WIN平臺(tái)運(yùn)行,不能跨平臺(tái).
JSP簡(jiǎn)介
jsp(JavaServer Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn),其網(wǎng)址為http://www.javasoft.com/prodUCts/jsp。該技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的Web頁(yè)面提供了一個(gè)簡(jiǎn)捷而快速的方法。JSP技術(shù)的設(shè)計(jì)目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。 JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。在傳統(tǒng)的網(wǎng)頁(yè)Html文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 email 等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求***,可以實(shí)現(xiàn)無(wú)Plugin,無(wú)ActiveX,無(wú)Java Applet,甚至無(wú)Frame。
JSP技術(shù)在多個(gè)方面加速了動(dòng)態(tài)Web頁(yè)面的開發(fā):
1.將內(nèi)容的生成和顯示進(jìn)行分離
使用JSP技術(shù),Web頁(yè)面開發(fā)人員可以使用HTML或者XML標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁(yè)面。使用JSP標(biāo)識(shí)或者小腳本來生成頁(yè)面上的動(dòng)態(tài)內(nèi)容(內(nèi)容是根據(jù)請(qǐng)求來變化的,例如請(qǐng)求帳戶信息或者特定的一瓶酒的價(jià)格)。生成內(nèi)容的邏輯被封裝在標(biāo)識(shí)和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識(shí)和Beans中,那么其他人,如Web管理人員和頁(yè)面設(shè)計(jì)者,能夠編輯和使用JSP頁(yè)面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識(shí)和小腳本,生成所請(qǐng)求的內(nèi)容(例如,通過訪問JavaBeans組件,使用JDBCTM技術(shù)訪問數(shù)據(jù)庫(kù),或者包含文件),并且將結(jié)果以HTML(或者XML)頁(yè)面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。
2.強(qiáng)調(diào)可重用的組件
絕大多數(shù) JSP頁(yè)面依賴于可重用的,跨平臺(tái)的組件(JavaBeans或者Enterprise JavaBeansTM組件)來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用。基于組件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。
3.采用標(biāo)識(shí)簡(jiǎn)化頁(yè)面開發(fā)
Web頁(yè)面開發(fā)人員不會(huì)都是熟悉腳本語(yǔ)言的編程人員。JavaServer Page技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識(shí)中進(jìn)行動(dòng)態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識(shí)能夠訪問和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼和耗時(shí)的功能。
通過開發(fā)定制化標(biāo)識(shí)庫(kù),JSP技術(shù)是可以擴(kuò)展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的標(biāo)識(shí)庫(kù)。這使得Web頁(yè)面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識(shí)一樣的執(zhí)行特定功能的構(gòu)件來工作。
JSP技術(shù)很容易整合到多種應(yīng)用體系結(jié)構(gòu)中,以利用現(xiàn)存的工具和技巧,并且擴(kuò)展到能夠支持企業(yè)級(jí)的分布式應(yīng)用。作為采用Java技術(shù)家族的一部分,以及Java 2(企業(yè)版體系結(jié)構(gòu))的一個(gè)組成部分,JSP技術(shù)能夠支持高度復(fù)雜的基于Web的應(yīng)用。
由于JSP頁(yè)面的內(nèi)置腳本語(yǔ)言是基于Java編程語(yǔ)言的,而且所有的JSP頁(yè)面都被編譯成為Java Servlet,JSP頁(yè)面就具有Java技術(shù)的所有好處,包括健壯的存儲(chǔ)管理和安全性。作為Java平臺(tái)的一部分,JSP擁有Java編程語(yǔ)言“一次編寫,各處運(yùn)行”的特點(diǎn)。隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,您可以使用自己所選擇的服務(wù)器和工具,更改工具或服務(wù)器并不影響當(dāng)前的應(yīng)用。當(dāng)與Java 2平臺(tái),企業(yè)版(J2EE)和Enterprise JavaBean技術(shù)整合時(shí),JSP頁(yè)面將提供企業(yè)級(jí)的擴(kuò)展性和性能,這對(duì)于在虛擬企業(yè)中部署基于Web的應(yīng)用是必需的。
4.技術(shù)分析
Microsoft 公司的 ASP 技術(shù)也是動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)技術(shù)。JSP和ASP從形式上非常相似,ASP程序員一眼就能認(rèn)出<% %>以及<%= %>。但是深入探究下去會(huì)發(fā)現(xiàn)它們很多的差別,其中最主要的有以下三點(diǎn):
1)、JSP的效率和安全性更高
ASP以源碼形式存放,以解釋方式運(yùn)行,每次ASP網(wǎng)頁(yè)調(diào)用都需要對(duì)源碼進(jìn)行解釋,運(yùn)行效率不高。另外,IIS的漏洞曾使得許多網(wǎng)站源程序大曝光,包括筆者以前用ASP開發(fā)的網(wǎng)站,ASP程序全部被人下載了去。JSP在執(zhí)行以前先被編譯成字節(jié)碼 (byte code),字節(jié)碼由Java虛擬機(jī) (Java Virtual Machine)解釋執(zhí)行,比源碼解釋的效率高;服務(wù)器上還有字節(jié)碼的Cache機(jī)制,能提高字節(jié)碼的訪問效率。***次調(diào)用 JSP網(wǎng)頁(yè)可能稍慢,因?yàn)樗痪幾g成Cache,以后就快得多了。同時(shí),JSP源程序不大可能被下載,特別是JavaBean程序完全可以放到不對(duì)外的目錄中。
2)、JSP的組件 (Component) 方式更方便
ASP通過COM來擴(kuò)充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或者復(fù)雜計(jì)算分離出來成為獨(dú)立可重復(fù)利用的模塊。JSP通過JavaBean實(shí)現(xiàn)了同樣的功能擴(kuò)充。在開發(fā)方面,COM的開發(fā)遠(yuǎn)比 JavaBean復(fù)雜和繁瑣,學(xué)會(huì)ASP不難,但學(xué)會(huì)開發(fā)COM可不簡(jiǎn)單。而JavaBean就簡(jiǎn)單多了,從本文上述示例中可以看出開發(fā)JavaBean 很方便。在維護(hù)方面,COM必須在服務(wù)器上注冊(cè),如果修改了COM程序,就必須重新注冊(cè),甚至必須關(guān)機(jī)和重新啟動(dòng)。JavaBean則不需要注冊(cè),放在CLASSPATH包含的目錄中就行了。如果 JavaBean進(jìn)行了修改,則JSWDK和Tomcat現(xiàn)在還需要關(guān)閉和重新運(yùn)行(但不是關(guān)機(jī)),但開發(fā)者已經(jīng)許諾將在以后的版本中做到不需要關(guān)閉服務(wù)器。另外JavaBean是完全的OOP,可以針對(duì)不同的業(yè)務(wù)處理功能方便地建立一整套可重復(fù)利用的對(duì)象庫(kù),例如用戶權(quán)限控制、email自動(dòng)回復(fù)等等。
3)、JSP的適應(yīng)平臺(tái)更廣
ASP目前僅適用于NT和IIS。雖然Unix下有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴(kuò)充,Unix下的COM實(shí)現(xiàn)起來非常困難。
ASP.NET
1.什么是ASP.net
ASP.net 是一種建立在通用語(yǔ)言上的程序構(gòu)架,能被用于一臺(tái)Web服務(wù)器來建立強(qiáng)大的Web應(yīng)用程序。ASP.net提供許多比現(xiàn)在的Web開發(fā)模式強(qiáng)大的的優(yōu)勢(shì)。
1)執(zhí)行效率的大幅提高
ASP.net是把基于通用語(yǔ)言的程序在服務(wù)器上運(yùn)行。不像以前的ASP即時(shí)解釋程序,而是將程序在服務(wù)器端***運(yùn)行時(shí)進(jìn)行編譯,這樣的執(zhí)行效果,當(dāng)然比一條一條的解釋強(qiáng)很多。
2)***的工具支持
ASP.net 構(gòu)架是可以用Microsoft(R)公司***的產(chǎn)品 Visual Studio.net開發(fā)環(huán)境進(jìn)行開發(fā),WYSIWYG(What You See Is What You Get所見即為所得)的編輯。這些僅是ASP.net強(qiáng)大化軟件支持的一小部分。
3)強(qiáng)大性和適應(yīng)性
因?yàn)锳SP.net是基于通用語(yǔ)言的編譯運(yùn)行的程序,所以它的強(qiáng)大性和適應(yīng)性,可以使它運(yùn)行在Web應(yīng)用軟件開發(fā)者的幾乎全部的平臺(tái)上(筆者到現(xiàn)在為止只知道它只能用在Windows 2000 Server上)。通用語(yǔ)言的基本庫(kù),消息機(jī)制,數(shù)據(jù)接口的處理都能無(wú)縫的整合到ASP.net的Web應(yīng)用中。ASP.net同時(shí)也是 language-independent語(yǔ)言獨(dú)立化的,所以,你可以選擇一種最適合你的語(yǔ)言來編寫你的程序,或者把你的程序用很多種語(yǔ)言來寫,現(xiàn)在已經(jīng)支持的有C#(C++和Java的結(jié)合體),VB,Jscript。將來,這樣的多種程序語(yǔ)言協(xié)同工作的能力保護(hù)您現(xiàn)在的基于COM+開發(fā)的程序,能夠完整的移植向ASP.net。
4)簡(jiǎn)單性和易學(xué)性
ASP.net是運(yùn)行一些很平常的任務(wù)如表單的提交客戶端的身份驗(yàn)證、分布系統(tǒng)和網(wǎng)站配置變得非常簡(jiǎn)單。例如ASP.net頁(yè)面構(gòu)架允許你建立你自己的用戶分界面,使其不同于常見的VB-Like界面。另外,通用語(yǔ)言簡(jiǎn)化開發(fā)使把代碼結(jié)合成軟件簡(jiǎn)單的就像裝配電腦。
5)高效可管理性
ASP.net使用一種字符基礎(chǔ)的,分級(jí)的配置系統(tǒng),使你服務(wù)器環(huán)境和應(yīng)用程序的設(shè)置更加簡(jiǎn)單。因?yàn)榕渲眯畔⒍急4嬖诤?jiǎn)單文本中,新的設(shè)置有可能都不需要啟動(dòng)本地的管理員工具就可以實(shí)現(xiàn)。這種被稱為"Zero Local Administration"的哲學(xué)觀念使Asp.net的基于應(yīng)用的開發(fā)更加具體,和快捷。一個(gè)ASP.net的應(yīng)用程序在一臺(tái)服務(wù)器系統(tǒng)的安裝只需要簡(jiǎn)單的拷貝一些必須得文件,不需要系統(tǒng)的重新啟動(dòng),一切就是這么簡(jiǎn)單。
6)多處理器環(huán)境的可靠性
ASP.net已經(jīng)被刻意設(shè)計(jì)成為一種可以用于多處理器的開發(fā)工具,它在多處理器的環(huán)境下用特殊的無(wú)縫連接技術(shù),將很大的提高運(yùn)行速度。即使你現(xiàn)在的 ASP.net應(yīng)用軟件是為一個(gè)處理器開發(fā)的,將來多處理器運(yùn)行時(shí)不需要任何改變都能提高他們的效能,但現(xiàn)在的ASP確做不到這一點(diǎn)。
7)自定義性,和可擴(kuò)展性
ASP.net設(shè)計(jì)時(shí)考慮了讓網(wǎng)站開發(fā)人員可以在自己的代碼中自己定義"plug-in"的模塊。這與原來的包含關(guān)系不同,ASP.net可以加入自己定義的如何組件。網(wǎng)站程序的開發(fā)從來沒有這么簡(jiǎn)單過。
8)安全性
基于Windows認(rèn)證技術(shù)和每應(yīng)用程序配置,你可以確性你的原程序時(shí)絕對(duì)安全的。(但是Asp的經(jīng)驗(yàn)告訴我們,不能這么自信,M$老是會(huì)出Bug的)
2.本篇教程的主要內(nèi)容
◆ASP.net 的語(yǔ)法
◆ASP.net 的語(yǔ)法有可能對(duì)老的ASP程序員來說很熟悉,但也有一些是全新的東西,QuickStart教程將在細(xì)節(jié)上全部談到它們。
◆ASP.net 的結(jié)構(gòu)和特征
◆介紹ASP.net的所有特性,是ASP開發(fā)者可以編寫交互性的***的應(yīng)用軟件,用比以前少的多時(shí)間和精力。
***話的練習(xí)
引用了一些練習(xí)題和如何回避在程序開發(fā)中潛在地容易犯的錯(cuò)誤的方法,是開發(fā)更加順利。
為那些人編寫的
如果你從來沒有開發(fā)過網(wǎng)站程序,那么這不適合你,你應(yīng)該至少掌握一些HTML語(yǔ)言和簡(jiǎn)單的Web開發(fā)術(shù)語(yǔ)。你不需要先前的ASP開發(fā)經(jīng)驗(yàn)(當(dāng)然有經(jīng)驗(yàn)更好),但是你必須了解交互式Web程序開發(fā)的概念,包含窗體,腳本,和數(shù)據(jù)接口的概念。
【編輯推薦】