




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū)題 目: ASP.NET技術(shù)在網(wǎng)站設(shè)計(jì)中的研究與開(kāi)發(fā) 畢業(yè)設(shè)計(jì)(論文)中文摘要ASP.NET技術(shù)在網(wǎng)站開(kāi)發(fā)設(shè)計(jì)中的研究與開(kāi)發(fā)摘 要:基于Microsoft . NET環(huán)境的ASP. NET技術(shù),為開(kāi)發(fā)功能強(qiáng)大的動(dòng)態(tài)網(wǎng)站提供了一種簡(jiǎn)單、高效的途徑。正文闡述的是ASP. NET作為一種全新的動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)技術(shù),它是通過(guò)大量使用組件技術(shù),將Web瀏覽器與Web服務(wù)器之間的網(wǎng)絡(luò)通信完全的包裝起來(lái),在ASP. NET中,動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)技術(shù)已經(jīng)變?yōu)槔媒M件搭建“基于Web的應(yīng)用程序”。論文還闡述了網(wǎng)站開(kāi)發(fā)技術(shù)的現(xiàn)狀,通過(guò)對(duì)各個(gè)技術(shù)的系統(tǒng)比較從而對(duì)ASP.NET技術(shù)做了較深入的研究,并結(jié)合
2、研究情況開(kāi)發(fā)設(shè)計(jì)了一個(gè)網(wǎng)上書(shū)店系統(tǒng)。該系統(tǒng)的基本功能已實(shí)現(xiàn),普通用戶進(jìn)入系統(tǒng)后,可以查看商品信息,并購(gòu)買(mǎi)商品;管理員可以添加新的商品信息并可以確認(rèn)核實(shí)客戶提交的訂單。關(guān)鍵詞:ASP.NET 動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)技術(shù) 組件 網(wǎng)上書(shū)店畢業(yè)設(shè)計(jì)(論文)外文摘要Development and Research of ASP.NET Technology in Designing Web SiteAbstract: ASP.NET technology based on Microsoft.NET environment provides a simple, effective means to establi
3、sh multifunctional, dynamic web sites.This thesis is about ASP.NET a whole new technology to establish dynamic web sites. By using plentiful component technologies, packs it up the network communications between Web Explorer and Web Server. In ASP.NET, the technologies of establishing dynamic web si
4、tes are turning to build applications based-on web by component. And, this thesis also accounts for the actuality of web development technology. I made an in-depth study by comparing with various skills, and then designed a system of bookstore online. All the basic functions of the system have been
5、achieved. A common user enter the system, he could browse commodity information and purchase. Administrator can add new commodities and verify bills that clients made.Keywords: ASP.NET; Dynamic website developing technology; Component; Bookstore online目 錄 TOC o 1-3 h z t 畢業(yè)設(shè)計(jì)(論文)1級(jí)標(biāo)題,1,畢業(yè)設(shè)計(jì)(論文)2級(jí)標(biāo)題,
6、2,畢業(yè)設(shè)計(jì)(論文)3級(jí)標(biāo)題,3,畢業(yè)設(shè)計(jì)(論文)參考文獻(xiàn)正文,1,畢業(yè)設(shè)計(jì)(論文)結(jié)論、致謝、參考文獻(xiàn)標(biāo)題,1 HYPERLINK l _Toc138403560 1 引言 PAGEREF _Toc138403560 h 1 HYPERLINK l _Toc138403561 1.1 問(wèn)題定義與內(nèi)容簡(jiǎn)介 PAGEREF _Toc138403561 h 1 HYPERLINK l _Toc138403562 1.2 研究背景及研究意義 PAGEREF _Toc138403562 h 1 HYPERLINK l _Toc138403563 1.3 可行性分析 PAGEREF _Toc138403
7、563 h 2 HYPERLINK l _Toc138403564 1.3.1 技術(shù)可行性研究 PAGEREF _Toc138403564 h 2 HYPERLINK l _Toc138403565 1.3.2 經(jīng)濟(jì)可行性研究 PAGEREF _Toc138403565 h 3 HYPERLINK l _Toc138403566 1.4 論文各章內(nèi)容介紹 PAGEREF _Toc138403566 h 3 HYPERLINK l _Toc138403567 2 課題研究分析 PAGEREF _Toc138403567 h 4 HYPERLINK l _Toc138403568 2.1 網(wǎng)站開(kāi)發(fā)
8、技術(shù)研究 PAGEREF _Toc138403568 h 4 HYPERLINK l _Toc138403569 2.1.1 WEB開(kāi)發(fā)技術(shù)的發(fā)展 PAGEREF _Toc138403569 h 4 HYPERLINK l _Toc138403570 2.1.2 技術(shù)比較 PAGEREF _Toc138403570 h 5 HYPERLINK l _Toc138403571 2.1.3 ASP.NET技術(shù)研究 PAGEREF _Toc138403571 h 7 HYPERLINK l _Toc138403573 2.2 ASP.NET技術(shù)在實(shí)例中的應(yīng)用 PAGEREF _Toc13840357
9、3 h 10 HYPERLINK l _Toc138403574 2.2.1 ASP.NET內(nèi)置對(duì)象的應(yīng)用 PAGEREF _Toc138403574 h 10 HYPERLINK l _Toc138403575 2.2.2 頁(yè)面控件的應(yīng)用 PAGEREF _Toc138403575 h 12 HYPERLINK l _Toc138403576 2.3 ASP.NET開(kāi)發(fā)工具 PAGEREF _Toc138403576 h 16 HYPERLINK l _Toc138403577 3 ASP.NET開(kāi)發(fā)網(wǎng)站應(yīng)用示例 PAGEREF _Toc138403577 h 18 HYPERLINK l
10、_Toc138403578 3.1 方案研究 PAGEREF _Toc138403578 h 18 HYPERLINK l _Toc138403579 3.2 業(yè)務(wù)流分析 PAGEREF _Toc138403579 h 18 HYPERLINK l _Toc138403580 3.3 數(shù)據(jù)流分析 PAGEREF _Toc138403580 h 19 HYPERLINK l _Toc138403581 3.4 數(shù)據(jù)字典 PAGEREF _Toc138403581 h 21 HYPERLINK l _Toc138403582 3.4.1 數(shù)據(jù)流分量(即數(shù)據(jù)元素) PAGEREF _Toc13840
11、3582 h 21 HYPERLINK l _Toc138403583 3.4.2 數(shù)據(jù)流 PAGEREF _Toc138403583 h 21 HYPERLINK l _Toc138403584 3.4.3 數(shù)據(jù)存儲(chǔ) PAGEREF _Toc138403584 h 22 HYPERLINK l _Toc138403585 3.4.4 數(shù)據(jù)處理 PAGEREF _Toc138403585 h 22 HYPERLINK l _Toc138403586 4 系統(tǒng)設(shè)計(jì)及各功能模塊的實(shí)現(xiàn) PAGEREF _Toc138403586 h 24 HYPERLINK l _Toc138403587 4.1
12、系統(tǒng)設(shè)計(jì) PAGEREF _Toc138403587 h 24 HYPERLINK l _Toc138403588 4.1.1 系統(tǒng)總體功能結(jié)構(gòu) PAGEREF _Toc138403588 h 24 HYPERLINK l _Toc138403589 4.1.2 系統(tǒng)數(shù)據(jù)模型設(shè)計(jì) PAGEREF _Toc138403589 h 24 HYPERLINK l _Toc138403590 4.2 詳細(xì)設(shè)計(jì) PAGEREF _Toc138403590 h 29 HYPERLINK l _Toc138403591 4.2.1 商品瀏覽模塊 PAGEREF _Toc138403591 h 29 HYPE
13、RLINK l _Toc138403592 4.2.2 商品查詢模塊 PAGEREF _Toc138403592 h 30 HYPERLINK l _Toc138403593 4.2.3 購(gòu)買(mǎi)商品(購(gòu)物車(chē))功能模塊 PAGEREF _Toc138403593 h 31 HYPERLINK l _Toc138403594 4.2.4 訂單結(jié)算功能模塊 PAGEREF _Toc138403594 h 33 HYPERLINK l _Toc138403595 4.2.5 用戶查看所有訂單功能模塊 PAGEREF _Toc138403595 h 33 HYPERLINK l _Toc138403596
14、 4.2.6 管理員添加商品功能模塊 PAGEREF _Toc138403596 h 34 HYPERLINK l _Toc138403597 4.2.7 管理員查看訂單功能模塊 PAGEREF _Toc138403597 h 35 HYPERLINK l _Toc138403598 5 應(yīng)用演示 PAGEREF _Toc138403598 h 37 HYPERLINK l _Toc138403599 5.1 用戶部分 PAGEREF _Toc138403599 h 37 HYPERLINK l _Toc138403600 5.2 管理員部分 PAGEREF _Toc138403600 h 3
15、8 HYPERLINK l _Toc138403601 6 研究成果評(píng)價(jià) PAGEREF _Toc138403601 h 40 HYPERLINK l _Toc138403602 6.1 研究成果 PAGEREF _Toc138403602 h 40 HYPERLINK l _Toc138403603 6.2 研究不足和解決方案 PAGEREF _Toc138403603 h 40 HYPERLINK l _Toc138403604 結(jié) 論 PAGEREF _Toc138403604 h 41 HYPERLINK l _Toc138403605 致 謝 PAGEREF _Toc13840360
16、5 h 42 HYPERLINK l _Toc138403606 參 考 文 獻(xiàn) PAGEREF _Toc138403606 h 431 引言上個(gè)世紀(jì)60年代誕生的互聯(lián)網(wǎng),在近十幾年的時(shí)間里得到了迅猛的發(fā)展,其主要的原因是WEB技術(shù)的出現(xiàn)。它將世界各地的信息鏈接起來(lái),使互聯(lián)網(wǎng)成為最大的信息載體,使地球變的像個(gè)小村子,使信息共享和流通的能力延伸到了我們的桌面上。WEB技術(shù)是互聯(lián)網(wǎng)的核心內(nèi)容,WEB因?yàn)榫哂幸纛l、視頻技術(shù),內(nèi)部交互和易于管理而受到個(gè)人和企業(yè)的青睞。隨著WEB的逐漸發(fā)展和成熟,web技術(shù)也在逐漸的發(fā)展,從HTML到CGI,到3P(ASP、JSP、PHP),再到現(xiàn)在的ASP.NET,已
17、經(jīng)經(jīng)過(guò)了幾個(gè)階段的發(fā)展。1.1 問(wèn)題定義與內(nèi)容簡(jiǎn)介ASP.NET網(wǎng)絡(luò)服務(wù)體系架構(gòu)為使用ASP.NET建立網(wǎng)絡(luò)服務(wù)提供了一個(gè)高級(jí)可編程模板。雖然建立網(wǎng)絡(luò)服務(wù)并不需要使用網(wǎng)絡(luò)服務(wù)平臺(tái),但是它具有許多的優(yōu)點(diǎn)將簡(jiǎn)化開(kāi)發(fā)過(guò)程,并且它使用的編程模型對(duì)用ASP或VB工作的開(kāi)發(fā)人員來(lái)說(shuō)是很熟悉的。使用這個(gè)可編程模型,開(kāi)發(fā)人員不需要理解 、SOAP或其它任何網(wǎng)絡(luò)服務(wù)規(guī)范。本課題的主要目的是對(duì)網(wǎng)站設(shè)計(jì)的相關(guān)技術(shù)進(jìn)行理論研究,比較ASP.NET技術(shù)的相關(guān)特點(diǎn),并在對(duì)各種技術(shù)進(jìn)行系統(tǒng)分析和研究的基礎(chǔ)上,借鑒現(xiàn)有系統(tǒng)的一些經(jīng)驗(yàn),開(kāi)發(fā)一網(wǎng)站實(shí)現(xiàn)相關(guān)管理功能。并且通過(guò)學(xué)習(xí)ASP.NET技術(shù)并查閱大量關(guān)于網(wǎng)站設(shè)計(jì)技術(shù)的文獻(xiàn)資
18、料,比較各種技術(shù)的優(yōu)越性,匯總形成相關(guān)文檔。在研究學(xué)習(xí)的基礎(chǔ)上,結(jié)合相關(guān)資料,設(shè)計(jì)出簡(jiǎn)潔的具有用戶注冊(cè)登錄、信息查看、信息查詢等功能的系統(tǒng)。網(wǎng)站實(shí)現(xiàn)的基本功能是:(1)信息查看:普通用戶和管理員登錄系統(tǒng)后可以進(jìn)行信息查看;(2)信息查詢:用戶可以登錄系統(tǒng)后進(jìn)行信息查詢。1.2 研究背景及研究意義隨著個(gè)人電腦和Internet的普及推廣,Web技術(shù)得到了迅猛的發(fā)展,人們開(kāi)始越來(lái)越依賴(lài)網(wǎng)絡(luò):企業(yè)通過(guò)網(wǎng)絡(luò)可以更有效、便捷的發(fā)布信息和推廣自己新的產(chǎn)品;個(gè)人通過(guò)網(wǎng)絡(luò)可以跟自己的朋友聊天、寫(xiě)信,可以查看新聞,可以在網(wǎng)上娛樂(lè),甚至可以不用出戶就可以購(gòu)買(mǎi)自己喜歡的商品等等,網(wǎng)絡(luò)帶來(lái)無(wú)盡的便捷和樂(lè)趣。設(shè)計(jì)出好看
19、,適用的網(wǎng)站就成為必要的,現(xiàn)在用于網(wǎng)站設(shè)計(jì)、開(kāi)發(fā)的技術(shù)有很多,譬如ASP、JSP、ASP.NET等等。其中JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件中插入Java程序段和JSP標(biāo)記,從而形成JSP文件。JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。ASP(Active Server Pages活動(dòng)服務(wù)器頁(yè)面)是一種功能強(qiáng)大的運(yùn)用于服務(wù)器端的腳本編程環(huán)境,但是只能用VBScript或者JavaS
20、cript這樣的非模塊語(yǔ)言來(lái)編程,而且大量的HTML代碼和VBScript、JavaScript代碼混合在一起,使得程序員需要修改程序的時(shí)候比較困難。而ASP.NET技術(shù)是Microsoft公司推出的新一代動(dòng)態(tài)Web開(kāi)發(fā)技術(shù)。ASP.NET不同于ASP和JSP,它是建立在.NET Framework之上,提供了更易于編寫(xiě)而且結(jié)構(gòu)清晰的代碼,它使用VB.NET和C#等模塊化語(yǔ)言編寫(xiě)程序,提高了代碼的再利用性和共享性。ASP.NET在結(jié)構(gòu)上幾乎完全是基于組件和模塊化的,Web應(yīng)用程序的開(kāi)發(fā)人員使用這個(gè)開(kāi)發(fā)技術(shù)可以實(shí)現(xiàn)更加模塊化的、功能更強(qiáng)大的應(yīng)用程序。ASP.NET技術(shù)在效率、可重用性及代碼量上較
21、ASP和JSP都有明顯的優(yōu)勢(shì)。使用ASP.NET技術(shù),開(kāi)發(fā)人員不需要理解 、SOAP或其它任何網(wǎng)絡(luò)服務(wù)規(guī)范。開(kāi)發(fā)人員用ASP.NET生成一個(gè)擴(kuò)展名為.asmx的文件,并把此文件配制為網(wǎng)絡(luò)應(yīng)用程序的一部分,就建立起了一個(gè)網(wǎng)絡(luò)服務(wù)。 asmx文件包含對(duì)在其它地方定義的受控類(lèi)的引用,或者包含這個(gè)類(lèi)的定義。這個(gè)類(lèi)是由ASP.NET提供的WebService類(lèi)所派生。公有的類(lèi)方法在標(biāo)記上WebMethod屬性后,就會(huì)成為網(wǎng)絡(luò)服務(wù)方法,把 請(qǐng)求發(fā)送到asmx文件中的URL后,這些方法就會(huì)被調(diào)用。你不必手工為你的網(wǎng)絡(luò)服務(wù)建立一個(gè)契約。當(dāng)被調(diào)用者請(qǐng)求時(shí),ASP.NET檢查類(lèi)的元數(shù)據(jù),以自動(dòng)生成SCL文件??蛻?/p>
22、可通過(guò)SOAP, GET 和 POST提交請(qǐng)求。對(duì)方法和參數(shù)進(jìn)行編碼的約定是:對(duì) GET,將被編碼為查詢字符串;對(duì) POST,將被編碼為表單數(shù)據(jù)。 GET 和 POST 的機(jī)制不如SOAP有力,但是它們使得客戶在訪問(wèn)網(wǎng)絡(luò)服務(wù)時(shí)不必支持SOAP。 ASP.NET 網(wǎng)絡(luò)服務(wù)模型假定了一個(gè)無(wú)狀態(tài)服務(wù)結(jié)構(gòu)。無(wú)狀態(tài)結(jié)構(gòu)通常比有狀態(tài)結(jié)構(gòu)更具可擴(kuò)展性。每次收到一個(gè)服務(wù)請(qǐng)求后,就生成一個(gè)新對(duì)象,請(qǐng)求被轉(zhuǎn)化為一個(gè)方法調(diào)用,當(dāng)該方法調(diào)用返回時(shí)對(duì)象被銷(xiāo)毀。如果這些服務(wù)需要跨請(qǐng)求維護(hù)狀態(tài),那么它們將使用ASP.NET狀態(tài)管理服務(wù)?;贏SP.NET的網(wǎng)絡(luò)服務(wù)在網(wǎng)絡(luò)應(yīng)用程序模型中運(yùn)行,因此它們得到了該模型的所有安全、配
23、制和其它優(yōu)點(diǎn)。 ASP.NET 網(wǎng)絡(luò)服務(wù)還提供了一個(gè)為在SCL文件中描述的網(wǎng)絡(luò)服務(wù)生成分類(lèi)的受控代理工具。代理生成器把SCL文件中描述的消息映射成受控類(lèi)中的方法。代理對(duì)應(yīng)用程序代碼隱藏了所有的網(wǎng)絡(luò)和引導(dǎo)設(shè)備,因此使用網(wǎng)絡(luò)服務(wù)看起來(lái)就像使用其它受控代碼一樣。代理將優(yōu)先使用SOAP鏈接網(wǎng)絡(luò)服務(wù),但是它同樣支持 GET和 POST機(jī)制。因此 GET和 POST同樣也能被使用。網(wǎng)絡(luò)服務(wù)為在Internet上綁定應(yīng)用程序提供了一個(gè)利用現(xiàn)存體系架構(gòu)和應(yīng)用程序的簡(jiǎn)單的、靈活的、基于許多標(biāo)準(zhǔn)的模型。網(wǎng)絡(luò)應(yīng)用程序很容易與當(dāng)?shù)亻_(kāi)發(fā)的服務(wù)或已存在的服務(wù)集成在一起,而不用考慮開(kāi)發(fā)平臺(tái)、開(kāi)發(fā)語(yǔ)言或使用的對(duì)象模型,以用于
24、實(shí)現(xiàn)任何組成的服務(wù)或應(yīng)用程序。Microsoft .NET框架在現(xiàn)有開(kāi)發(fā)人員技巧之上,提供了一個(gè)應(yīng)用程序模板和關(guān)鍵技術(shù),用于簡(jiǎn)化安全、可靠、可擴(kuò)展、高可用性的網(wǎng)絡(luò)服務(wù)的建立、部署和不斷的發(fā)展。1.3 可行性分析1.3.1 技術(shù)可行性研究課題主要是理論研究,研究ASP.NET技術(shù)在網(wǎng)站開(kāi)發(fā)中的應(yīng)用,關(guān)鍵是要查閱大量的關(guān)于ASP.NET技術(shù)和其他網(wǎng)站開(kāi)發(fā)技術(shù)方面的文章和書(shū)籍。學(xué)校圖書(shū)館有大量關(guān)于這方面的書(shū)籍可以借閱,另外在互聯(lián)網(wǎng)上也有關(guān)于這方面的大量論文可以查閱。另外網(wǎng)站的設(shè)計(jì)主要使用的是ASP.NET技術(shù),.NET Framework1.1框架作為微軟公司已經(jīng)比較成熟的產(chǎn)品,現(xiàn)在越來(lái)越多的網(wǎng)站開(kāi)
25、發(fā)設(shè)計(jì)都選擇它。1.3.2 經(jīng)濟(jì)可行性研究 課題研究的是ASP.NET技術(shù),設(shè)計(jì)開(kāi)發(fā)的電子商務(wù)網(wǎng)站在PC機(jī)上就可以實(shí)現(xiàn),不要考慮其他的設(shè)備。也為以后網(wǎng)站設(shè)計(jì)開(kāi)發(fā)編程技術(shù)的選擇提供了更多的技術(shù)支持。1.4 論文各章內(nèi)容介紹 論文共分為六章,由淺至深的闡述了研究的結(jié)論并結(jié)合實(shí)例進(jìn)行了說(shuō)明。第一章簡(jiǎn)要的介紹了Microsoft .NET框架,提出了課題研究的背景,并對(duì)研究課題做了調(diào)研及可行性分析。第二章主要介紹了WEB技術(shù)的發(fā)展,簡(jiǎn)單介紹了ASP,JSP 和PHP技術(shù),詳細(xì)說(shuō)明了ASP.NET技術(shù),并將各種網(wǎng)站開(kāi)發(fā)技術(shù)做了深入比較。第三章全面介紹了對(duì)實(shí)例系統(tǒng)進(jìn)行總體設(shè)計(jì)的方案。第四章介紹系統(tǒng)的詳細(xì)設(shè)
26、計(jì)和各功能模塊的設(shè)計(jì)及實(shí)現(xiàn)第五章介紹系統(tǒng)的應(yīng)用演示,分別以用戶和管理員的身份進(jìn)行了演示分析。第六章介紹研究成果的評(píng)價(jià)及其不足的解決方案2 課題研究分析2.1 網(wǎng)站開(kāi)發(fā)技術(shù)研究2.1.1 WEB開(kāi)發(fā)技術(shù)的發(fā)展WEB程序初期,網(wǎng)站組成是一系列靜態(tài)的網(wǎng)頁(yè),這種程序只允許用戶瀏覽網(wǎng)站的信息,而不能和網(wǎng)站進(jìn)行交互(即靜態(tài)網(wǎng)頁(yè)),這就大大制約了商業(yè)的經(jīng)營(yíng)活動(dòng)。為此,CGI技術(shù)出現(xiàn),基本彌補(bǔ)了不能交互的缺點(diǎn),是技術(shù)上的一種突破,但用戶在使用CGI程序時(shí),CGI為每個(gè)用戶分配一個(gè)進(jìn)程,進(jìn)程是資源分配的基本單位,這樣使資源不能得到完全很好的利用,并且浪費(fèi)嚴(yán)重。由于計(jì)算機(jī)資源的有限性,限制了使用網(wǎng)站的用戶的數(shù)量,
27、導(dǎo)致用戶使用中速度相對(duì)過(guò)慢,不能滿足需求。與此同時(shí)Microsoft公司和網(wǎng)景公司均看到了CGI的不足,為此分別設(shè)計(jì)的一套API,分別是ISAPI和NSAPI,這兩套API均采用線程機(jī)制,每個(gè)用戶均使用一個(gè)線程與網(wǎng)站進(jìn)行交互,他們的出現(xiàn)使得每個(gè)語(yǔ)種如DELPHI、VB等均可以設(shè)計(jì)web應(yīng)用程序,WEB程序獲得飛速的發(fā)展。但I(xiàn)SAPI和NSAPI有兩個(gè)缺點(diǎn):一是不太穩(wěn)定,二是要求程序的設(shè)計(jì)水平較高不利于普及。1995年java出現(xiàn)后給網(wǎng)站設(shè)計(jì)帶來(lái)了曙光,java是一個(gè)跨平臺(tái)的程序設(shè)計(jì)語(yǔ)言,以其一次編譯,處處運(yùn)行的優(yōu)勢(shì),迅速推廣。與此同時(shí)網(wǎng)站的軟件技術(shù)出現(xiàn)了ASP、PHP,JAVA也發(fā)展出一個(gè)分支
28、JSP,我們一般稱(chēng)之為3P。3P的出現(xiàn)大大降低了網(wǎng)站設(shè)計(jì)的門(mén)檻,為網(wǎng)站普及起著不可磨滅的貢獻(xiàn)。3P的技術(shù)各有千秋。ASP是嵌入在HTML中的一種服務(wù)器端編程的WEB開(kāi)發(fā)技術(shù),即客戶端請(qǐng)求網(wǎng)頁(yè)時(shí)ASP文件先在服務(wù)器端編譯執(zhí)行,再以HTML格式傳送給客戶端瀏覽器顯示,因此客戶看不見(jiàn)ASP文件,程序的保密性較好。ASP使用的腳本語(yǔ)言是可擴(kuò)充的,不僅可以使用默認(rèn)的VBScript語(yǔ)言,也可以使用JAVA Script或JScript,通過(guò)plug-in的方式還可以使用Perl、TCL等第三方腳本語(yǔ)言。微軟還提供了InterDev這樣的ASP開(kāi)發(fā)工具。用戶在開(kāi)發(fā)的時(shí)候可以使用VB/VC開(kāi)發(fā)ActiveX
29、控件,并借助微軟的組件技術(shù)COM來(lái)實(shí)現(xiàn)幾乎所有的Client/ Server方式下具有的功能。但是它所使用的語(yǔ)種不是完全的面向?qū)ο笫秸Z(yǔ)言,不利于開(kāi)發(fā)大型網(wǎng)站程序,且運(yùn)行速度較慢。PHP是植根于Unix或Linux的一種網(wǎng)站開(kāi)發(fā)技術(shù),由于Unix和Linux用于大型服務(wù)器上,尋常百姓很少問(wèn)津,到近些年Linux開(kāi)始推廣才逐漸被人們所認(rèn)識(shí)。和ASP一樣是在服務(wù)器進(jìn)行編程的,不過(guò)PHP是GNU標(biāo)準(zhǔn)的自由軟件,不僅它是免費(fèi)的,和其配合使用的Apache Server 、My SQL數(shù)據(jù)庫(kù)也是免費(fèi)的,其源代碼也是向外公開(kāi)的。PHP還具有跨平臺(tái)性,在 Window98, NT, Linux, Unix和M
30、acintosh等環(huán)境下均能運(yùn)行,而且代碼可以重用。由于采用類(lèi)似C和Perl的語(yǔ)言格式,PHP含有相當(dāng)豐富的函數(shù)庫(kù),上載文件、存取數(shù)據(jù)庫(kù)中的二進(jìn)制圖片數(shù)據(jù)、作圖、XML解析等功能的實(shí)現(xiàn),只需借助某個(gè)或某幾個(gè)函數(shù)即可完成,而不像ASP那樣需要引入專(zhuān)門(mén)的控件才可實(shí)現(xiàn)。PHP也有其不足。相對(duì)ASP來(lái)說(shuō),PHP的自由軟件身份使得自身的發(fā)展得不到頗具實(shí)力的軟件開(kāi)發(fā)公司的支持,其發(fā)展具有不定性,相應(yīng)的參考材料、技術(shù)支持也較匾乏。它的類(lèi)似C的語(yǔ)言風(fēng)格,使它不如ASP來(lái)得容易掌握此外,PHP提供的數(shù)據(jù)庫(kù)接口函數(shù)也不統(tǒng)一,在訪問(wèn)數(shù)據(jù)庫(kù)時(shí)不如ASP那么方便。 JSP是由Sun公司推出的非常類(lèi)似與ASP的一種動(dòng)態(tài)網(wǎng)
31、頁(yè)技術(shù)標(biāo)準(zhǔn)。它也提供了在HTML代碼中混合程序代碼,由語(yǔ)言引擎進(jìn)行解釋執(zhí)行的能力。JSP使用的是成熟強(qiáng)大的JAVA語(yǔ)言??蛻舳苏?qǐng)求JSP編寫(xiě)的頁(yè)面時(shí),代碼首先被轉(zhuǎn)換成JAVA源文件,再編譯成支持 , FTP等網(wǎng)絡(luò)協(xié)議的class文件(即Servlet),并由JAVA虛擬機(jī)執(zhí)行。這種編譯操作僅在對(duì)JSP頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生,雖然首次調(diào)用需幾秒的編譯加載時(shí)間,但后續(xù)請(qǐng)求只需調(diào)用服務(wù)器端緩存中的Servlets就可以了,比起每次請(qǐng)求都要解釋執(zhí)行的ASP代碼要快。相對(duì)于ASP和PHP來(lái)說(shuō),JSP在跨平臺(tái)可重用性和安全性上面還是有很多獨(dú)到之處的。 3P有一個(gè)共同的缺點(diǎn),就是HTML網(wǎng)頁(yè)代碼和腳本混雜,
32、大大增加了網(wǎng)站開(kāi)發(fā)和維護(hù)的難度,另外也由于微軟開(kāi)發(fā)一種能JSP相抗衡的新技術(shù),ASP.NET技術(shù)的出現(xiàn)基本改變了這些。ASP.NET技術(shù)使用完全的面向?qū)ο笳Z(yǔ)言,網(wǎng)頁(yè)與程序分離有利于更好的設(shè)計(jì)程序,使得代碼更簡(jiǎn)潔、易于編寫(xiě),不僅提高了重利用性和共享性,還提高了可調(diào)度性、可測(cè)量性、安全性和可靠性;同時(shí),對(duì)不同的瀏覽器提供了更好的支持。ASP. NET能使開(kāi)發(fā)人員創(chuàng)造出更加動(dòng)態(tài)而且伸縮性更強(qiáng)的應(yīng)用程序,這種應(yīng)用程序能夠更好地滿足公司的商業(yè)需求,并提供一個(gè)更加豐富的開(kāi)發(fā)環(huán)境。在兼容以前設(shè)計(jì)習(xí)慣的基礎(chǔ)上采用完全的可視化設(shè)計(jì),使windows程序和網(wǎng)站程序的風(fēng)格區(qū)別縮小,使用任何語(yǔ)種都只要遵守.NET規(guī)范
33、,都可以使用ASP.NET,使得技術(shù)的推廣速度相當(dāng)快。2.1.2 技術(shù)比較ASP和JSP都是使用的腳本語(yǔ)言混合HTML編程,特別是ASP的腳本語(yǔ)言屬于弱類(lèi)型、面向結(jié)構(gòu)的編程語(yǔ)言,而非面向?qū)ο?,這就明顯產(chǎn)生以下幾個(gè)問(wèn)題:1、代碼邏輯混亂,難于管理:它使用的是腳本語(yǔ)言混合html編程,所以很難看清代碼的邏輯關(guān)系,并且隨著程序的復(fù)雜性增加,使得代碼的管理十分困難,甚至超出一個(gè)程序員所能達(dá)到的管理能力,從而造成出錯(cuò)或這樣那樣的問(wèn)題。 2、代碼的可重用性差:由于是面向結(jié)構(gòu)的編程方式,并且混合html,所以可能頁(yè)面原型修改一點(diǎn),整個(gè)程序都需要修改,更別提代碼重用了。 3、弱類(lèi)型造成潛在的出錯(cuò)可能:盡管弱數(shù)
34、據(jù)類(lèi)型的編程語(yǔ)言使用起來(lái)會(huì)方便一些,但相對(duì)于它所造成的出錯(cuò)幾率就遠(yuǎn)遠(yuǎn)得不償失的。 以上是語(yǔ)言本身的弱點(diǎn),在功能方面ASP同樣存在問(wèn)題,第一是功能太弱,一些底層操作只能通過(guò)組件來(lái)完成,在這點(diǎn)上甚至還遠(yuǎn)遠(yuǎn)比不上PHP/JSP,在糾錯(cuò)/調(diào)試功能的完善,這點(diǎn)上ASP/PHP/JSP差不多。下面是ASP和ASP.NET在具體操作編程上有什么不同。在ASP程序中,當(dāng)需要使用Server對(duì)象的Create Object方法來(lái)建立一個(gè)類(lèi)實(shí)例的時(shí)候,首先要聲明一個(gè)變量fso,之后將變量fso賦予FileSystemObject的對(duì)象(FileSystemObject對(duì)象可以在Scripting這個(gè)庫(kù)中找到)。如
35、果想要ASP代碼得以正常運(yùn)行,還必須確定相關(guān)的DLL文件已經(jīng)被安裝并且注冊(cè)到服務(wù)器。當(dāng)C#運(yùn)行庫(kù)被安裝的時(shí)候,F(xiàn)ileSystemObject對(duì)象是會(huì)被自動(dòng)注冊(cè)的。但是如果想使用第三方開(kāi)發(fā)的組件或者使用自己創(chuàng)建的組件,就需要小心安裝并且注冊(cè)你的組件了。其具體的代碼如下:Dim fsoSet fso = Server.CreateObject(Scripting.FileSystemObject)而在ASP.NET中,在聲明一個(gè)變量的同時(shí),可以指定它的類(lèi)型并且初始化這個(gè)變量 為了引用一個(gè)類(lèi),需要使用這樣的表示方法:名稱(chēng)空間.子名稱(chēng)空間.類(lèi)。即如:Scripting.FileSystemObjec
36、t fso = new Scripting.FileSystemObject();在上面的代碼中,引用了FileSystemObject這個(gè)類(lèi),而FileSystemObject這個(gè)類(lèi)可以在名稱(chēng)空間Scripting中找到。上面的名稱(chēng)空間實(shí)際上只是假設(shè)的一個(gè)名稱(chēng)空間,它并不存在于.NET的架構(gòu)當(dāng)中,所以上面的代碼實(shí)際上是無(wú)法運(yùn)行的。由此可以看出ASP和ASP.NET技術(shù)的區(qū)別了。ASP.NET使用的面向?qū)ο蟮恼Z(yǔ)言,而不是一種腳本語(yǔ)言,所以它具有面向?qū)ο缶幊陶Z(yǔ)言的一切特性,比如封裝性、繼承性、多態(tài)性等等,這就解決了剛才談到的ASP的那些弱點(diǎn)。封裝性使得代碼邏輯清晰,易于管理,并且應(yīng)用到ASP.N
37、ET上就可以使業(yè)務(wù)邏輯和Html頁(yè)面分離,這樣無(wú)論頁(yè)面原型如何改變,業(yè)務(wù)邏輯代碼都不必做任何改動(dòng);繼承性和多態(tài)性使得代碼的可重用性極大的提高,你可以通過(guò)繼承已有的對(duì)象最大限度保護(hù)你以前的投資。并且C#和C+、Java一樣提供了完善的調(diào)試/糾錯(cuò)體系。JSP同樣是實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的一個(gè)利器。由于他的腳本語(yǔ)言是JAVA,所以繼承了JAVA諸多優(yōu)點(diǎn)。ASP.NET和JAVA的具體的區(qū)別。其重要體現(xiàn)在:1) 面向?qū)ο笮? ASP.NET將C#作為一種面向?qū)ο笳Z(yǔ)言,在很多方面來(lái)看,微軟將C#成為與Java相似的語(yǔ)言。C#另一個(gè)有趣的地方是所有對(duì)象都自動(dòng)變成為COM對(duì)象。如果C#能取得很大的市場(chǎng)占有量的話,那么
38、它將給ASP.NET帶來(lái)類(lèi)似于Java的功能,并且具備更快的性能,因?yàn)樗梢院蚖indows環(huán)境緊密集成。 C# 是ASP.NET開(kāi)發(fā)中一個(gè)最重要的功能,這也是.NET框架的一個(gè)重要組成部分。2) 數(shù)據(jù)庫(kù)連接: 在ASP中的一個(gè)亮點(diǎn)是它使用ADO對(duì)象,ODBC, OLE-DB和事務(wù)處理管理器,因此ASP Web數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)特別簡(jiǎn)單。ASP.NET發(fā)展了更多的功能,因?yàn)橛辛薃DO.NET,ADO.NET帶來(lái)了更強(qiáng)大更快速的功能。JSP和JDBC目前在易用性和性能上同ASP/ADO相比已有些落后,當(dāng)新版本ASP.NET/ADO.NET出現(xiàn)后這樣的差別就更明顯。3) 大型站點(diǎn)應(yīng)用: ASP.NET
39、將對(duì)大型站點(diǎn)(web farms)有更好的支持。事實(shí)上,微軟在這方面付出了巨大的努力。 ASP.NET可以讓你考慮到多服務(wù)器(multiple servers)的場(chǎng)合,當(dāng)你需要更強(qiáng)大的功能時(shí),僅僅只需要增加一臺(tái)服務(wù)器。整個(gè).NET框架已經(jīng)充分地提供了這個(gè)方法。ASP.NET提供了外部會(huì)話狀態(tài)(external session state)來(lái)提供內(nèi)置式web farm的支持。另外,由于請(qǐng)求的各組件相互間經(jīng)過(guò)了充分的優(yōu)化,所以速度很快。 于是ASP.NET現(xiàn)在可以在大型項(xiàng)目方面與JSP一樣具有等同的能力。 而ASP.NET還有價(jià)格方面的優(yōu)勢(shì),因?yàn)樗械慕M件將是服務(wù)器操作系統(tǒng)的一部分。對(duì)于JSP,需
40、要購(gòu)買(mǎi)昂貴的應(yīng)用服務(wù)器群來(lái)達(dá)到同樣的目的。4) ASP.NET還提供更多的其它方面的新特性,例如: *內(nèi)置的對(duì)象緩存和頁(yè)面結(jié)果緩存。 *內(nèi)置的XML支持,可用于XML數(shù)據(jù)集的簡(jiǎn)單處理。 *服務(wù)器控制提供了更充分的交互式控制。 可以看出,由于JSP模型是在ASP之后,在許多方面借鑒了ASP,如:session、application等對(duì)象。同時(shí)JSP使用靈活而強(qiáng)大的JAVA語(yǔ)言,而不是低效的腳本語(yǔ)言,使得JSP與ASP相比,具有明顯的優(yōu)勢(shì)。但是,ASP.NET又是在借鑒JSP的優(yōu)點(diǎn)后推出的,這樣ASP.NET又具有后發(fā)的優(yōu)勢(shì)。2.1.3 ASP.NET技術(shù)研究ASP. NET隸屬于Microso
41、ft. NET框架,是由.NET框架提供的編程類(lèi)庫(kù)所組成的,它提供了Web應(yīng)用程序模型,并采用面向?qū)ο蟮乃枷肽K化與組件化的技術(shù)而構(gòu)建。那說(shuō)到ASP.NET,就不得不先了解下.NET,其全稱(chēng)為Microsoft .NET。Microsoft .NET平臺(tái)包括用于創(chuàng)建和操作新一代服務(wù)的.NET基礎(chǔ)結(jié)構(gòu)和工具;可以啟用大量客戶機(jī)的.NET User Experience;用于建立新一代高度分布式的數(shù)以百萬(wàn)計(jì)的.NET積木式組件服務(wù);以及用于啟用新一代智能互聯(lián)網(wǎng)設(shè)備的.NET設(shè)備軟件。Microsoft .NET產(chǎn)品和服務(wù)-包括Windows.NET,連同建立積木式服務(wù)的核心集成套件;MSNTM .
42、NET;個(gè)人訂購(gòu)服務(wù);Office.NET;Visual Studio .NET;以及用于.NET的BCentralTM。ASP. NET頁(yè)面.NET框架CLR.NET類(lèi)庫(kù)ASP. NET狀態(tài)管理器和cache IIS ISAP過(guò)濾器aspx或asmx圖2.1 ASP.NET體系結(jié)構(gòu)圖上面的圖就是ASP.NET的基本體系結(jié)構(gòu),其中.NET框架提供CLR(Common Language Runtime即通用語(yǔ)言運(yùn)行時(shí))編譯和管理程序頁(yè)面中代碼的執(zhí)行,類(lèi)庫(kù)則是提供了一系列的用于處理請(qǐng)求和生成響應(yīng)的公共代碼,程序員可以直接調(diào)用該類(lèi)庫(kù)。ISAPI(Internet Server Application
43、 Programming Interfaces)過(guò)濾器是ASP. NET與IIS通信的接口,其中的應(yīng)用程序作為DLL來(lái)實(shí)現(xiàn),并且加載到Internet Server的進(jìn)程空間,這樣可以保證應(yīng)用程序更快地執(zhí)行。ASP. NET本身包含一個(gè)緩存cache和一個(gè)狀態(tài)管理器,其中cache用來(lái)緩存經(jīng)常使用的Web頁(yè)面,目的是提高服務(wù)性能。狀態(tài)管理器用來(lái)跟蹤用戶的會(huì)話狀態(tài)信息,目的是進(jìn)行更加完美的數(shù)據(jù)交互。在數(shù)據(jù)庫(kù)連接上ASP. NET是通過(guò)ADO. NET (Active Data Object 動(dòng)態(tài)數(shù)據(jù)對(duì)象)上的Managed Provider(管理供應(yīng)商)所提的應(yīng)用程序編程接口(API)來(lái)實(shí)現(xiàn)數(shù)據(jù)
44、源的數(shù)據(jù)訪問(wèn),包括OLEDB和ODB(以開(kāi)放性數(shù)據(jù)庫(kù)互連)所支持的數(shù)據(jù)庫(kù)。下面來(lái)說(shuō)下ADO.NET的主要的特性:互操作性:ADO.NET模型最大限度地利用了由業(yè)界大型的外觀標(biāo)準(zhǔn)XML提供的靈活性。ADO.NET使用XML在組件之間以及層之間傳送數(shù)據(jù)集。任何支持XML格式的組件都可以處理數(shù)據(jù),而且接收數(shù)據(jù)的組件也不一定是ADO.NET組件。發(fā)送或傳送數(shù)據(jù)集的組件只需要向數(shù)據(jù)集的目的地發(fā)送數(shù)據(jù)集,而不用擔(dān)心接收組件是如何去執(zhí)行的,請(qǐng)求數(shù)據(jù)集的組件也就是目的組件可以像Visual Studio應(yīng)用程序或其他應(yīng)用程序那樣執(zhí)行接收任務(wù)。但是,很重要的一點(diǎn)是:接收組件應(yīng)該支持XML格式??删S護(hù)性:可維護(hù)性
45、現(xiàn)在已是評(píng)價(jià)一種軟件程序的標(biāo)準(zhǔn),可維護(hù)性的高低將直接影響應(yīng)用程序的升級(jí)維護(hù)的操作負(fù)擔(dān)。應(yīng)用程序的維護(hù)我們期待的是提高其性能,在次,不用重新設(shè)計(jì),而是調(diào)用應(yīng)用程序之后層次的增加。如果原來(lái)的應(yīng)用程序是在ADO.NET中使用數(shù)據(jù)集執(zhí)行的,那么這種轉(zhuǎn)變相對(duì)就容易的多,在ADO.NET中,層之間的通信相對(duì)簡(jiǎn)單,這是因?yàn)閷邮峭ㄟ^(guò)XML格式的數(shù)據(jù)集傳送數(shù)據(jù)的。下面的是一個(gè)簡(jiǎn)化了的ADO.NET工作原理圖: 應(yīng)用程序的數(shù)據(jù)集應(yīng)用程序的數(shù)據(jù)集XML數(shù)據(jù)集數(shù)據(jù)集命令數(shù)據(jù)圖2.2 ADO.NET工作原理圖可編程性:ADO.NET模型使用類(lèi)型化的程序設(shè)計(jì)操作對(duì)象。在類(lèi)型化程序設(shè)計(jì)中,程序設(shè)計(jì)環(huán)境或程序設(shè)計(jì)語(yǔ)言本身識(shí)別
46、對(duì)象的類(lèi)型,這對(duì)用戶來(lái)說(shuō)是很重要的。對(duì)那些沒(méi)有或者有很少編程經(jīng)驗(yàn)的終端用戶來(lái)說(shuō),對(duì)代碼的理解也是很容易的。而且,在非類(lèi)型化的程序設(shè)計(jì)中,如果開(kāi)發(fā)人員偶爾發(fā)生拼寫(xiě)錯(cuò)誤,那么將產(chǎn)生一個(gè)運(yùn)行時(shí)錯(cuò)誤。而在類(lèi)型的數(shù)據(jù)集中,誤寫(xiě)導(dǎo)致的語(yǔ)法錯(cuò)誤會(huì)在編譯時(shí)就檢測(cè)出來(lái)。性能:在ADO中,當(dāng)使用COM組件技術(shù)跨層傳送數(shù)據(jù)時(shí),可以采用已短開(kāi)連接的記錄集形式,這些值必須轉(zhuǎn)換為COM能夠辨認(rèn)的數(shù)據(jù)模型,這樣就降低了性能。而ADO.NET能使用已斷開(kāi)連接的數(shù)據(jù)體系結(jié)構(gòu),這反過(guò)來(lái)會(huì)使得伸縮性更加的容易實(shí)現(xiàn),因?yàn)檫@減少了數(shù)據(jù)的裝載量(不需要任何的數(shù)據(jù)轉(zhuǎn)換)。因此,在ADO.NET模型中,任何對(duì)象都可以在客戶端進(jìn)行處理,這樣就
47、提高了其性能。可伸縮性:基于WEB的以數(shù)據(jù)為中心的應(yīng)用程序需要多個(gè)用戶同時(shí)訪問(wèn)數(shù)據(jù)庫(kù),這增加了對(duì)訪問(wèn)數(shù)據(jù)庫(kù)的要求,使得可伸縮性成為最主要的特征之一。使用資源(比如數(shù)據(jù)庫(kù)連接和數(shù)據(jù)庫(kù)鎖定)的應(yīng)用程序。不支持多用戶同時(shí)訪問(wèn)數(shù)據(jù),這是因?yàn)橛脩魧?duì)有限資源的要求最終會(huì)超出它們的供應(yīng)能力,因?yàn)锳DO.NET使用了已斷開(kāi)連接的數(shù)據(jù)訪問(wèn),所以應(yīng)用程序不用長(zhǎng)時(shí)間保持?jǐn)?shù)據(jù)庫(kù)鎖定狀態(tài)或者數(shù)據(jù)庫(kù)連接激活狀態(tài)。由此,ADO.NET可以通過(guò)鼓勵(lì)程序員保存有限的資源來(lái)提供可伸縮性,并允許多用戶同時(shí)訪問(wèn)數(shù)據(jù)。ADO.NET對(duì)象模型主要有兩個(gè)層次:已連接的層:由管理提供程序組成的類(lèi)組成已斷開(kāi)連接層:根植于Dataset自從In
48、ternet出現(xiàn)以來(lái),網(wǎng)絡(luò)安全一直是人們關(guān)注的問(wèn)題。其中的原因包括在Internet上傳送敏感數(shù)據(jù),在Web應(yīng)用程序之間交換敏感數(shù)據(jù)以及黑客的威脅等。對(duì)于Web應(yīng)用程序的開(kāi)發(fā)人員和管理員來(lái)說(shuō),安全是個(gè)重要的問(wèn)題,也是個(gè)令人頭痛的問(wèn)題,因此需要格外細(xì)致的進(jìn)行規(guī)劃和設(shè)計(jì)。在ASP.NET應(yīng)用程序中,安全性涉及三個(gè)基本的操作:身份驗(yàn)證,授權(quán)和模擬(冒名頂替)。身份驗(yàn)證(Authentication):這是驗(yàn)證用戶身份的有效過(guò)程,以便決定是否允許通過(guò),通常,身份驗(yàn)證就是驗(yàn)證用戶名和密碼的過(guò)程,除了這種常見(jiàn)的身份驗(yàn)證方式以外,還有比較復(fù)雜的驗(yàn)證方式。具體來(lái)說(shuō)身份驗(yàn)證有三種形式:匿名驗(yàn)證,基本驗(yàn)證和集成的
49、Windows驗(yàn)證。其中匿名驗(yàn)證即允許用戶在不用通過(guò)用戶名和密碼的情況下瀏覽網(wǎng)站;基本驗(yàn)證即是我們平常說(shuō)的用戶和密碼驗(yàn)證了,這中方式需要對(duì)密碼進(jìn)行加密,不然很可能被未授權(quán)的用戶非法使用,但是加密技術(shù)一直不是很理想,所以這種驗(yàn)證方式的使用一直沒(méi)被保密性較強(qiáng)的WEB應(yīng)用程序使用。集成的Windows驗(yàn)證,除了滿足基本的驗(yàn)證的條件外,用戶還必須是有效的Windows用戶。在這種模式下,IIS服務(wù)器將用Windows域名控制器驗(yàn)證用戶名和密碼。授權(quán)(Authorization):這是確保允許擁有有效身份的用戶只能訪問(wèn)授予訪問(wèn)權(quán)限的那些資源的過(guò)程。我們可以對(duì)IIS服務(wù)器進(jìn)行配置可以控制用戶對(duì)資源的訪問(wèn),
50、通過(guò)標(biāo)記網(wǎng)站上可允許的操作可以控制對(duì)IIS網(wǎng)站的訪問(wèn)權(quán)限。模擬(Impersonation)當(dāng)請(qǐng)求從IIS傳遞到應(yīng)用程序時(shí),通過(guò)使用模擬,ASP. NET應(yīng)用程序可以選擇以這些應(yīng)用程序當(dāng)前正為之操作的客戶的身份執(zhí)行。通常這樣做的原因是為了避免在ASP. NET應(yīng)用程序代碼中處理身份驗(yàn)證和授權(quán)問(wèn)題。在WEB服務(wù)上開(kāi)發(fā)人員可以用ASP. NET生成一個(gè)擴(kuò)展名定為.asmx的文件,并把此文件配制為網(wǎng)絡(luò)應(yīng)用程序的一部分,就建立起了一個(gè)網(wǎng)絡(luò)服務(wù)。asmx文件包含對(duì)在其他地方定義的受控的類(lèi)的引用,或者包含這個(gè)類(lèi)的定義。這個(gè)類(lèi)是由ASP. NET提供的WebService類(lèi)所派生。公有的類(lèi)方法在標(biāo)記上Web
51、Method屬性后,就會(huì)成為網(wǎng)絡(luò)服務(wù)方法,把 請(qǐng)求發(fā)送到asmx文件中的URL后,這些方法就會(huì)被調(diào)用。網(wǎng)絡(luò)服務(wù)為在Internet上綁定應(yīng)用程序提供了一個(gè)利用現(xiàn)存體系架構(gòu)和應(yīng)用程序的簡(jiǎn)單的、靈活的、基于許多標(biāo)準(zhǔn)的模型。網(wǎng)絡(luò)應(yīng)用程序很容易與當(dāng)?shù)亻_(kāi)發(fā)的服務(wù)或己存在的服務(wù)集成在一起,而不用考慮開(kāi)發(fā)平臺(tái)、開(kāi)發(fā)語(yǔ)言或使用的對(duì)象模型,以用于實(shí)現(xiàn)任何組成的服務(wù)或應(yīng)用程序。2.2 ASP.NET技術(shù)在實(shí)例中的應(yīng)用實(shí)例是一個(gè)BtoC的電子商務(wù)網(wǎng)站,在網(wǎng)站設(shè)計(jì)中使用了ASP.NET一些關(guān)鍵技術(shù)2.2.1 ASP.NET內(nèi)置對(duì)象的應(yīng)用ASP.NET有七個(gè)主要的內(nèi)置的對(duì)象,分別是:對(duì)象名對(duì)象說(shuō)明Page用于設(shè)置與網(wǎng)頁(yè)
52、有關(guān)的屬性、方法和事件Request從瀏覽器(用戶端)獲取信息Response發(fā)送信息到瀏覽器Server提供服務(wù)器端的屬性和方法Session存儲(chǔ)單個(gè)客戶端的信息Application存儲(chǔ)客戶端的共享信息Exception捕捉ASP.NET的錯(cuò)誤,返回錯(cuò)誤信息Page對(duì)象最主要的事件有:Init.Load和UnLoad。當(dāng)進(jìn)行網(wǎng)頁(yè)初始化時(shí)觸發(fā)Page對(duì)象的Init事件,接著加載網(wǎng)頁(yè)并觸發(fā)Page對(duì)象的Load事件,然后如果包含其他服務(wù)器控件事件的時(shí)候,當(dāng)滿足發(fā)生條件則觸發(fā)相應(yīng)服務(wù)器控件的事件,最后離開(kāi)時(shí)觸發(fā)Page對(duì)象的UnLoad事件。在每個(gè)頁(yè)面文件里幾乎都可以找到Page對(duì)象的Load事
53、件和Init事件。private void Page_Load(object sender, System.EventArgs e) /如果客戶機(jī)上本商城的Cookie存在,則根據(jù)該Cookie顯示個(gè)性化的顧客歡迎信息if (Request.CookiesIStore_UserName != null) WelcomeMsg.Text = 歡迎 + Request.CookiesIStore_UserName.Value + 來(lái)到網(wǎng)上商城!; private void Page_Init(object sender, EventArgs e) InitializeComponent(); 這是
54、Default.aspx(首頁(yè))中的Page對(duì)象的Load事件和Init事件,其中Cookies存儲(chǔ)了客戶信息,用來(lái)顯示個(gè)性話的客戶歡迎信息。private void Page_Load(object sender, System.EventArgs e) /從傳到該頁(yè)面的請(qǐng)求對(duì)象的參數(shù)集合中獲取GoodsID int GoodsID = Int32.Parse(Request.ParamsGoodsID); /獲取商品的詳細(xì)信息 IStore.IStoreDBO GoodsDetail = new IStore.IStoreDBO(); IStore.GoodsDetails myGoods
55、Details = GoodsDetail.GetGoodsDetails(GoodsID); desc.Text = myGoodsDetails.Description; UnitCost.Text = String.Format(0:c, myGoodsDetails.UnitCost); ModelName.Text = myGoodsDetails.ModelName; ModelNumber.Text = myGoodsDetails.ModelNumber.ToString(); GoodsImage.ImageUrl = GoodsImages/ + myGoodsDetail
56、s.GoodsPicture; addToCart.NavigateUrl = AddToCart.aspx?GoodsID= + GoodsID; 上面的是GoodsDetails.aspx(用于顯示商品的詳細(xì)信息)中的Page對(duì)象的Load事件,其中desc.Text、UnitCost.Text、ModelName.Text、ModelNumber.Text、GoodsImage.ImageUrl和addToCart.NavigateUrl都是用來(lái)顯示商品信息的頁(yè)面控件。Request對(duì)象派生自 Request類(lèi),它的主要功能是從客戶端獲取信息,包括瀏覽器種類(lèi)、用戶輸入表單中的數(shù)據(jù)、Coo
57、kies中的數(shù)據(jù)和客戶端認(rèn)證等。if (thecontext.Request.Cookies IStore_CartID != null) Return thecontext.Request.Cookies IStore_CartID. Value;else Guid tempShoppingCartId = Guid.NewGuid();Thecontext.Response.Cookies IStore_CartID. Value = tempShoppingCartId. ToString ();return tempShoppingCartId.ToString();這是GetShop
58、pingCartId()方法中使用Response對(duì)象的Cookies集合來(lái)獲取用戶購(gòu)物車(chē)的ID。這個(gè)方法在多個(gè)頁(yè)面事件中都有調(diào)用,例如在AddToCart.aspx頁(yè)面中。Resquest對(duì)象的功能與Response對(duì)象的功能相反,它用于將服務(wù)器端的信息發(fā)送到瀏覽器。Resquest對(duì)象的常用方法有十個(gè),其中最常用最簡(jiǎn)單的方法是Writer方法和Redirect方法。Writer方法是將指定的內(nèi)容寫(xiě)入頁(yè)面文件中,Redirect方法是通知瀏覽器連接指定的URL,即進(jìn)行頁(yè)面跳轉(zhuǎn)。例如:Response.Redirect(Default.aspx)。Response.Write(alert(對(duì)不
59、起,你的權(quán)限不夠!);這一段就是使用的Resquest對(duì)象的Writer方法向?yàn)g覽器發(fā)送信息。Server是最基本的ASP.NET對(duì)象,它派生自 ServerUtility類(lèi),提供了服務(wù)器端的基本屬性和方法。可以通過(guò)Page對(duì)象的Server屬性來(lái)獲取相對(duì)應(yīng)的Server對(duì)象,即Page.Server。Server.Transfer(Login.aspx);這是在實(shí)例中Server 對(duì)象Transfer方法的簡(jiǎn)單應(yīng)用。Session對(duì)象派生自 Session類(lèi),每個(gè)連接用戶都擁有一個(gè)自己的Session對(duì)象,這個(gè)Session對(duì)象用于在該用戶訪問(wèn)的各頁(yè)面之間傳遞信息,即Session是同一連接
60、所有網(wǎng)頁(yè)的共用對(duì)象。在本例中Session對(duì)象的Contents屬性記錄的是用戶的ID,在Login.aspx頁(yè)面中開(kāi)始加載記錄:Session.Add(strUserID,userId);到用戶注銷(xiāo)退出系統(tǒng)調(diào)用Session對(duì)象的Clear方法清除Contents屬性的變量:Session.Clear()。Application對(duì)象是讓在同一個(gè)應(yīng)用內(nèi)的多個(gè)用戶共享信息,并在服務(wù)器運(yùn)行期間持久地保存數(shù)據(jù)。該對(duì)象在網(wǎng)站上應(yīng)用最廣的就是記錄本網(wǎng)站的信息,如訪問(wèn)人數(shù),在線人數(shù)等。由此可見(jiàn)Application對(duì)象和Session對(duì)象是差不多的,都是ASP.NET文件公用的對(duì)象,所不同的是所有用戶連接
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 原廠服務(wù)合同范本
- 利益保障合同范本
- 中醫(yī)師承拜師合同范本
- 個(gè)體房屋租賃合同范本
- 發(fā)包合同范本格式
- 內(nèi)蒙辣椒購(gòu)銷(xiāo)合同范本
- 賣(mài)車(chē)協(xié)議合同范例
- 專(zhuān)用配件銷(xiāo)售合同范本
- 叉車(chē)承攬合同范例
- 農(nóng)業(yè)養(yǎng)豪豬合同范本
- 前列腺癌的診斷與治療課件
- 產(chǎn)品開(kāi)發(fā)的變更流程
- 氣管鏡科室講課ppt課件(PPT 69頁(yè))
- 蝴蝶豌豆花(課堂PPT)
- 無(wú)創(chuàng)呼吸機(jī)的應(yīng)用(飛利浦偉康V60)課件
- 口腔修復(fù)學(xué)-第七章-牙列缺失的全口義齒修復(fù)
- Y-Y2系列電機(jī)繞組標(biāo)準(zhǔn)數(shù)據(jù)匯總
- 對(duì)于二氧化碳傳感器的現(xiàn)狀及發(fā)展趨勢(shì)的淺分析
- 麥語(yǔ)言函數(shù)手冊(cè)參考模板
- 知情同意書(shū)-北京大學(xué)腫瘤醫(yī)院
- 建筑材料碳排放因子查詢表
評(píng)論
0/150
提交評(píng)論