① 試述瀏覽器訪問網頁的詳細內部過程中數據在TCP/IP網路體系結構中各個層次所用到的協議
學弟
1月9日 16:16 CMI:技術的核心
正如您從我的上一篇文章(以及所有出版物)中所了解到的,Windows XP Embedded 使用基於 SQL 的資料庫來存儲所有組件。資料庫可以是本地或遠程的 Microsoft® SQL Server,也可以是本地的 Microsoft® 數據引擎 (MSDE)(可在 Windows XP Embedded CD 上找到)。而 Windows NT Embedded 4.0 則使用一個單一的本地 Jet 資料庫 .mdb 文件來存儲所有的組件和配置。
為了能夠從一組工具中無縫訪問本地和遠程資料庫,同時提供快捷的資料庫切換,整個體系結構中設置了一個資料庫通信層。該層稱為 CMI,或組件管理介面。它的主要目的是在 Windows XP Embedded 工具(Target Designer、Component Designer 和 Component Database Manager)和組件資料庫之間提供一個標准介面,而不管資料庫駐留在哪裡(本地或遠程、SQL Server 或 MSDE)。只要與組件資料庫中的內容有關,CMI 就會被調用。
因為所有工具都依賴於活動的資料庫連接來進行工作,所以任何工具所做的第一件事都是請求 CMI 提供一個活動資料庫連接。如果沒有可用的資料庫連接,CMI 將返回一個失敗,而工具將報告一個錯誤。總之,沒有資料庫連接,Windows XP Embedded 將不能進行任何工作。
CMI 也支持某種級別的非同步資料庫訪問,這種情況通常發生在遠程 SQL Server 資料庫和多個客戶端之間。所有涉及資料庫更改的操作都在 SQL 中處理,並在操作失敗時提供復原功能。CMI 還可以區分只讀模式和獨占模式。任何工具要從資料庫中刪除信息(當前僅限於組件資料庫管理器),都必須具有獨占訪問許可權,如果任何其他工具打開了資料庫,該工具將不能獲得這一許可權。另一方面,如果某工具已經被授予獨占訪問許可權,其他工具將不能訪問資料庫,直到該工具釋放這一許可權。
此對象非彼對象
注意:下面的討論中將使用兩個術語 - 組件和實例,二者很容易混淆。簡單地說,組件只是一組駐留在資料庫中的資源和屬性。組件添加到配置中便稱為實例,可以修改、處理和構建。可以把組件視為 cookie 模式,而實例是從該模式中創建的實際 cookie。更改 cookie 剪裁模式並不容易,但在剪裁 cookie 後,可以隨意對 cookie 進行處理。了解組件和實例之間的這種差異很重要,在本文和以後的文章中都將涉及這一問題。
因為 CMI 是工具的 COM 伺服器,這使得 Windows XP Embedded 體系結構形成這樣一個基本特性 - 把任何事物都視為對象。配置、組件、實例、資源、文件、注冊項、存儲庫都是 CMI 覆蓋下的對象。因此,Windows XP Embedded 體系結構體現了面向對象 (OO) 思想的三個原則:封裝、繼承和多態。這里我們不對 OO 設計做詳細討論,只解釋其中與 Windows XP Embedded 體系結構有關的幾個方面。討論的重點將集中在組件上,但相關的概念可以擴展到所有 Windows XP Embedded 對象。
每個 Windows XP Embedded 對象都是一個獨立的單元。組件帶有自己的屬性和內部代碼,以此來封裝自己,並與其他對象區分開來。
組件也能夠繼承其他組件的屬性。例如,假定一組設備都基於同一晶元組:假設為音效卡驅動器,使用虛構的 SoundExplosion 1A 晶元組。有三個音效卡使用該晶元組,但提供不同的功能:一個用於游戲埠,一個用於 MIDI 埠,另一個用於 SCSI 介面。我們不用創建三個大同小異的組件來適應不同的要求,而只需創建一個組件,將基本功能封裝進去。然後針對三種差異創建三個組件,並將基本功能組件列為「原型」。這三個組件將繼承與原型相關聯的屬性和資源,但同時也添加了自己的資源。
Windows XP Embedded 對象中的多態通常由 DHTML 配置腳本和構建腳本來處理。DHTML 配置腳本允許組件的最終用戶在組件實例中動態設置屬性,然後在構建腳本中檢查這些屬性並對其做出反應。這樣,您就可以在構建配置時更改組件的行為,以滿足開發人員的需求。
這最後一部分會進一步體現 CMI 面向對象的特性:Windows XP Embedded 中的每個對象都具有一組屬性和方法,某些對象甚至能夠對事件做出反應。屬性可以分為標准屬性(如組件名稱、組件作者和版權)和高級屬性(cmiNoHelpFiles 是組件的一個常用高級屬性)。對象的方法可以簡單地繼承自基本組件(如基本構建行為),也可以是該組件所特有的(如用戶介面核心組件,它包含 DHTML 配置腳本以及構建腳本,可以實現不同的 UI 功能)。可以在構建過程中引發事件,並可由組件腳本做出反應。
某些高級屬性已經被預定義,組件最常見的高級屬性有 cmiNoHelpFiles(構建腳本用它從構建中刪除幫助文件)、cmiLangEnableMUI(構建腳本用它來啟用組件的多語言用戶介面 [MUI] 支持)以及 cmiProtPropList(Target Designer 用它來保護預定義的屬性)。要檢查組件的高級屬性,可以在 Target Designer 中將組件添加到某個配置,然後在 Configuration Editor 中單擊該組件,再單擊 Advanced。
擴展對象模型
Windows XP Embedded 的對象特性和 CMI 應用不僅限於組件和實例,CMI 也把配置當作對象處理。配置的標准屬性包括配置名稱、所有者、作者和版權。高級配置屬性包括有關目標啟動驅動器、啟動 ARC 路徑和幫助文件的設置。要檢查這些屬性,可以在 Target Designer 的 Configuration Editor 中選擇配置名稱,然後在 Details 窗格中單擊 Advanced。
與組件和實例的對象身份一樣,它們的組成部分也都被視為對象。組件中的每個文件、注冊表或其他資源都是對象,分別具有一組屬性。要檢查這些屬性,可以在 Configuration Editor 中展開實例,然後選擇 Files、Registry Data 或 Resources。在 Details 窗格中右擊所要檢查的資源,這時便會顯示該資源的標准屬性,同時顯示 Advanced 按鈕,單擊該按鈕可以顯示資源的高級屬性。這同樣適用於與該配置相關聯的 Extra Files、Extra Registry Data 和 Extra Resources。要完成所有內容,每一個組、包、存儲庫和存儲庫集也都被作為對象處理,它們都有自己的標准屬性和高級屬性。
CMI 的運作
假設我們有一個應用程序要包含到一個運行時映像中。一般的過程是先為應用程序創建一個組件,將組件導入資料庫,將組件包含在某個配置中,然後構建運行時映像。現在我們看一下 CMI 在其中的作用。(由於要在接下來的兩篇文章中詳細探討組件的創建,因此這里只做一個簡單的介紹。)
當啟動 Component Designer 時,CMI 首先確保具有一個資料庫連接。如果創建新組件,CMI 將創建一個新的組件對象,然後 Component Designer 使用該對象作為所定義的所有組件信息的存儲位置。基本的創建過程包括定義組件的名稱、指定要復制的文件和將其放在運行時映像中的位置,以及指定使用哪個注冊表主鍵並將其放在何處。名稱是組件的標准屬性,因此它包含在組件對象中。所指定的文件和注冊項是 CMI 創建的對象,它們將附加到組件對象中。
導入組件時,先啟動組件資料庫管理器。資料庫管理器首先調用 CMI 來連接安裝時指定的資料庫,如果 CMI 連接成功,則可以將 SLD 導入到該資料庫。(SLD 表示資源級別定義,並稱為「滑動」。由 Component Designer 輸出。)組件資料庫管理器再將 SLD 傳遞到 CMI,以便進行處理。瀏覽資料庫、刪除包和組件以及檢查對象的屬性都由 CMI 處理,CDM 的作用相當於基本 COM 對象層的 UI。
當最終准備構建運行時映像時,CMI 將再次驗證資料庫連接。(是否看到了一個模式?)創建新的配置需要由 CMI 來創建相應的對象,完成整個組件瀏覽器的內容也是如此。要將組件添加到配置,CMI 首先要基於選定的組件創建一個實例,然後將其附加到打開的配置中。同時也要為該實例的文件、注冊表和其他資源創建資源對象。在相關性檢查過程中,CMI 將負責標識相關性,並創建相關性解析所需的組件列表。在構建過程中,將調用 CMI 來訪問要復制的實際文件,同時提供詳細的屬性信息來處理相應的構建。
② 客戶端瀏覽器訪問伺服器端的原理
當我們想瀏覽一個網站的時候,只要在瀏覽器的地址欄里輸入網站的地址就可以了,例如:www.microsoft.com,但是在瀏覽器的地址欄裡面出現的卻是: http://www.microsoft.com,你知道為什麼會多出一個「http」嗎? 一、HTTP協議是什麼 我們在瀏覽器的地址欄里輸入的網站地址叫做URL(UniformResourceLocator,統一資源定位符)。就像每家每戶都有一個門牌地址一樣,每個網頁也都有一個Internet地址。當你在瀏覽器的地址框中輸入一個URL或是單擊一個超級鏈接時,URL就確定了要瀏覽的地址。瀏覽器通過超文本傳輸協議(HTTP),將Web伺服器上站點的網頁代碼提取出來,並翻譯成漂亮的網頁。因此,在我們認識HTTP之前,有必要先弄清楚URL的組成,例如: http://www.microsoft.com/china/index.htm。它的含義如下: 1. http://:代表超文本傳輸協議,通知microsoft.com伺服器顯示Web頁,通常不用輸入; 2.www:代表一個Web(萬維網)伺服器; 3.Microsoft.com/:這是裝有網頁的伺服器的域名,或站點伺服器的名稱; 4.China/:為該伺服器上的子目錄,就好像我們的文件夾; 5.Index.htm:index.htm是文件夾中的一個HTML文件(網頁)。 我們知道,Internet的基本協議是TCP/IP協議,然而在TCP/IP模型最上層的是應用層(Applicationlayer),它包含所有高層的協議。高層協議有:文件傳輸協議FTP、電子郵件傳輸協議SMTP、域名系統服務DNS、網路新聞傳輸協議NNTP和HTTP協議等。 HTTP協議(HypertextTransferProtocol,超文本傳輸協議)是用於從WWW伺服器傳輸超文本到本地瀏覽器的傳送協議。它可以使瀏覽器更加高效,使網路傳輸減少。它不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的哪一部分,以及哪部分內容首先顯示(如文本先於圖形)等。這就是你為什麼在瀏覽器中看到的網頁地址都是以「 http://」開頭的原因。 自WWW誕生以來,一個多姿多彩的資訊和虛擬的世界便出現在我們眼前,可是我們怎麼能夠更加容易地找到我們需要的資訊呢?當決定使用超文本作為WWW文檔的標准格式後,於是在1990年,科學家們立即制定了能夠快速查找這些超文本文檔的協議,即HTTP協議。經過幾年的使用與發展,得到不斷的完善和擴展,目前在WWW中使用的是HTTP/1.0的第六版。 二、HTTP是怎樣工作的 既然我們明白了URL的構成,那麼HTTP是怎麼工作呢?我們接下來就要討論這個問題。 由於HTTP協議是基於請求/響應範式的(相當於客戶機/伺服器)。一個客戶機與伺服器建立連接後,發送一個請求給伺服器,請求方式的格式為:統一資源標識符(URL)、協議版本號,後邊是MIME信息包括請求修飾符、客戶機信息和可能的內容。伺服器接到請求後,給予相應的響應信息,其格式為一個狀態行,包括信息的協議版本號、一個成功或錯誤的代碼,後邊是MIME信息包括伺服器信息、實體信息和可能的內容。 許多HTTP通訊是由一個用戶代理初始化的並且包括一個申請在源伺服器上資源的請求。最簡單的情況可能是在用戶代理和伺服器之間通過一個單獨的連接來完成。在Internet上,HTTP通訊通常發生在TCP/IP連接之上。預設埠是TCP80,但其它的埠也是可用的。但這並不預示著HTTP協議在Internet或其它網路的其它協議之上才能完成。HTTP只預示著一個可靠的傳輸。 這個過程就好像我們打電話訂貨一樣,我們可以打電話給商家,告訴他我們需要什麼規格的商品,然後商家再告訴我們什麼商品有貨,什麼商品缺貨。這些,我們是通過電話線用電話聯系(HTTP是通過TCP/IP),當然我們也可以通過傳真,只要商家那邊也有傳真。 以上簡要介紹了HTTP協議的宏觀運作方式,下面介紹一下HTTP協議的內部操作過程。 在WWW中,「客戶」與「伺服器」是一個相對的概念,只存在於一個特定的連接
③ 在TCP/IP協議中,Web瀏覽器使用的HTTP協議屬於什麼層協議
屬於應用層通信協議。
HTTP是客戶端瀏覽器或其他程序與Web伺服器之間的應用層通信協議。在Internet上的Web伺服器上存放的都是超文本信息,客戶機需要通過HTTP協議傳輸所要訪問的超文本信息。
HTTP包含命令和傳輸信息,不僅可用於Web訪問,也可以用於其他網際網路/內聯網應用系統之間的通信,從而實現各類應用資源超媒體訪問的集成。
(3)瀏覽器所在的什麼叫訪問層擴展閱讀:
TCP/IP協議的分層
1、網路訪問層(Network Access Layer)在TCP/IP參考模型中並沒有詳細描述,只是指出主機必須使用某種協議與網路相連。
2、互聯網層(Internet Layer)是整個體系結構的關鍵部分,其功能是使主機可以把分組發往任何網路,並使分組獨立地傳向目標。這些分組可能經由不同的網路,到達的順序和發送的順序也可能不同。如互聯網層使用網際網路協議(IP,Internet Protocol)實現主機和網路的鏈接。
3、傳輸層(Transport Layer)使源端和目的端機器上的對等實體可以進行會話。在這一層定義了兩個端到端的協議:傳輸控制協議(TCP,Transmission Control Protocol)和用戶數據報協議(UDP,User Datagram Protocol),用於主機與輸入輸出終端設備進行數據交互。
4、應用層(Application Layer)包含所有的高層協議,包括:虛擬終端協議(TELNET,TELecommunications NETwork)、文件傳輸協議(FTP,File Transfer Protocol)、(HTTP,HyperText Transfer Protocol)等,這些協議是TCP/IP協議最高層也是最重要的協議。
④ 前端頁面有哪三層構成,分別是什麼作用是什麼
最准確的網頁設計思路是把網頁分成三個層次,即:結構層、樣式層、行為層。
HTML:結構層
網頁的結構或內容層是該頁面的基礎HTML代碼。正如房屋的框架為房屋的其他部分構建了一個堅實
的基礎,HTML的堅實基礎創建了一個可以在其上創建網站的平台。
結構層用於存儲客戶想要閱讀或查看的所有內容。HTML結構可以包含文本和圖像,它包括訪問者用
於瀏覽網站的超鏈接。這是在符合標準的HTML5中編碼的,可以包括文本,圖像和多媒體(視頻,音頻等)。
網站內容的每個方面都應該在結構層中表示。這允許關閉JavaScript的客戶或無法查看整個網站的
CSS訪問許可權的客戶(如果不是所有功能)。
CSS:樣式層
該層指示結構化HTML文檔如何看待網站的訪問者,並由CSS(層疊樣式表)定義。這些文件包含有
關如何在Web瀏覽器中顯示文檔的樣式說明。樣式層通常包括基於屏幕大小和設備更改站點顯示的
媒體查詢。
網站的所有視覺樣式都應位於外部樣式表中。您可以使用多個樣式表,但請記住,每個CSS文件都需
要HTTP請求才能獲取它,從而影響站點性能。
JavaScript:行為層
行為層使網站具有交互性,允許頁面響應用戶操作或基於一組條件進行更改。JavaScript是行為層最
常用的語言,但CGI和PHP也經常被使用。
當開發人員引用行為層時,大多數都是指在Web瀏覽器中直接激活的層。您可以使用此圖層直接與
DOM(文檔對象模型)進行交互。在內容層中編寫有效的HTML對於行為層中的DOM交互非常重
要。在構建行為層時,應該像使用CSS一樣使用外部腳本文件來優化速度和性能。
(4)瀏覽器所在的什麼叫訪問層擴展閱讀:
分層的一些好處是:
共享資源:當您編寫外部CSS或JavaScript文件時,站點上的任何頁面都可以使用該文件。如果
您需要對該文件進行更改,也許更新網站上的某些排版樣式,則使用該樣式表的每個頁面都會得到
更改。沒有必要單獨編輯網站的每個頁面,這對於大型網站來說可能是一項艱苦的任務。
下載速度更快:首次由客戶下載腳本或樣式表後,Web瀏覽器會對其進行緩存。由於這些共享
資源現在包含在瀏覽器的緩存中,因此瀏覽器中請求的其他頁面載入速度更快,從而提高了整體頁
面速度和性能。
多人團隊:如果您有多個人同時在網站上工作,您可以使用允許文件簽入和簽出的系統,以確
保每個人都使用最新版本。如果樣式和行為與結構文檔交織在一起,那就更難了。
搜索引擎優化:一個明確分離風格和結構的網站可能會對搜索引擎有更好的表現,因為它們可以更有效地抓取內容並理解頁面而不會陷入視覺風格和行為信息。
輔助功能:外部樣式表和腳本文件更易於人們和瀏覽器訪問。屏幕閱讀器等軟體可以更輕松地
處理結構層中的內容,而無需處理無論如何都無法使用的樣式。
向後兼容性:使用單獨的開發層設計的站點更可能向後兼容,因為無法使用某些CSS樣式或禁
用了JavaScript的瀏覽器和設備仍然可以查看HTML。然後,您可以使用支持它們的瀏覽器的功能逐
步增強您的網站。
⑤ Dreamweaver中「層」是什麼層有什麼作用
現在網路上一般都流行 用層+div 的方法來做網頁.
用層可以更好的定位.布局.
層的概念:
層是一種HTML頁面元素,是指具有絕對或者相對位置的DIV標簽.
通過 Dreamweaver,您可以使用層來設計頁面的布局。您可以將層前後放置,隱藏某些層而顯示其他層,以及在屏幕上移動層。您可以在一個層中放置背景圖像,然後在該層的前面放置第二個層,它包含帶有透明背景的文本。
利用層可以非常靈活地放置內容。但是,使用舊版本的 Web 瀏覽器的站點訪問者查看層時可能會遇到麻煩。若要確保所有人都能夠查看您的 Web 頁,可以使用層設計頁面布局,然後將層轉換為表。有關更多信息,請參見將層轉換為表格。但是,如果您所面對的訪問者很可能使用某種最新的瀏覽器,則可以完全用層來設計布局,而無需將層轉換為表格
DIV的意思是區塊標簽。
如果已經給 div 標簽分配了絕對位置(也就是規定了這個DIV標簽的樣式),它就可充當一個 Dreamweaver 層。
⑥ 瀏覽器工作原理
工作原理如下:
1、解析HTML構建Dom樹(Document Object Model,文檔對象模型),DOM 是W3C組織推薦的處理可擴展置標語言的標准編程介面。
2、構建渲染樹,渲染樹並不等同於Dom樹,像head標簽 或 display: none這樣的元素就不需要放到渲染樹中了,但它們在Dom樹中。
3、對渲染樹進行布局,定位坐標和大小、確定是否換行、確定position、overflow、z-index等等,這個過程叫"layout" 或 "reflow"。
4、繪制渲染樹,調用操作系統底層API進行繪圖。
(6)瀏覽器所在的什麼叫訪問層擴展閱讀:
瀏覽器額的特點:
1、所有主流網頁瀏覽器都可透過多個窗口或多個標簽頁同時打開多種信息資源,亦可攔截彈出式廣告,以防止不必要的窗口在未經用戶同意的情況下彈出。
2、大部分網頁瀏覽器皆支持HTTPS,並可快捷地清除網頁快照、Cookie及瀏覽記錄。
3、瀏覽器擴展是一種擴展網頁瀏覽器功能的計算機程序。每個主流的網頁瀏覽器都支持擴展的開發。
⑦ 數據訪問層常見的方法有哪幾種
一、響應重定向方法
響應重定向方法是目前為止將一個網頁重定向到另一個網頁的最簡單的方法的最簡單的方法。當Web伺服器接到一個重定向請求後,它會將一個響應頭送給客戶端,這將導致客戶端發送一個新的請求到伺服器。按句話說,一個重定向請求實際上是兩個請求響應:一個是最初的請求響應,另一個是新的重定向請求響應。
在ASP.NET中實現重定向很容易。下面的代碼演示了如何使用Response.Redirect方法實現網頁重定向:
protected void Redirect_Click(object sender, EventArgs e)
{
Response.Redirect("menu.aspx");
}
要注意的是重定向請求只是一個GET請求,這就意味著我們不能從源頁中通過重定向命令提交數據。但是我們可以在重定向中使用查詢字元串來傳遞數據。如下面代碼所示:
protected void Redirect_Click(object sender, EventArgs e)
{
Response.Redirect("menu.aspx?userName=" + UserName.Text));
}
上面的例子將一個查詢字元串作為參數傳遞給了Response.Redirect方法的目標URL。我們可以通過如下的代碼獲得源數據。
protected void Page_Load(object sender, EventArgs e)
{
string userName = Request["userName"];
}
二、伺服器傳輸方法
和依賴於客戶端向另一個新頁發請求不同,伺服器傳輸是一種伺服器重定向技術,這種技術通過簡單的改變Web伺服器所處理的代碼來達到請求一個新頁的目的。當被請求頁和源頁面在同一個伺服器時,伺服器傳輸要比 Response.Redirect方法更有效,這是由於這種技術可以避免額外的開銷,僅僅使用伺服器的資源就可以進行重定向。要注意的這種技術有一個副作用,在頁面進行重定向時,客戶端的URL仍然會保持源頁面的URL,這可能會使客戶認為他們所獲得的數據是源頁面產生的。當然,在大多數情況下,這不是問題,但是這將使調試變得更困難。
Server.Transfer方法還可以保存初始頁的 HttpContext。因此,目標頁可以訪問源頁面的值。我們可以使用FormsCollection屬性來從目標頁面中獲得源頁面的值。首先,要確定我們使用了被重載的方法,這個方法有兩個參數:目標URL和一個Boolean類型的值,告訴伺服器是否保存用於描述源頁面值的Form。如下面的代碼所示:
Server.Transfer("Menu.aspx",true);
然後,我們在目標頁面中獲得一個叫txtUserName的Textbox控制項的值的代碼如下:
object obj = Request.Form["txtUserName"];
三、Response.Redirect和Server.Transfer的比較
由於Response.Redirect方法要進行兩次請求響應操作,因此,我們應該在對性能要求高的網站盡量避免使用這種方法。然而,只從技術上說,使用redirect方式確實可以從一個網頁跳到另一個網頁。相比之下,Server.Transfer會更有效率,但是跳轉的范圍僅限於同一個Web伺服器的不同網頁。從本質上說,我們可以使用 Server.Transfer來消除不必要的請求響應操作。如果我們需要重定位到不同伺服器的網頁,就需要使用Response.Redirect方法。
四、跨頁提交概述
在ASP.NET 2.0中,我們可以通過實現IbuttonControl介面提交給不同的WebForm,來實現跨網頁的提交。和Response.Redirect類似,跨網頁提交是一個基於客戶端的傳輸機制,但也有點象Server.Transfer,目標網頁也可以訪問源網頁的數據。為了使用跨網頁提交,我們需要在源網頁中的PostBackUrl屬性中指定目標URL。
五、實現跨網頁提交
這部分將討論一下如何在ASP.NET2.0中實現跨網頁提交。為了開始我們的學習,假設有兩個Web頁,一個是源Web頁,另一個是目標Web頁。在源網頁中初始化了使用按鈕進行的跨網頁提交操作。我們首先必須設置目標網頁按鈕的PostBackUrl屬性,順便說一句,所有實現了System.Web.UI.WebControls.IbuttonControl介面的Web控制項都有跨網頁提交的特性。下面的代碼將演示這一過程。
PostBackUrl="~/target.aspx" text = "Post to a target page"/>
當我們設置PostBackUrl屬性時,ASP.NET框架將相應的控制項綁定到一個新的叫WebForm_DoPostBackWithOptions的JavaScript函數,產生的Html代碼如下:
onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("btnSubmit", "", false, "","Target.aspx", false, false))" id="btnSubmit" />
對於上面的html代碼來說,當用戶單擊按鈕時,瀏覽器將提交目標URL(Target.aspx),而不是源URL。
六、從目標頁面中獲得源頁面控制項的值
ASP.NET2.0提供了一個叫PreviousPage的新的屬性,這個屬性無論在何時當前頁面進行跨網頁提交操作時都會指向源頁面。要注意的是,當源頁面和目標頁面在不同的應用程序中時,這個屬性包含null(這個null並不是未初始化的意思)。還有要注意的是當目標網頁訪問PreviousPage屬性時可以獲得源頁面的數據,ASP.NET運行時裝載並執行了源頁面。這將引發ProcessChildRequest事件的發生。而且,它還會引發Page_Init事件、Page_Load和任何其他的源頁面按鈕單擊事件。
因此,我們要避免由於不小心進行誤操作,所以最好通過 IsCrossPostBack屬性來確認是否為一個跨網頁提交發生,如果這個屬性值為true,那麼目標網頁就是通過一個跨網頁提交動作而調用的。如果是通過另外一種方式調用的(如一般的請求、Response.Redirect或是一個Server.Transfer),這個屬性的值為false。下面的例子演示了如何使用這個屬性。
if ( PreviousPage.IsCrossPagePostBack)
{
//執行代碼
}
//******************************************
這個PreviousPage屬性在Server.Transfer和跨網頁提交中都可以使用。在ASP.NET2.0中,我們可以在調用Server.Transfer操作後使用PreviousPage屬性在目標頁面中來獲得源頁面的數據,代碼如下:
*******************************************//
{
Server.Transfer("menu.aspx");
}
protected void Redirect_Click(object sender, EventArgs e)
//在這個接收面中我們現在可以獲得Web頁面的數據,代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
TextBox txtBox = (TextBox)
PreviousPage.FindControl("txtUserName");
if (textBox != null)
string userName = textBox.Text;
//其他可執行的代碼
}
}
要注意的是上面的代碼必須將txtUserName控制項轉換為TextBox類型,以便可以訪問其中的值。
七、使用PreviousPageType
PreviousPageType屬性提供了在跨網頁操作中訪問源頁面的強類型能力,下面讓我們演示一下如何不通過任何類型轉換來從源頁面中獲得控制項值。代碼如下:
< asp:Textbox ID="txtUserName" Runat="server" />
< asp:Textbox ID="txtPassword" Runat="server" />
< asp:Button ID="Submit" Runat="server" Text="Login"PostBackUrl="Menu.aspx" />
要注意的是單擊按鈕可以重定向到一個叫「Menu.asp」的目標頁。這個目標頁可以使用如下的代碼獲得用戶名和密碼:
八、保存視圖狀態
對於跨網頁提交來說,ASP.NET2.0 內嵌了一個叫__POSTBACK的隱藏欄位,這個欄位包含了關於源頁面的視圖信息 -- 也就是由源頁面提供了,包含了一個帶有一個非空PostBackUrl屬性值的服務端控制項。目標頁可以使用__POSTBACK中的信息來獲得源頁面的視圖狀態信息。代碼如下:
if(PreviousPage!=null && PreviousPage.IsCrossPagePostBack &&
PreviousPage.IsValid)
{
TextBox txtBox = PreviousPage.FindControl("txtUserName");
Response.Write(txtBox.Text);
}
在上面的代碼中核對了用於確保PreviousPage屬性不為 null的檢查代碼。順便提一下,如果目標頁和源頁面不在同一個應用程序中,這個PreviousPage屬性的值為null。只有在進行跨網頁提交操作時,IsCrossPagePostBack屬性才為true。
這個跨網頁提交的特性,是ASP.NET2.0中最強有力的特性之一,這種技術將允許在一個頁面中提交到另外一個頁面,並且可以在目標頁面地無縫地操作源頁面中的數據。
⑧ Web標準的三層結構是什麼
瀏覽器,WEB伺服器,資料庫伺服器
⑨ 急急急!!ASP.NET構架B/S三層構架這幾個有什麼關系嗎
BS即Browser/Server(瀏覽器/伺服器)結構,就是只安裝維護一個伺服器(Server),而客戶端採用瀏覽器(Browse)運行軟體。
ASP.NET基於.NET Framework的Web開發平台
三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。
⑩ 什麼是WWW瀏覽器它可以分為哪幾類
WWW是World Wide Web的縮寫,可譯為「環球網」或「萬維網」,它是基於Internet提供的一種界面友好的信息服務,用於檢索和閱讀連接到Internet上伺服器的有關內容。該服務利用超文本(Hypertext)、超媒體(Hypermedia)等技術,允許用戶通過瀏覽器(如微軟的IE、網景的Netscape)檢索遠地計算機上的文本、圖形、聲音以及視頻文件。