第09章-ASP-NET程序結(jié)構(gòu)和執(zhí)行過程_第1頁
第09章-ASP-NET程序結(jié)構(gòu)和執(zhí)行過程_第2頁
第09章-ASP-NET程序結(jié)構(gòu)和執(zhí)行過程_第3頁
第09章-ASP-NET程序結(jié)構(gòu)和執(zhí)行過程_第4頁
第09章-ASP-NET程序結(jié)構(gòu)和執(zhí)行過程_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《商務(wù)網(wǎng)站設(shè)計(jì)與開發(fā)》溫浩宇西安電子科技大學(xué)第9章ASP.NET程序結(jié)構(gòu)和執(zhí)行過程內(nèi)容9.1傳統(tǒng)ASP程序的實(shí)現(xiàn)9.2ASP.NETWeb應(yīng)用程序的構(gòu)建9.3ASP.NETHelloWorld9.4ASP.NET服務(wù)器端控件9.5思考題9.1傳統(tǒng)ASP程序的實(shí)現(xiàn)動(dòng)態(tài)效勞器頁面〔ActiveServerPages,簡稱為ASP〕是微軟公司發(fā)布的,它將VBScript、JavaScript腳本語言代碼嵌入在標(biāo)準(zhǔn)的HTML文檔中,實(shí)現(xiàn)了在效勞器端動(dòng)態(tài)生成HTML頁面的功能。<!DOCTYPEhtml><html><head><title>HelloWorld</title></head><body><h1><%Response.Write"HelloWorld!"%></h1>I'manASPProgram<br>Itisnow<%Response.WriteNow%></body></html>9.1傳統(tǒng)ASP程序的實(shí)現(xiàn)Hello.html文件的代碼如下:<!DOCTYPEhtml><htmlxmlns=":///1999/xhtml"><head><meta-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title></head><body><formmethod="get"action="ResponseHello.aspx"id="form1"><inputid="Button1"name="Button1"type="submit"value="Hello"/></form></body></html>9.1傳統(tǒng)ASP程序的實(shí)現(xiàn)ResponseHello.aspx文件的代碼如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="ResponseHello.aspx.cs"Inherits="Hello.ResponseHello"%><!DOCTYPEhtml><htmlxmlns=":///1999/xhtml"><headrunat="server">……</head><body><%if(Request.QueryString["Button1"]=="Hello"){Response.Write("HelloWorld");}%></body></html>9.2ASP.NETWeb應(yīng)用程序的構(gòu)建通過VisualStudio的“WebForms模板〞可以快速生成ASP.NET應(yīng)用程序9.2ASP.NETWeb應(yīng)用程序的構(gòu)建通過工程的生成,我們獲得了一個(gè)已經(jīng)具有很多功能的Web網(wǎng)站工程9.2ASP.NETWeb應(yīng)用程序的構(gòu)建Web工程運(yùn)行9.2ASP.NETWeb應(yīng)用程序的構(gòu)建在菜單中選擇“工程〞,點(diǎn)擊“屬性〞可以進(jìn)入屬性編輯界面9.2ASP.NETWeb應(yīng)用程序的構(gòu)建ASP.NET空Web應(yīng)用程序9.2ASP.NETWeb應(yīng)用程序的構(gòu)建一個(gè)空Web應(yīng)用程序建立后,在解決方案資源管理器中只有“Properties〞、“引用〞和“Web.config〞三個(gè)局部。其中Web.config文件中包括了工程的根本配置參數(shù),內(nèi)容如下:<?xmlversion="1.0"encoding="utf-8"?><configuration><system.web><compilationdebug="true"targetFramework="4.5"/><RuntimetargetFramework="4.5"/></system.web></configuration>可以看出,Web.config是一個(gè)XML文檔,其中配置了工程的編譯選項(xiàng)〔debug〕和.NETframework版本。在系統(tǒng)開發(fā)的過程中還會(huì)在該文件中增加更多的數(shù)據(jù)內(nèi)容。9.2ASP.NETWeb應(yīng)用程序的構(gòu)建在“工程〞菜單中點(diǎn)擊“添加新項(xiàng)〞來創(chuàng)立一個(gè)名為“Default.aspx〞的頁面9.2ASP.NETWeb應(yīng)用程序的構(gòu)建在解決方案資源管理器中可以看到名為“Default.aspx〞的文件,點(diǎn)擊文件前面的白色三角,還可以展開出其它的兩個(gè)文件,分別是“〞和“〞。三個(gè)文件是共同構(gòu)成一個(gè)Web窗體的一組文件,缺一不可。其中,“Default.aspx〞描述了運(yùn)行在瀏覽器端的HTML元素和運(yùn)行在效勞器端的各個(gè)控件,代碼如下:<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="Hello.Default"%>

<!DOCTYPEhtml><htmlxmlns=":///1999/xhtml"><headrunat="server"><meta-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title></head><body><formid="form1"runat="server"><div></div></form></body></html>9.2ASP.NETWeb應(yīng)用程序的構(gòu)建“〞描述了整個(gè)Web窗體類的一局部,主要是效勞器端控件的各種事件響應(yīng)函數(shù)和用戶編寫的代碼,代碼如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Web;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;

namespaceHello{{protectedvoidPage_Load(objectsender,EventArgse){}}}9.2ASP.NETWeb應(yīng)用程序的構(gòu)建“〞那么描述了整個(gè)Web窗體類的另一局部,主要是效勞器端控件的聲明和屬性設(shè)置等。需要注意的是:此代碼由開發(fā)工具自動(dòng)生成的。代碼如下:namespaceHello{publicpartialclassDefault{///<summary>///form1控件。///</summary>///<remarks>///自動(dòng)生成的字段。///假設(shè)要進(jìn)行修改,請(qǐng)將字段聲明從設(shè)計(jì)器文件移到代碼隱藏文件。///</remarks>protectedglobal::System.Web.UI.HtmlControls.HtmlFormform1;}}9.2ASP.NETWeb應(yīng)用程序的構(gòu)建ASP.NET程序的請(qǐng)求、響應(yīng)以及編譯過程9.2ASP.NETWeb應(yīng)用程序的構(gòu)建目錄名稱說明根目錄包含了網(wǎng)站的配置文件、母版文件和默認(rèn)的網(wǎng)頁文件等。

Account包含了大量與系統(tǒng)注冊(cè)和登錄相關(guān)的頁面,甚至模板自動(dòng)生產(chǎn)了忘記密碼、修改密碼等常用功能頁面。App_Data包含了ASP.NET網(wǎng)站的數(shù)據(jù)庫文件,包括Access(mdb)文件或者SQLServer(mdf)文件。如果網(wǎng)站不是以文件方式而是服務(wù)器方式訪問數(shù)據(jù)庫,那這個(gè)目錄中就不會(huì)有數(shù)據(jù)庫文件。Content包含了CSS和其他非Scripts和圖像的網(wǎng)站內(nèi)容。Models包含了表示和操縱數(shù)據(jù)以及業(yè)務(wù)對(duì)象的類。Scripts包含了JavaScript類庫文件和腳本文件。9.2ASP.NETWeb應(yīng)用程序的構(gòu)建擴(kuò)展名說明.htm、.html用HTML代碼編寫的靜態(tài)Web文件。.css用于確定HTML元素格式的樣式表文件。.js用JavaScript代碼編寫的瀏覽器端腳本文件。.aspxASP.NETWeb窗體文件(頁),該文件可包含Web控件及顯示和業(yè)務(wù)邏輯。.cs運(yùn)行時(shí)要編譯的C#類源代碼文件。類可以是HTTP模塊、HTTP處理程序、ASP.NET頁的代碼隱藏文件或包含應(yīng)用程序邏輯的獨(dú)立類文件。.ascxWeb用戶控件文件,該文件定義可重復(fù)使用的自定義控件。.config配置文件(通常是Web.config),該文件包含表示ASP.NET功能設(shè)置的XML元素。.asax通常是Global.asax文件,該文件包含從HttpApplication類派生的代碼。該文件表示應(yīng)用程序,并且包含應(yīng)用程序生存期開始或結(jié)束時(shí)運(yùn)行的可選方法。.slnVisualStudio項(xiàng)目的解決方案文件。.csproj基于C#的VisualStudio應(yīng)用程序項(xiàng)目的項(xiàng)目文件。.master母版頁,定義應(yīng)用程序中其他網(wǎng)頁的布局。.resx資源文件,該文件包含指向圖像、可本地化文本或其他數(shù)據(jù)的資源字符串。.sitemap站點(diǎn)地圖文件,該文件包含網(wǎng)站的結(jié)構(gòu)。ASP.NET中附帶了一個(gè)默認(rèn)的站點(diǎn)地圖提供程序,它使用站點(diǎn)地圖文件可以很方便地在網(wǎng)頁上顯示導(dǎo)航控件。9.3ASP.NETHelloWorldASP.NET程序開發(fā)的最根本步驟。翻開“Default.aspx〞文件,從編輯區(qū)域的底部選擇“設(shè)計(jì)〞以便進(jìn)行可視化編輯。從工具箱中選擇“標(biāo)準(zhǔn)〞中的“Label〞控件,將其拖拽到編輯區(qū)域中的虛框中。這個(gè)虛框?qū)嶋H上是aspx文件中的<form>元素的區(qū)域。在aspx文件中,所有的效勞器端控件都應(yīng)當(dāng)被放置在系統(tǒng)自動(dòng)生成的這個(gè)<form>元素中,以形成ASP.NET賴以運(yùn)行的前后臺(tái)信息傳遞機(jī)制。在可視化編輯界面中選中剛剛拖放進(jìn)來的Label控件,可以在IDE右下局部的“屬性〞區(qū)域設(shè)置它的屬性。將其Text屬性的值從“Label〞修改為“HelloWorld〞,本程序所需的功能就完成了。9.3ASP.NETHelloWorld9.3ASP.NETHelloWorld“Default.aspx〞源代碼<%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="Default.aspx.cs"Inherits="Hello.Default"%><!DOCTYPEhtml><htmlxmlns=":///1999/xhtml"><headrunat="server"><meta-equiv="Content-Type"content="text/html;charset=utf-8"/><title></title></head><body><formid="form1"runat="server"><div><asp:LabelID="Label1"runat="server"Text="HelloWorld"></asp:Label></div></form></body></html>9.3ASP.NETHelloWorld“〞代碼如下:namespaceHello{publicpartialclassDefault{///<summary>///form1控件。///</summary>///<remarks>///自動(dòng)生成的字段。///假設(shè)要進(jìn)行修改,請(qǐng)將字段聲明從設(shè)計(jì)器文件移到代碼隱藏文件。///</remarks>protectedglobal::System.Web.UI.HtmlControls.HtmlFormform1;

///<summary>///Label1控件。///</summary>///<remarks>///自動(dòng)生成的字段。///假設(shè)要進(jìn)行修改,請(qǐng)將字段聲明從設(shè)計(jì)器文件移到代碼隱藏文件。///</remarks>protectedglobal::System.Web.UI.WebControls.LabelLabel1;}}9.3ASP.NETHelloWorld除了可以在代碼編輯的過程中設(shè)置了Label1對(duì)象的Text屬性,還可以在程序運(yùn)行的時(shí)候修改Label1對(duì)象的Text屬性。在“〞文件的Page_Load函數(shù)中增加一條語句,就可以在網(wǎng)頁裝載的時(shí)后設(shè)置Label1對(duì)象的Text屬性值為“HelloWorld2〞。代碼如下:Label1.Text="HelloWorld2";運(yùn)行后可以看到,網(wǎng)頁中沒有顯示“HelloWorld〞,而是直接顯示了“HelloWorld2〞。我們繼續(xù)在aspx文件的可視化編輯中拖放一個(gè)按鈕〔Button1〕,將其放在Label1對(duì)象的旁邊。在可視化編輯區(qū)域雙擊Button1按鈕,開發(fā)工具將自動(dòng)跳轉(zhuǎn)到“〞文件的編輯界面,并且會(huì)自動(dòng)增加Button1_Click函數(shù)作為“按鈕Click事件〞的處理函數(shù)。在“〞文件的Button1_Click函數(shù)中增加一條語句,就可以在按鈕被點(diǎn)擊后后再次設(shè)置Label1對(duì)象的Text屬性值為“HelloWorld3〞。代碼如下:Label1.Text="HelloWorld3";9.3ASP.NETHelloWorld運(yùn)行后可以看到,網(wǎng)頁加載后顯示了“HelloWorld2〞,而當(dāng)用戶點(diǎn)擊按鈕后網(wǎng)頁顯示了“HelloWorld3〞。9.3ASP.NETHelloWorldASP.NET程序執(zhí)行的過程9.4ASP.NET效勞器端控件按照運(yùn)行機(jī)理劃分,ASP.NET提供了三種效勞器端控件與HTML標(biāo)簽相同并直接映射HTML元素的“HTML服務(wù)器控件”(HTMLServerControls)以新的標(biāo)簽來定義的“Web服務(wù)器控件”(WebServerControls)檢查輸入是否合理的“驗(yàn)證服務(wù)器控件”(ValidationServerControls)。9.4ASP.NET效勞器端控件HTML效勞器控件〔以下簡稱為HTML控件〕雖然使用客戶端HTML文檔中的各種標(biāo)簽,但卻先在效勞器中執(zhí)行,然后才返回瀏覽器端呈現(xiàn)為各種HTML元素。Aspx文件中一般的HTML元素都會(huì)被看作為字符串文本,在運(yùn)行生成HTML文檔時(shí)就直接粘貼過去。但如果在標(biāo)簽中參加runat="server"的屬性,就使得該控件被定義為在效勞器端執(zhí)行,執(zhí)行的結(jié)果〔HTML片段〕被粘貼到最終的HTML文檔中。控件中所包含的id屬性是HTML控件的標(biāo)示〔對(duì)象名稱〕,通過這個(gè)標(biāo)示,效勞器端的代碼可以在運(yùn)行的時(shí)候操控這個(gè)控件。9.4ASP.NET效勞器端控件以下代碼定義了一個(gè)HTML控件link1,它是一個(gè)超鏈接控件,但在aspx代碼中沒有給出超鏈接的地址。<html>

<body>

<formid="form1"runat="server">

<aid="link1"runat="server">VisitHelloWorld!</a>

</form>

</body>

</html>9.4ASP.NET效勞器端控件可以在cs文件的Page_Load函數(shù)中參加語句,使得aspx頁面在運(yùn)行時(shí)動(dòng)態(tài)地設(shè)置link1的超鏈接地址,代碼如下:protectedvoidPage_Load(objectsender,EventArgse){link1.HRef="://helloworld";}當(dāng)瀏覽器調(diào)用此網(wǎng)頁的時(shí)候,效勞器端代碼會(huì)被執(zhí)行,可以輸入如下HTML代碼交給瀏覽器:<html>

<body>

<formmethod="post"action="./"id="form1">

<ahref="://helloworld"id="link1">VisitHelloWorld!</a>

</form>

</body>

</html>可以看到,HTML控件其實(shí)就是HTML元素的根底上加上runat="server"所構(gòu)成的控件,效勞器代碼執(zhí)行后,HTML控件會(huì)轉(zhuǎn)變?yōu)闉g覽器端HTML元素。9.4ASP.NET效勞器端控件與HTML效勞器控件相似,Web效勞器控件〔以下簡稱為Web控件〕也具有runat="server"屬性,也需要在效勞器端運(yùn)行,但Web控件的標(biāo)簽卻不是HTML標(biāo)簽。某個(gè)Web控件也不一定會(huì)直接對(duì)應(yīng)某個(gè)HTML元素,它可能對(duì)應(yīng)多個(gè)元素或者更復(fù)雜的HTML代碼片段,比方Calendar〔日歷〕控件。下面是定義Web控件的語法:<asp:control_nameid="some_id"runat="server"/>從HTML的語法中我們知道,網(wǎng)頁中呈現(xiàn)的“按鈕〞實(shí)際上是由<input>標(biāo)簽構(gòu)成,但在ASP.NET的Web控件中卻提供了Button控件。9.4ASP.NET效勞器端控件<html>

<body>

<formrunat="server">

<asp:Buttonid="WebButton"Text="Clickme!"runat="server"OnClick="submit"/>

</form>

</body>

</html>響應(yīng)的cs文件中定義了按鈕OnClick事件對(duì)應(yīng)的事件處理函數(shù)submit,函數(shù)執(zhí)行時(shí)會(huì)將按鈕上面的文字改為“Youclickedme!〞。protectedvoidsubmit(objectsender,EventArgse){WebButton.Text="Youclickedme!";}

9.4ASP.NET效勞器端控件當(dāng)瀏覽器第一次調(diào)用此網(wǎng)頁的時(shí)候,效勞器端代碼會(huì)被執(zhí)行,可以輸

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論