日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

16第一章ASP.Net编程基础知识

發(fā)布時(shí)間:2025/4/16 asp.net 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 16第一章ASP.Net编程基础知识 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一章??????? ASP.Net編程基礎(chǔ)知識(shí)


第一章??????? ASP.Net編程基礎(chǔ)知識(shí)

本章首先介紹用ASP.Net技術(shù)編制服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)所需的網(wǎng)絡(luò)和HTML標(biāo)記語(yǔ)言方面的有關(guān)知識(shí)。然后介紹ASP.Net技術(shù)基礎(chǔ)。

9.1?? 網(wǎng)絡(luò)基礎(chǔ)

用ASP.Net技術(shù)編制服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè),必然要和網(wǎng)絡(luò)打交道,具備一些網(wǎng)絡(luò)方面的知識(shí)是必要的。這里假設(shè)讀者已經(jīng)學(xué)習(xí)過(guò)計(jì)算機(jī)基礎(chǔ)課程,在此基礎(chǔ)上,進(jìn)一步介紹用ASP.Net技術(shù)編制服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)所需的必備網(wǎng)絡(luò)基礎(chǔ)知識(shí)。

9.1.1? ?局域網(wǎng)、廣域網(wǎng)和INTERNET

把分布在不同地理區(qū)域的計(jì)算機(jī)以及專門的外部設(shè)備利用通信線路互連,使各個(gè)計(jì)算機(jī)之間能夠相互通訊,實(shí)現(xiàn)信息和資源共享,就組成了計(jì)算機(jī)網(wǎng)絡(luò)。在一個(gè)較小區(qū)域,例如在單位內(nèi)部組成的計(jì)算機(jī)網(wǎng)絡(luò),稱為局域網(wǎng)。一個(gè)較大區(qū)域的計(jì)算機(jī)網(wǎng)絡(luò),稱為廣域網(wǎng)。為了使各個(gè)局域網(wǎng)之間互相通訊,可以把各個(gè)局域網(wǎng)連起來(lái),組成廣域網(wǎng)。如將全世界范圍的計(jì)算機(jī)網(wǎng)絡(luò)采用TCP/IP網(wǎng)絡(luò)傳輸協(xié)議聯(lián)到一起,則組成INTERNET。

INTERNET提供了許多服務(wù),例如:遠(yuǎn)程登錄服務(wù)Telnet、文件傳送服務(wù)FTP、電子郵件服務(wù)E-mail、電子公告板系統(tǒng)BBS、萬(wàn)維網(wǎng)WWW(Web)、電子商務(wù)、IP電話等。這里主要介紹萬(wàn)維網(wǎng)WWW中服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì)方法。

9.1.2? ?網(wǎng)絡(luò)傳輸協(xié)議

網(wǎng)絡(luò)的目的是為了通訊,共享資源。通訊即傳輸數(shù)據(jù),為了傳輸數(shù)據(jù)各個(gè)系統(tǒng)應(yīng)遵守一定規(guī)則,這個(gè)規(guī)則叫網(wǎng)絡(luò)傳輸協(xié)議。不同的網(wǎng)絡(luò)操作系統(tǒng)采用不同的網(wǎng)絡(luò)傳輸協(xié)議。而在INTERNET中,為了傳輸數(shù)據(jù),所有系統(tǒng)都必須采用相同的傳輸協(xié)議,即TCP/IP協(xié)議。

9.1.3? ?IP地址

INTERNET中有成千上萬(wàn)臺(tái)計(jì)算機(jī),它允許任何兩臺(tái)計(jì)算機(jī)之間進(jìn)行通訊,為了區(qū)分不同的計(jì)算機(jī),必須給每一臺(tái)計(jì)算機(jī)一個(gè)唯一的編號(hào),這個(gè)編號(hào)叫計(jì)算機(jī)的IP地址,它是一個(gè)32位二進(jìn)制數(shù),用四個(gè)十進(jìn)制數(shù)表示,中間用點(diǎn)隔開,每個(gè)十進(jìn)制數(shù)允許值為0-255(一個(gè)字節(jié)),例如,202.112.10.105,這種記錄方法叫點(diǎn)數(shù)記法。一個(gè)IP地址一般由兩部分組成,網(wǎng)絡(luò)標(biāo)志號(hào)及此網(wǎng)絡(luò)中的計(jì)算機(jī)號(hào),例如,202.112.10.105如果是一個(gè)C類地址,其網(wǎng)絡(luò)標(biāo)志號(hào)為202.112.10.0,網(wǎng)絡(luò)中的計(jì)算機(jī)號(hào)為105。一個(gè)局域網(wǎng)絡(luò)中,所有計(jì)算機(jī)都應(yīng)有相同的網(wǎng)絡(luò)標(biāo)志號(hào),每個(gè)計(jì)算機(jī)有不同的計(jì)算機(jī)號(hào),兩個(gè)不同局域網(wǎng)絡(luò),其網(wǎng)絡(luò)標(biāo)志號(hào)必須不同,但不同網(wǎng)絡(luò)中,計(jì)算機(jī)號(hào)可以相同。一個(gè)計(jì)算機(jī)要和INTERNET聯(lián)接,必須有自己的IP地址。

32位IP地址被分為5類,即A、B、C、D和E類地址。A類地址的第一字節(jié)為網(wǎng)絡(luò)標(biāo)志號(hào),其余3字節(jié)為計(jì)算機(jī)號(hào)。B類地址的前兩個(gè)字節(jié)為網(wǎng)絡(luò)標(biāo)志號(hào),其余2字節(jié)為計(jì)算機(jī)號(hào)。C類地址的前三個(gè)字節(jié)為網(wǎng)絡(luò)標(biāo)志號(hào),最后一字節(jié)為計(jì)算機(jī)號(hào)。D類為特殊地址,E類為私有地址。對(duì)計(jì)算機(jī)進(jìn)行TCP/IP設(shè)置時(shí),有一項(xiàng)叫子網(wǎng)掩碼,用子網(wǎng)掩碼表示IP地址是哪類地址,A類地址的子網(wǎng)掩碼是:255.0.0.0,B類地址的子網(wǎng)掩碼是:255.255.0.0,C類地址的子網(wǎng)掩碼是:255.255.255.0。我國(guó)大部分單位的IP地址為C類地址。

9.1.4? ?域名和域名服務(wù)器

用點(diǎn)數(shù)法表示的IP地址,雖然簡(jiǎn)單,但很難記憶,為了解決此問(wèn)題,可以為INTERNET網(wǎng)中的每臺(tái)計(jì)算機(jī)起一個(gè)名字,在INTERNET中叫域名。例如微軟的域名www.microsoft.com,清華大學(xué)的域名www.tsinghua.edu.cn。

在INTERNET中訪問(wèn)其它計(jì)算機(jī)必須使用IP地址。為了實(shí)現(xiàn)使用域名訪問(wèn)其它計(jì)算機(jī),域名必須首先轉(zhuǎn)換為IP地址。在網(wǎng)內(nèi)有一臺(tái)計(jì)算機(jī)運(yùn)行將域名轉(zhuǎn)換為IP地址的軟件,這臺(tái)計(jì)算機(jī)叫DNS服務(wù)器(域名服務(wù)器)。它負(fù)責(zé)一定區(qū)域內(nèi)的計(jì)算機(jī)域名到IP地址的轉(zhuǎn)換,這個(gè)區(qū)域一般是一個(gè)網(wǎng)絡(luò)內(nèi)部的所有計(jì)算機(jī)。當(dāng)網(wǎng)內(nèi)的計(jì)算機(jī)用域名和其它計(jì)算機(jī)通訊時(shí),首先呼叫DNS服務(wù)器,DNS服務(wù)器送出此域名對(duì)應(yīng)的IP地址,網(wǎng)內(nèi)的計(jì)算機(jī)收到IP地址后,利用IP地址和其它計(jì)算機(jī)通訊。一臺(tái)DNS服務(wù)器不可能完成全世界所有域名轉(zhuǎn)換為IP地址的工作。DNS服務(wù)器采用分布式結(jié)構(gòu),如果本地DNS不能轉(zhuǎn)換相應(yīng)的域名,則向上一級(jí)DNS申請(qǐng)轉(zhuǎn)換。計(jì)算機(jī)要和INTERNET聯(lián)接,設(shè)置TCP/IP協(xié)議時(shí),必須設(shè)置DNS服務(wù)器IP地址。

9.1.5? ?Web網(wǎng)站工作方式和宿主目錄

Web網(wǎng)站是基于客戶機(jī)/服務(wù)器模式。用戶用瀏覽器訪問(wèn)Web網(wǎng)站的網(wǎng)頁(yè),運(yùn)行瀏覽器軟件的計(jì)算機(jī)叫客戶機(jī)。Web網(wǎng)站是一臺(tái)運(yùn)行Web服務(wù)器軟件的計(jì)算機(jī),稱作Web服務(wù)器。Web服務(wù)器在指定的文件夾中存有大量的網(wǎng)頁(yè),這個(gè)文件夾叫宿主目錄,宿主目錄下的文件對(duì)訪問(wèn)者都是可見的。Web服務(wù)器軟件總是在監(jiān)視是否有瀏覽器訪問(wèn)自己。客戶機(jī)用瀏覽器訪問(wèn)Web服務(wù)器,在瀏覽器地址欄鍵入要訪問(wèn)網(wǎng)頁(yè)的域名地址,用DNS(域名系統(tǒng))轉(zhuǎn)換域名為IP地址,通過(guò)IP地址和指定的Web服務(wù)器通訊,該Web服務(wù)器把指定網(wǎng)頁(yè)文件發(fā)送給瀏覽器。瀏覽器接到網(wǎng)頁(yè)數(shù)據(jù),將其顯示。

宿主目錄在不同的Web服務(wù)器軟件中是不同的。Windows2000的Web服務(wù)器軟件IIS的宿主目錄為Windows2000的安裝路徑\InetPub\wwwroot。大部分Web服務(wù)器允許修改宿主目錄,修改方法見9.1.12。

9.1.6? ?URL、超級(jí)鏈接和主頁(yè)

使用瀏覽器瀏覽Web網(wǎng)站網(wǎng)頁(yè)時(shí),實(shí)際上是用URL來(lái)定位一個(gè)網(wǎng)頁(yè)的。URL是Uniform Resource Location(統(tǒng)一資源定位器)的簡(jiǎn)稱。他的一般格式是:http://域名:端口號(hào)/網(wǎng)頁(yè)文件路徑。http:是Web專用超文本傳輸協(xié)議。域名,即上邊講到,例如www.microsoft.com是微軟域名,此處可以是IP地址,其格式為http://IP地址:端口號(hào)/網(wǎng)頁(yè)文件路徑。網(wǎng)頁(yè)文件路徑是要訪問(wèn)的網(wǎng)頁(yè)文件相對(duì)于宿主目錄的相對(duì)路徑。在Web系統(tǒng)中,每一個(gè)網(wǎng)頁(yè)都有自己的URL,由URL決定網(wǎng)頁(yè)在INTERNET中的具體位置。URL很象計(jì)算機(jī)文件系統(tǒng)中的文件全路徑名。

網(wǎng)頁(yè)中有些文本帶有下劃線,當(dāng)鼠標(biāo)經(jīng)過(guò)這些帶有下劃線的文本時(shí),鼠標(biāo)變?yōu)槭中?#xff0c;單擊帶有下劃線的文本,將調(diào)入和這些文本有關(guān)的網(wǎng)頁(yè)并顯示。這種現(xiàn)象叫超級(jí)鏈接。超級(jí)鏈接的本質(zhì)是,單擊該關(guān)鍵詞,得到和關(guān)鍵詞有關(guān)的網(wǎng)頁(yè)的URL,用此URL訪問(wèn)指定Web服務(wù)器,該Web服務(wù)器送出此URL指定的網(wǎng)頁(yè),在瀏覽器中顯示。

如果訪問(wèn)時(shí)不指定網(wǎng)頁(yè)文件路徑及文件名,則訪問(wèn)網(wǎng)站主頁(yè),例如當(dāng)我們?cè)跒g覽器的URL(地址)處鍵入http://www.sun.com/時(shí),將訪問(wèn)sun公司主頁(yè)。主頁(yè)文件一定存在宿主目錄中。主頁(yè)文件名在不同的Web服務(wù)器中是不同的。Windows2000的Web服務(wù)器軟件IIS默認(rèn)主頁(yè)文件名為Default.htm。當(dāng)用戶使用不帶文件名的URL訪問(wèn)Web服務(wù)器時(shí),并且宿主目錄中不存在主頁(yè),而且Web服務(wù)器允許列出宿主目錄下的所有文件及目錄,將在瀏覽器中列出宿主目錄下的所有文件及目錄。

9.1.7? ?端口號(hào)

一臺(tái)計(jì)算機(jī)上可能運(yùn)行多個(gè)服務(wù)器軟件,如Web服務(wù)器軟件(可能不只一個(gè))、ftp服務(wù)器軟件等,它們的IP地址是相同的。為了區(qū)分不同的服務(wù)器軟件,可為運(yùn)行的每個(gè)服務(wù)器軟件編一個(gè)號(hào),叫端口號(hào)。如果一臺(tái)計(jì)算機(jī)僅運(yùn)行一個(gè)Web服務(wù)器軟件,并使用默認(rèn)端口號(hào)80,端口號(hào)可以不寫。但如有多個(gè)Web服務(wù)器運(yùn)行,在訪問(wèn)不是采用默認(rèn)端口號(hào)的Web服務(wù)器軟件時(shí),URL必須指明使用的端口號(hào)。訪問(wèn)其它服務(wù)器軟件也有同樣問(wèn)題,處理方法相同。

9.1.8? ?HTML,HTTP和網(wǎng)頁(yè)

網(wǎng)頁(yè)使用HTML標(biāo)記語(yǔ)言寫成。HTML標(biāo)記是用特殊的ASCII字符來(lái)定義網(wǎng)頁(yè)中的格式、字體、顏色等內(nèi)容。由于各種系統(tǒng)中,例如Windows、Linux、Unix和蘋果系統(tǒng),都支持ASCII字符標(biāo)準(zhǔn),不同系統(tǒng)中的瀏覽器都可以解釋這些HTML標(biāo)記,然后使用本系統(tǒng)的方法,將用HTML標(biāo)記語(yǔ)言標(biāo)記的網(wǎng)頁(yè)在屏幕中顯示。這樣,不同的系統(tǒng)都使用統(tǒng)一的HTML標(biāo)記創(chuàng)建網(wǎng)頁(yè),任何一個(gè)系統(tǒng)的瀏覽器都可以訪問(wèn)其它系統(tǒng)中的網(wǎng)頁(yè)。

網(wǎng)頁(yè)是Web系統(tǒng)中最小傳輸單位,它是用HTML語(yǔ)言標(biāo)記的具有一定格式的數(shù)據(jù)集合,可供瀏覽器顯示。HTTP是超文本傳輸協(xié)議,用在Web服務(wù)器和瀏覽器之間傳輸網(wǎng)頁(yè)。本質(zhì)上是TCP/IP協(xié)議,所有的Web服務(wù)器和瀏覽器都應(yīng)遵守HTML和HTTP協(xié)議,才能使同一網(wǎng)頁(yè)在任何計(jì)算機(jī)中,使用任何瀏覽器都能顯示同一畫面。但實(shí)際上各公司瀏覽器軟件是有差異的,最明顯的是IE和Netscape之間在顯示同一網(wǎng)頁(yè)時(shí),是有差別的。做好網(wǎng)頁(yè)后,應(yīng)用不同瀏覽器測(cè)試一下,看是否都能通過(guò)

9.1.9? ?靜態(tài)網(wǎng)頁(yè)

創(chuàng)建一個(gè)網(wǎng)站,必須編制若干網(wǎng)頁(yè),網(wǎng)站才算建成。靜態(tài)網(wǎng)頁(yè)是預(yù)先做好的網(wǎng)頁(yè),在被訪問(wèn)時(shí)不能被修改。靜態(tài)網(wǎng)頁(yè)制作比較容易,即使不懂超文本語(yǔ)言,使用FrontPage,Dreamewarer等應(yīng)用程序也可以完成,而動(dòng)態(tài)網(wǎng)頁(yè)制作則比較困難。

9.1.10? 客戶端動(dòng)態(tài)網(wǎng)頁(yè)

客戶端動(dòng)態(tài)網(wǎng)頁(yè)的例子很多,例如網(wǎng)頁(yè)根據(jù)上午、下午、晚上問(wèn)客人早上好、下午好和晚上好;又如網(wǎng)頁(yè)對(duì)于用戶輸入的內(nèi)容進(jìn)行檢查,根據(jù)用戶的選擇完成不同的功能;在瀏覽器內(nèi)實(shí)現(xiàn)動(dòng)畫,放映影片等,這些都是客戶端動(dòng)態(tài)網(wǎng)頁(yè)的例子。可以在HTML語(yǔ)言標(biāo)記中加入Javascript或VBscript腳本語(yǔ)言來(lái)實(shí)現(xiàn)客戶端動(dòng)態(tài)網(wǎng)頁(yè)。也可以在HTML語(yǔ)言嵌入Java小程序(Applet)來(lái)實(shí)現(xiàn)。編寫客戶端動(dòng)態(tài)網(wǎng)頁(yè),除了要學(xué)習(xí)HTML語(yǔ)言,還應(yīng)該學(xué)習(xí)VBscript或Javascript腳本語(yǔ)言,進(jìn)一步還可以學(xué)習(xí)Java語(yǔ)言。另外使用微軟的ActiveX控件也是實(shí)現(xiàn)客戶端動(dòng)態(tài)網(wǎng)頁(yè)的一種方法。

9.1.11? Web應(yīng)用程序和服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)

舉一個(gè)客戶登錄的例子,當(dāng)客戶用瀏覽器填好表格后,將表格數(shù)據(jù)傳回Web服務(wù)器,應(yīng)把這些信息存入數(shù)據(jù)庫(kù)。Web服務(wù)器軟件并不能完成此項(xiàng)工作,它調(diào)用運(yùn)行Web服務(wù)器軟件的計(jì)算機(jī)上的其它程序完成,這個(gè)程序叫Web應(yīng)用程序。又如,建立一個(gè)中學(xué)校園網(wǎng),并建立一個(gè)學(xué)生信息數(shù)據(jù)庫(kù),可供校長(zhǎng)、教導(dǎo)處、老師查詢。一般要根據(jù)一些條件進(jìn)行查詢,如某班的學(xué)生,獲得三好生的學(xué)生等。瀏覽器把所查找的條件送給Web服務(wù)器后,Web服務(wù)器必須調(diào)用Web應(yīng)用程序完成此項(xiàng)工作,此程序從數(shù)據(jù)庫(kù)查到有關(guān)數(shù)據(jù)后,要轉(zhuǎn)換查找結(jié)果為HTML語(yǔ)言標(biāo)記的網(wǎng)頁(yè),傳送給Web服務(wù)器,再發(fā)送給請(qǐng)求此項(xiàng)查詢的瀏覽器。這個(gè)根據(jù)查詢條件動(dòng)態(tài)生成的網(wǎng)頁(yè)叫做服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)。編制服務(wù)器端Web應(yīng)用程序主要有如下幾種方法:CGI,ISAPI,NSAPI,ASP,ASP.Net,JSP,PHP等。ASP.Net技術(shù)是微軟最新提出的編制Web應(yīng)用程序的技術(shù)。Web應(yīng)用程序在Web網(wǎng)站系統(tǒng)中所起的作用如下圖,圖中用ASP.Net實(shí)現(xiàn)的Web應(yīng)用程序采用ADO.Net技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。該圖是一個(gè)典型的三層數(shù)據(jù)庫(kù)系統(tǒng),所謂三層是根據(jù)功能將應(yīng)用分為表示層、功能層、數(shù)據(jù)層3部分。這里的3層分別用瀏覽器、Web服務(wù)器(包含Web應(yīng)用程序)、數(shù)據(jù)庫(kù)服務(wù)器實(shí)現(xiàn)。一些文獻(xiàn)中提到4層數(shù)據(jù)庫(kù)系統(tǒng)是將Web應(yīng)用程序從Web服務(wù)器分離,在Web服務(wù)器和數(shù)據(jù)庫(kù)之間增加一個(gè)應(yīng)用服務(wù)器(應(yīng)用層)。這里主要講述Web應(yīng)用程序的設(shè)計(jì)方法。

? ? ?? ??? ??

???

瀏覽器

??? ???

?? ??? ??

???

Web服務(wù)器

??? ???

?? ??? ??

???

Web應(yīng)用程序

??? ???

?? ??? ??

???

數(shù)據(jù)庫(kù)服務(wù)器

??? ???

?

?

?

?

?

?

????????????????????????????????????? 訪問(wèn)數(shù)據(jù)庫(kù)的方法

9.1.12? 修改宿主目錄及建立虛擬目錄

創(chuàng)建一個(gè)網(wǎng)站,必須有如下條件:第一,聯(lián)網(wǎng)并有固定的IP地址。第二,安裝并運(yùn)行Web服務(wù)器軟件,例如Windows操作系統(tǒng)下的IIS,Unix或Liunx下的Aparc。第三,在宿主目錄下有可供游覽的網(wǎng)頁(yè)。具備以上三個(gè)條件,就可以用瀏覽器訪問(wèn)此Web網(wǎng)站中的靜態(tài)網(wǎng)頁(yè)。如果在網(wǎng)站中要使用ASP.Net技術(shù)編寫的網(wǎng)頁(yè),必須在網(wǎng)站所在的Windows2000操作系統(tǒng)中安裝Microsoft.Net Framework。Windows2000的IIS服務(wù)器默認(rèn)的宿主目錄為Windows2000的安裝路徑\InetPub\wwwroot。可以修改宿主目錄為其它任意目錄,例如修改Windows2000的IIS服務(wù)器的宿主目錄為D:/asp方法如下:

(1)??? 在D盤創(chuàng)建文件夾:ASP。打開控制面板,雙擊管理工具圖標(biāo)。再雙擊Internet服務(wù)管理器圖標(biāo)。出現(xiàn)如下對(duì)話框(圖9.1.12A)。

? ? ? ? ? ? ? ? ? ? ? ?

圖9.1.12A

(2)??? 在對(duì)話框左側(cè),右擊第一個(gè)+號(hào)后的計(jì)算機(jī)名,在彈出快捷菜單中,單擊"新建"|"WEB站點(diǎn)"菜單項(xiàng),打開"向?qū)?#34;對(duì)話框,按向?qū)Р襟E選擇文件夾D:/asp為新站點(diǎn)宿主目錄。單擊第一個(gè)+,打開文件樹,右擊"默認(rèn)WEB站點(diǎn)",在彈出快捷菜單中,單擊"停止"菜單項(xiàng),停止"默認(rèn)WEB站點(diǎn)"。用同樣方法停止"管理WEB站點(diǎn)"。

(3)??? 右擊圖9.12.1A中的某一站點(diǎn),在彈出快捷菜單中單擊"屬性"菜單項(xiàng),出現(xiàn)如下窗口(圖9.12.1B),在窗口中可以修改此站點(diǎn)的各種屬性。其中"文檔"頁(yè)可以指定主頁(yè)的文件名。

?

圖9.12.1B

請(qǐng)讀者作如下試驗(yàn),首先用記事本創(chuàng)建如下網(wǎng)頁(yè):

<html>

? <body>

?? 這是我的第一個(gè)網(wǎng)頁(yè)

</body>

</html>

以文件名Test.htm存到d:/asp文件夾中,如本機(jī)IP地址為:202.204.206.98。在另一臺(tái)聯(lián)網(wǎng)計(jì)算機(jī)中打開瀏覽器,輸入地址:http://202.204.206.98/Test.htm,在瀏覽器中應(yīng)能看到文字:這是我的第一個(gè)網(wǎng)頁(yè)。從本機(jī)訪問(wèn)宿主目錄下的網(wǎng)頁(yè)時(shí),可以在瀏覽器的URL(地址)處鍵入:http://localhost/網(wǎng)頁(yè)相對(duì)宿主目錄的相對(duì)路經(jīng)。其它計(jì)算機(jī)訪問(wèn)時(shí),可以在瀏覽器的URL(地址)處鍵入:http://IP地址或域名/網(wǎng)頁(yè)相對(duì)宿主目錄的相對(duì)路經(jīng)。

也可以用創(chuàng)建虛擬目錄的方法存放網(wǎng)頁(yè)。所謂虛擬目錄,是指一個(gè)不在宿主目錄中的目錄,經(jīng)過(guò)設(shè)置后,可以看作宿主目錄中的一個(gè)子目錄,其中的網(wǎng)頁(yè)文件允許其它計(jì)算機(jī)的瀏覽器進(jìn)行瀏覽。創(chuàng)建虛擬目錄具體步驟如下:

(1)??? 打開控制面板,雙擊管理工具圖標(biāo)。

(2)??? 雙擊Internet 服務(wù)管理器圖標(biāo)。出現(xiàn)圖9.12.1A窗口。

(3)??? 單擊計(jì)算機(jī)名前的+號(hào),展開文件樹。

(4)??? 右擊默認(rèn)Web站點(diǎn),出現(xiàn)彈出菜單,在彈出快捷菜單中單擊"新建"|"虛擬目錄"菜單項(xiàng),打開向?qū)?duì)話框,按向?qū)Р襟E選擇D:/asp1為虛擬目錄。此時(shí),在默認(rèn)Web站點(diǎn)下將會(huì)出現(xiàn)設(shè)定的虛擬目錄(想一想虛擬目錄名是在何處設(shè)定的),此目錄允許其他人訪問(wèn)。如把文件Test.htm拷貝到這個(gè)虛擬目錄,請(qǐng)讀者寫出此網(wǎng)頁(yè)的URL。

9.2?? HTML標(biāo)記語(yǔ)言

網(wǎng)頁(yè)使用HTML標(biāo)記語(yǔ)言寫成。HTML標(biāo)記是用特殊的ASCII字符來(lái)定義網(wǎng)頁(yè)中的格式,字體等特點(diǎn)。由于各種系統(tǒng)中,都支持ASCII字符標(biāo)準(zhǔn),不同系統(tǒng)中的瀏覽器都可以解釋這些ASCII標(biāo)記,然后使用本系統(tǒng)方法,將用HTML語(yǔ)言標(biāo)記的網(wǎng)頁(yè)在屏幕中顯示。這樣,一個(gè)系統(tǒng)就可以訪問(wèn)其它不同系統(tǒng)中用HTML標(biāo)記的網(wǎng)頁(yè)。

不經(jīng)過(guò)Web服務(wù)器,雙擊靜態(tài)網(wǎng)頁(yè)或者在瀏覽器地址欄中鍵入網(wǎng)頁(yè)文件的全路徑,也可用瀏覽器顯示瀏覽器所在計(jì)算機(jī)中的靜態(tài)網(wǎng)頁(yè)。

9.2.1? HTML標(biāo)記

HTML標(biāo)記是用特殊的ASCII字符來(lái)定義網(wǎng)頁(yè)中的格式、字體、字符對(duì)齊方式等特點(diǎn)。其格式為:<標(biāo)記名稱>被控制的文字</標(biāo)記名稱>。其中,<標(biāo)記名稱>為開始標(biāo)記,</標(biāo)記名稱>為結(jié)束標(biāo)記,一般用來(lái)定義被控制的文字的格式或字體等。例如,下列標(biāo)記使被控制的文字中間對(duì)齊:<center>ASP.Net</center>

9.2.2? 網(wǎng)頁(yè)文件結(jié)構(gòu)

一個(gè)網(wǎng)頁(yè)文件的最基本HTML標(biāo)記結(jié)構(gòu)如下:

<html>

? <head>

?? <title>顯示在瀏覽器標(biāo)題欄中的文字</title>

? </head>

? <body>

?? 這里是網(wǎng)頁(yè)的內(nèi)容

</body>

</html>

<html>表示網(wǎng)頁(yè)文件的開始,</html>表示網(wǎng)頁(yè)文件的的結(jié)束,網(wǎng)頁(yè)的所有內(nèi)容都應(yīng)在這兩個(gè)標(biāo)記之間。<head>…</head>之間可以設(shè)定網(wǎng)頁(yè)的一些信息,網(wǎng)頁(yè)也允許不包括這個(gè)標(biāo)記,<title>…</title>之間的文字顯示在瀏覽器的標(biāo)題欄中。<body>…</body>之間是網(wǎng)頁(yè)在瀏覽器中顯示的內(nèi)容。由此可以看出,在HTML語(yǔ)法中,HTML標(biāo)記可以嵌套,一個(gè)HTML標(biāo)記可以包含另一個(gè)HTML標(biāo)記,但標(biāo)記的嵌套不能是交錯(cuò)的。下邊是一個(gè)實(shí)際例子:

<html>

? <head>

??? <title>這是我的第一個(gè)網(wǎng)頁(yè)</title>

? </head>

? <body>

???? <center>

這是我的第一個(gè)網(wǎng)頁(yè)。<BR>

其中&ltBR&gt標(biāo)記表示換行,

注意,僅鍵入回車是不能在網(wǎng)頁(yè)中換行的。<BR>

注意空格的用法,??? 鍵入四個(gè)空格,網(wǎng)頁(yè)中只有一個(gè)空格。<BR>

增加4個(gè)空格,&nbsp&nbsp&nbsp&nbsp是4個(gè)空格<BR>

網(wǎng)頁(yè)中不區(qū)分大小寫,不同瀏覽器顯示的效果可能不同<BR>

<p>這是段落標(biāo)記,下面文字另起一段</p>

<!--這是注釋,瀏覽時(shí)不顯示-->

注意,特殊符號(hào)的顯示:&lt,&gt,&quot,&amp,&copy,&reg

???? </center>

? </body>

</html>

網(wǎng)頁(yè)用IE瀏覽器顯示效果如右圖,請(qǐng)注意顯示的內(nèi)容和原文件內(nèi)容排版格式的不同。

?

9.2.3? ?網(wǎng)頁(yè)使用的語(yǔ)言字符集

網(wǎng)頁(yè)中如果不指定語(yǔ)言字符集,將使用瀏覽器所在操作系統(tǒng)的默認(rèn)語(yǔ)言字符集,為了保證網(wǎng)頁(yè)能正確顯示信息,最好在網(wǎng)頁(yè)中指定本網(wǎng)頁(yè)使用的語(yǔ)言字符集。在網(wǎng)頁(yè)中指定網(wǎng)頁(yè)使用的語(yǔ)言字符集方法見下邊的網(wǎng)頁(yè),其中g(shù)b2312是中文字符集。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>meta的使用</title>

</head>

<body>

meta的使用。

</body>

</html>

9.2.4? ?背景和文字顏色及文字邊距

設(shè)置背景和文字顏色及文字邊距的語(yǔ)法如下:<body bgcolor=#,text=#,link=#,alink=#, vlink=#,leftmargin=20>。其中bgcolor為背景顏色,text為非超級(jí)鏈接字符顏色,link為超級(jí)鏈接字符顏色,alink為正被點(diǎn)擊的超級(jí)鏈接字符顏色,vlink為已被訪問(wèn)的超級(jí)鏈接字符顏色,#表示具體顏色,可用rrggbb表示,rr、gg、bb分別是表示紅色、綠色、藍(lán)色的16進(jìn)制數(shù),例如,紅色為:ff0000。可以用topmargin、bottommargin、leftmargin、rightmargin設(shè)置頁(yè)面上下左右邊距,單位為像素。下例設(shè)置背景色為紅色,頁(yè)面左右邊距為20個(gè)像素。

<html>

<body bgcolor=ff0000,leftnargin=20,rightnargin=20>

設(shè)置背景色為紅色,頁(yè)面左右邊距為20個(gè)像素。

</body>

</html>

9.2.5? ?顯示一幅圖

下例在網(wǎng)頁(yè)中顯示一幅圖。注意網(wǎng)頁(yè)中的src="file:///D:/ASP/p1.jpg"的寫法。其中,file://是文件協(xié)議,用來(lái)選擇本地文件。一般網(wǎng)頁(yè)中用http://,即超文本協(xié)議,用URL定位圖像文件。如采用URL定位圖像文件,所創(chuàng)建網(wǎng)頁(yè)文件必須保存到Web服務(wù)器的宿主目錄中,在瀏覽器地址欄鍵入網(wǎng)頁(yè)的URL,才能訪問(wèn)所創(chuàng)建的網(wǎng)頁(yè),顯示圖像。

<html>

<body>

增加一幅圖形!<BR>

<IMG src="file:///D:/ASP/p1.jpg" width="320" height="240">

</body>

</html>

9.2.6? 超級(jí)鏈接

網(wǎng)頁(yè)中有些文字帶下劃線,當(dāng)鼠標(biāo)經(jīng)過(guò)帶下劃線文字時(shí),鼠標(biāo)變?yōu)槭中?#xff0c;單擊帶下劃線文字,將調(diào)入和單擊處文字有關(guān)的網(wǎng)頁(yè)并顯示。這種方法叫超級(jí)鏈接。本節(jié)例子用超級(jí)鏈接方法在當(dāng)前窗口打開網(wǎng)頁(yè)e9_2_5.htm。這里要求網(wǎng)頁(yè)e2_2_5.htm和本網(wǎng)頁(yè)在同一文件夾中。

<html>

<body>

? 這是一個(gè)

? <a href="e9_2_5.htm">鏈接的例子</a>

? 點(diǎn)一下帶下劃線的文字!

</body>

</html>

9.2.7? 超級(jí)鏈接在新窗口打開另一網(wǎng)頁(yè)

例子e9_2_7A:本例使用超級(jí)鏈接在新窗口打開另一網(wǎng)頁(yè),網(wǎng)頁(yè)文件如下:

<html>

<body>

?? <a href="e9_2_7B.htm"? target="window_name">開一個(gè)新窗口!</a>

</body>

</html>

用瀏覽器打開網(wǎng)頁(yè)e9_2_7A,將光標(biāo)移到”開一個(gè)新窗口”處,光標(biāo)變?yōu)槭中?#xff0c;單擊”開一個(gè)新窗口”,將在一個(gè)新窗口顯示e9_2_7B.htm網(wǎng)頁(yè)。

例子e9_2_7B:e9_2_7B.htm網(wǎng)頁(yè)如下:

<html>

<body>

?? <H1>這是新開的窗口!</H1>

?? <a href="e9_2_7A.htm> 打開原窗口 </a>"

? </body>

</html>

9.2.8? 網(wǎng)頁(yè)中標(biāo)題的字體

網(wǎng)頁(yè)中一共有6種標(biāo)題字體,見下例:

<html>

<body>

? <h1>這是1級(jí)標(biāo)題!</h1>

? <h2>這是2級(jí)標(biāo)題!</h2>

? <h3>這是3級(jí)標(biāo)題!</h3>

? <h4>這是4級(jí)標(biāo)題!</h4>

? <h5>這是5級(jí)標(biāo)題!</h5>

? <h6>這是6級(jí)標(biāo)題!</h6>

</body>

</html>

其中,標(biāo)題字體是黑體,每個(gè)標(biāo)題后自動(dòng)插入一個(gè)空行。

9.2.9? 網(wǎng)頁(yè)中正文字體

可以設(shè)置網(wǎng)頁(yè)中正文字體的字號(hào),字號(hào)只能是1到7。設(shè)置正文字體字號(hào)方法見例子:

<html>

<body>

?? <font size=7>字號(hào)為7,最大字體</font>

?? <font size=6>字號(hào)為6</font>

?? <font size=5>字號(hào)為5</font>

?? <font size=4>字號(hào)為4</font>

?? <font size=3>字號(hào)為4</font>

?? <font size=2>字號(hào)為2</font>

?? <font size=1>字號(hào)為1,最小字體</font>

</body>

</html>

9.2.10? 設(shè)置字體風(fēng)格

可以使在網(wǎng)頁(yè)中顯示的字體為斜體、粗體,為字體增加下劃線,刪除線。見下例:

<html>

<body>

??? <b>標(biāo)記內(nèi)的字為黑體</b> <br>

??? <i>標(biāo)記內(nèi)的字為斜體</i> <br>

??? <u>標(biāo)記內(nèi)的字有下劃線</u> <br>

??? <tt>標(biāo)記內(nèi)的字等寬,例如w和i等寬</tt> <br>

??? H<sub>2</sub> ,2為下標(biāo)<br>

??? A<sup>2</sup> ,2為上標(biāo)<br>

??? <s>標(biāo)記內(nèi)的字加刪除線</s> <br>

??? <strike>標(biāo)記內(nèi)的字加刪除線</strike> <br>

</body>

</html>

9.2.11? 字體標(biāo)記的組合使用

通過(guò)標(biāo)記的嵌套,可以使網(wǎng)頁(yè)中的字符具有多種屬性,見下例:

<html>

<body>

?? <i><font size=5><b>今天</b>天氣<font size=6>真好!</font></font></i>

</body>

</html>

9.2.12? 字體的顏色

可以使網(wǎng)頁(yè)中的字符具有不同顏色,見下例:

<html>

<body>

??? <font size=5 color=000000>黑色的字符串</font>&

??? <font size=5 color=red>紅色的字符串</font>

</body>

</html>

9.2.13? 網(wǎng)頁(yè)中控件的概念

Web服務(wù)器為了和用戶進(jìn)行交互,必須解決如下問(wèn)題:首先,用戶應(yīng)能輸入一些數(shù)據(jù),例如,要查詢的條件,用戶登錄的信息等。第二,這些數(shù)據(jù)用什么方法傳到Web服務(wù)器。第三,Web服務(wù)器用哪個(gè)程序響應(yīng)用戶。為了實(shí)現(xiàn)以上功能,必須使用窗體控件,也叫表單控件form。同時(shí)在表單控件form中還需要一些其它控件,例如,編輯框控件,列表框控件,下拉列表框控件和按鈕等,用來(lái)輸入數(shù)據(jù)。可以用HTML標(biāo)記語(yǔ)言標(biāo)記這些控件。瀏覽器看到這些標(biāo)記,就把它顯示為相應(yīng)的控件。控件有許多屬性,也可以用HTML標(biāo)記語(yǔ)言描述,格式為:屬性名稱=屬性值,兩個(gè)屬性用空格分開。

9.2.14? 窗體控件和其它控件的使用

窗體控件(表單控件form)是其它控件的容器,所有其它控件都要放到窗體控件中。用HTML標(biāo)記表單控件form的基本語(yǔ)法如下:

<form action=URL method="POST">

?? <!--在此處增加交互控件,例如編輯框、列表框-->

? <input type="submit" value="提交" name="B1">

<input type="reset" value="全部重寫" name="B2">

</form>

其中,標(biāo)記<form action=URL method="POST">…</form>定義表單控件form,action=URL中的URL是單擊"提交"按鈕后,對(duì)用戶輸入信息進(jìn)行處理的網(wǎng)頁(yè)URL,method="POST"表示用POST方法將用戶輸入的數(shù)據(jù)傳到Web服務(wù)器,也可以用get方法。傳遞格式為:Name=Value。

form控件內(nèi)可以增加交互控件,用戶用交互控件輸入數(shù)據(jù)。交互控件的標(biāo)記語(yǔ)法如下:<input type=?align=top|middle|bottom [check] maxlength=? Name=? Size=? Src=? Type=? Value=?>,input表示定義一個(gè)交互控件,其它各個(gè)屬性意義如下:

Type為控件類型,可以是:type="submit"為提交按鈕;type="reset"為全部重寫按鈕; type="checkbox"為復(fù)選框;type="radio"為單選框;type="image"為圖形;type="text"為編輯框;type="password"為口令編輯框;type="hidden"用戶不能看到,可以用來(lái)傳遞網(wǎng)頁(yè)的一些隱藏的數(shù)據(jù)。align為控件中文本對(duì)齊方式,可以取top、middle和bottom。[check]只有在type="checkbox"或"radio"時(shí)使用,表示缺省被選中。Maxlength屬性在type="text"編輯框時(shí)表示最大字符長(zhǎng)度。Name屬性代表此控件的名字。Size屬性在type="text"編輯框時(shí)表示編輯框最大寬度。Value如為按鈕,則為標(biāo)題,為編輯框,則為缺省內(nèi)容。

在form控件內(nèi)已定義了兩個(gè)按鈕控件,其中<input type="submit" value="提交" name= "B1">是"提交"按鈕控件,因此類型為submit,按鈕標(biāo)題為"提交",控件的name為"B1",當(dāng)用戶單擊此按鈕,form控件將把控件內(nèi)的所有交互控件中的數(shù)據(jù)用method屬性指定方法,傳遞給action指定的網(wǎng)頁(yè)處理。<input type="reset" value="全部重寫" name="B2">也是一個(gè)按鈕,用戶單擊此按鈕,將清空f(shuō)orm控件內(nèi)的所有可輸入數(shù)據(jù)的交互控件。

9.2.15? 例子:使用控件的網(wǎng)頁(yè)

本例請(qǐng)用戶用編輯框輸入用戶姓名、用戶主頁(yè)網(wǎng)址、用戶密碼,有兩個(gè)按鈕,單擊"提交"按鈕,將把用戶輸入數(shù)據(jù)提交給網(wǎng)頁(yè)e1.htm處理,e1.htm網(wǎng)頁(yè)和本例網(wǎng)頁(yè)在同一文件夾中。如希望重新填寫,可以單擊"全部重寫"按鈕,清空輸入控件。網(wǎng)頁(yè)的具體內(nèi)容如下:

<html>

<head>

<title>使用控件的網(wǎng)頁(yè)例子</title>

</head>

<body>

<form method="POST" action="e1.htm">

????? 您的姓名:<input type="text" name="T1" size="20"><br>

????? 您的主頁(yè)的網(wǎng)址:<input type="text" name="T2" size="20"><br>

????? 密碼:<input type="password" name="T3" size="20"><br>

????? <input type="submit" value="提交"><input type="reset" value="全部重寫"><br>

</form>

</body>

</html>

用記事本程序輸入此網(wǎng)頁(yè),以e9_2_15.htm為文件名存入d:/asp文件夾,這里已假設(shè)d:/asp文件夾為網(wǎng)站的宿主目錄。用瀏覽器打開此網(wǎng)頁(yè),瀏覽器顯示效果如右圖。

9.2.16? 用FrontPage做網(wǎng)頁(yè)的例子

用FrontPage或Dreamewarer程序編輯網(wǎng)頁(yè)要比使用記事本編輯網(wǎng)頁(yè)方便的多,這兩個(gè)程序都是所見即所得的可視化網(wǎng)頁(yè)設(shè)計(jì)工具。使用FrontPage設(shè)計(jì)網(wǎng)頁(yè)的具體步驟如下:

(1)? 運(yùn)行FrontPage。單擊主菜單"文件"|"新建"|"網(wǎng)頁(yè)"菜單項(xiàng)。出現(xiàn)"新建"對(duì)話框,選擇"常規(guī)"選項(xiàng)卡頁(yè)中的"普通網(wǎng)頁(yè)",單擊"確定"按鈕,創(chuàng)建一個(gè)新網(wǎng)頁(yè)。

(2)? 單擊主菜單"插入"|"表單"|"表單",增加一個(gè)表單(form)。在表單中已有"提交"按鈕和"全部重寫"兩個(gè)按鈕。將光標(biāo)移到提交按鈕前,鍵入回車,增加form垂直方向尺寸。

(3)? 右擊"提交"按鈕,單擊彈出快捷菜單中"表單域?qū)傩?#34;菜單項(xiàng),出現(xiàn)"按鈕屬性"對(duì)話框,在"名稱(N)"編輯框健入按鈕名稱(Name屬性),"值/標(biāo)簽(V)"編輯框中健入按鈕標(biāo)題,選擇按鈕類型為"提交"。退出對(duì)話框。用同樣方法修改另一按鈕的標(biāo)題為"全部重寫"。

(4)? 將光標(biāo)移到第一行,單擊VS.Net菜單"插入"|"表單"|"復(fù)選框"菜單項(xiàng),在第一行增加一個(gè)復(fù)選框。右擊復(fù)選框,單擊彈出的快捷菜單中"表單域?qū)傩?#34;菜單項(xiàng),出現(xiàn)"復(fù)選框?qū)傩?#34;對(duì)話框,在"名稱(N)"編輯框健入"水果1",初始狀態(tài)為選中,關(guān)閉對(duì)話框,在復(fù)選框后鍵入字符:香蕉。用同樣方法增加另外兩個(gè)復(fù)選框:蘋果、桔子。

(5)? 用FrontPage創(chuàng)建的網(wǎng)頁(yè)文件如下:

<html>

<head>

<meta http-equiv="Content-Language" content="en-us">

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta name="GENERATOR" content="Microsoft FrontPage 4.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<title>New Page 2</title>

</head>

<body>

<form method="POST" action="--WEBBOT-SELF--">

??<!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.txt"

? S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->

? <p><input type="checkbox" name="水果1" value="香蕉">Banana</p>

? <p><input type="checkbox" name="水果2" value="蘋果" checked>Apple</p>

? <p><input type="checkbox" name="水果3" value="桔子" checked>Orange</p>

? <p><input type="submit" value="提交查詢內(nèi)容" name="B1"><input type="reset" value="全部重寫" name="B2"></p>

</form>

</body>

</html>

9.3 ASP.Net技術(shù)基礎(chǔ)

上節(jié)用Html標(biāo)記語(yǔ)言定義了一些標(biāo)準(zhǔn)的控件,例如編輯框控件,列表框控件,下拉列表框控件和按鈕等。但這些控件功能有限,如果要實(shí)現(xiàn)復(fù)雜的功能,程序員要編寫大量的代碼。程序員迫切需要一種設(shè)計(jì)服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)的可視化工具,能象使用C#語(yǔ)言設(shè)計(jì)Window應(yīng)用程序一樣設(shè)計(jì)動(dòng)態(tài)網(wǎng)頁(yè),使用控件的屬性、事件和方法等面向?qū)ο蟮母拍睢?/p>

為了實(shí)現(xiàn)這個(gè)目的,引入ASP.Net服務(wù)器端控件概念。ASP.Net首先引入運(yùn)行在服務(wù)端WebForm概念,代替表單(form)。在WebForm中可以放入多個(gè)服務(wù)器端控件,除了列表框、編輯框、按鈕等控件,還包括一些新的功能更加強(qiáng)大的控件,例如DataGrid,數(shù)據(jù)驗(yàn)證控件等。所有這些控件,都是.Net框架類庫(kù)中相應(yīng)的類,有自己的屬性、方法和事件,能夠完成復(fù)雜的功能,例如自動(dòng)響應(yīng)事件,支持?jǐn)?shù)據(jù)綁定等。這些概念和編制Windows應(yīng)用程序相應(yīng)的概念基本相同。這些ASP.Net服務(wù)器端控件也使用Html語(yǔ)言標(biāo)記。但由于瀏覽器并不能解釋這些服務(wù)器端控件的Html標(biāo)記,因此并不傳送包含這些服務(wù)器端控件的網(wǎng)頁(yè)給瀏覽器解釋,而是由Web服務(wù)器負(fù)責(zé)翻譯包含這些服務(wù)器端控件的網(wǎng)頁(yè)為所有瀏覽器都能解釋的標(biāo)準(zhǔn)Html標(biāo)記的網(wǎng)頁(yè),翻譯后的網(wǎng)頁(yè)在瀏覽器端執(zhí)行的代碼為所有瀏覽器都能解釋的標(biāo)準(zhǔn)Jscript腳本語(yǔ)言代碼,傳送給瀏覽器解釋或執(zhí)行。這樣就極大地簡(jiǎn)化了服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì),也保證了生成的網(wǎng)頁(yè)的顯示效果和瀏覽器無(wú)關(guān)。使用ASP.Net技術(shù)創(chuàng)建的服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè),網(wǎng)頁(yè)文件的擴(kuò)展名為.aspx。

本節(jié)首先介紹ASP.Net服務(wù)器端控件基本概念,然后介紹使用記事本編寫ASP.Net動(dòng)態(tài)網(wǎng)頁(yè)的方法,最后介紹如何使用VS.Net編寫ASP.Net動(dòng)態(tài)網(wǎng)頁(yè)。

9.3.1? HTML服務(wù)器端控件

ASP.Net中的HTML服務(wù)器端控件和標(biāo)準(zhǔn)的HTML控件有著對(duì)應(yīng)關(guān)系,但功能更強(qiáng)大。可以在程序中修改HTML服務(wù)器端控件的屬性,能夠在服務(wù)器端響應(yīng)事件,支持?jǐn)?shù)據(jù)綁定等。例如增加一個(gè)HTML服務(wù)器端控件編輯框用如下HTML語(yǔ)句:

<INPUT TYPE=”TEXT” ID=”Text1” MAXLENGTH=16 RUNAT=”SERVER”/>

和標(biāo)準(zhǔn)的HTML控件的區(qū)別是增加了屬性RUNAT="SERVER"。屬性ID是代表這個(gè)控件對(duì)象的唯一標(biāo)志,和Windows應(yīng)用程序中的控件屬性Name的意義是一樣的。HTML服務(wù)器端控件是為了方便原來(lái)學(xué)習(xí)HTML或ASP編寫Web應(yīng)用程序的程序員而提供的。如果,你以前是Windows應(yīng)用程序員,建議使用Web服務(wù)器端控件,這些控件不但功能更強(qiáng)大,而使用上更象Windows應(yīng)用程序中的控件,因此學(xué)習(xí)更方便。因此這里就不介紹HTML服務(wù)器端控件了。

9.3.2? Web服務(wù)器端控件

在ASP.Net系統(tǒng)中,除了HTML服務(wù)器端控件外,還包括Web服務(wù)器端控件。同HTML服務(wù)器端控件一樣,這些控件可以在程序中修改服務(wù)器端控件的屬性,能夠在服務(wù)器端響應(yīng)事件,支持?jǐn)?shù)據(jù)綁定等。例如定義一個(gè)Web服務(wù)器端編輯框控件,方法如下:

<asp:TextBox id="textBox1" runat="server"/>

這里asp:TextBox表示這是一個(gè)Web服務(wù)器端編輯框控件,runat="server"表示運(yùn)行在服務(wù)器端,屬性id是代表這個(gè)控件的唯一標(biāo)志,相當(dāng)于Windows應(yīng)用程序中的控件屬性Name。服務(wù)器端控件不但功能更強(qiáng)大,而且和編制Windows應(yīng)用程序中的控件使用方法基本一致,因此學(xué)習(xí)更方便。除了提供和標(biāo)準(zhǔn)HTML控件功能類似的服務(wù)器端控件外,還增加了一些新的服務(wù)器端控件,例如:DataGrid,數(shù)據(jù)驗(yàn)證控件等。本書的所有Web應(yīng)用程序例子都使用Web服務(wù)器端控件。

9.3.3? Web Form的事件處理

象Windows應(yīng)用程序一樣,ASP.Net應(yīng)用程序也采用事件驅(qū)動(dòng)的概念,用戶對(duì)瀏覽器的各種操作都被看作事件,事件產(chǎn)生后,Web應(yīng)用程序用事件處理函數(shù)響應(yīng)事件。但ASP.Net的事件驅(qū)動(dòng)模型和Windows應(yīng)用程序的事件驅(qū)動(dòng)模型有著本質(zhì)上的區(qū)別。Web應(yīng)用程序中的Web服務(wù)器端控件產(chǎn)生事件后,由于事件處理函數(shù)在Web服務(wù)器端,網(wǎng)頁(yè)的WebForm控件把事件通過(guò)網(wǎng)絡(luò)使用HTTP協(xié)議由瀏覽器傳到Web服務(wù)器,在Web服務(wù)器執(zhí)行事件處理函數(shù),把運(yùn)行結(jié)果轉(zhuǎn)變?yōu)闃?biāo)準(zhǔn)HTML標(biāo)記語(yǔ)言標(biāo)記的網(wǎng)頁(yè),傳回瀏覽器。

在Web事件處理機(jī)制中,每一次Web應(yīng)用程序響應(yīng)事件都會(huì)使得網(wǎng)頁(yè)重新生成,即刷新網(wǎng)頁(yè)。在服務(wù)器完成對(duì)某一個(gè)網(wǎng)頁(yè)的處理操作并將它傳送至瀏覽器,隨即移除該網(wǎng)頁(yè)在服務(wù)器端的所有數(shù)據(jù),包括Web應(yīng)用程序在服務(wù)器端運(yùn)行時(shí)生成的方法,對(duì)象,變量,也就是說(shuō),這些定義的對(duì)象和變量在服務(wù)器端已不存在了。當(dāng)Web應(yīng)用程序再一次響應(yīng)事件時(shí),運(yùn)行在服務(wù)器端的Web應(yīng)用程序又會(huì)重新生成這些方法,對(duì)象,變量。基于此原因,我們說(shuō)網(wǎng)頁(yè)是無(wú)狀態(tài)的,即網(wǎng)頁(yè)變量與控件的數(shù)據(jù)并不會(huì)保留在服務(wù)器上。

我們?cè)黾邮录幚砗瘮?shù)時(shí),應(yīng)考慮網(wǎng)絡(luò)傳播的速度的影響,不能象Windows應(yīng)用程序那樣,響應(yīng)太多的事件。在網(wǎng)頁(yè)中,每個(gè)控件都有屬性AutoPostBack,其值為true,事件發(fā)生后才能自動(dòng)調(diào)用事件處理函數(shù),如果不希望響應(yīng)該事件,應(yīng)將該控件的屬性AutoPostBack設(shè)為false。

9.3.4? 記事本編寫ASP.Net動(dòng)態(tài)網(wǎng)頁(yè)

ASP.Net中的服務(wù)器端控件也用HTML標(biāo)記,但這些服務(wù)器端控件的HTML標(biāo)記并不傳送給瀏覽器解釋,而是由Web服務(wù)器負(fù)責(zé)翻譯為所有瀏覽器都能解釋的標(biāo)準(zhǔn)HTML標(biāo)記后,傳送給瀏覽器解釋。所有ASP.Net服務(wù)器端控件都要放到Web窗體(WebForm)中,Web窗體也由Web服務(wù)器負(fù)責(zé)解釋。下邊是一個(gè)簡(jiǎn)單的使用Web服務(wù)器端控件的例子:

<%@ Page language="c#" %>

<html>

<head>

<title>這是我的第一個(gè)ASP.Net網(wǎng)頁(yè)</title>

</head>

<script language="c#" runat=server>

?? ?void Page_Load(Object src,EventArgs e)

?? ?{? if(Page.IsPostBack)//如果網(wǎng)頁(yè)是由于響應(yīng)事件后刷新,不執(zhí)行其后語(yǔ)句

Label1.Text="現(xiàn)在的時(shí)間是:"+DateTime.Now;

}

?? ?void EnterBtn_Click(Object src,EventArgs e)//按鈕單擊事件處理函數(shù)

?? ?{? Label1.Text="現(xiàn)在的時(shí)間是:"+DateTime.Now;}

</script>

<body>

? ?<form ?runat=server>

? ???<asp:Label id="Label1" font-size="14" font-bold="true" forecolor="red" runat=server>

現(xiàn)在的時(shí)間是:</asp:Label> <br>

???? <asp:button text="查看時(shí)間" Onclick="EnterBtn_Click" runat=server/>

? ?</form>

</body>

</html>

網(wǎng)頁(yè)文件第一條語(yǔ)句表示網(wǎng)頁(yè)中使用C#語(yǔ)言。<html>表示網(wǎng)頁(yè)文件的開始,</html>表示網(wǎng)頁(yè)文件的的結(jié)束,網(wǎng)頁(yè)的所有內(nèi)容都應(yīng)在這兩個(gè)標(biāo)記之間。定義在標(biāo)記<html>和</html>之間的內(nèi)容被分為三部分,第一部分:<head>和</head>之間可以設(shè)定網(wǎng)頁(yè)的一些信息,<title>和</title>之間的文字顯示在瀏覽器的標(biāo)題欄中。第二部分:<script language="c#" runat=server>和</script>標(biāo)記之間可以定義網(wǎng)頁(yè)中使用的方法,變量或?qū)ο?#xff0c;language="c#"表示在此標(biāo)記之間使用C#語(yǔ)言編制程序,runat=server表示在此標(biāo)記之間定義的方法運(yùn)行在Web服務(wù)器端,這里定義了兩個(gè)方法,方法Page_Load()是網(wǎng)頁(yè)每次被重新生成時(shí)調(diào)用的方法,包括第一次調(diào)用本網(wǎng)頁(yè),單擊瀏覽器刷新按鈕,以及網(wǎng)頁(yè)響應(yīng)事件后,前兩項(xiàng)使IsPostBack=false,后一項(xiàng)使IsPostBack=true,在此方法中可做一些初始化工作。語(yǔ)句if(Page.IsPostBack)表示如果網(wǎng)頁(yè)是由于響應(yīng)事件后刷新,不執(zhí)行其后語(yǔ)句。方法EnterBtn_Click()是"查看時(shí)間"按鈕的事件處理函數(shù)。第三部分:<body>和</body>之間是網(wǎng)頁(yè)在瀏覽器中顯示的內(nèi)容。<form ?runat=server>和</form>標(biāo)記定義Web窗體(WebForm),注意runat=server表示W(wǎng)eb窗體由Web服務(wù)器解釋。在Web窗體中增加了兩個(gè)控件對(duì)象,第一個(gè)是Label控件,asp:Label表示本控件是Label控件,id相當(dāng)Windows應(yīng)用程序中控件的Name屬性,用來(lái)區(qū)分不同對(duì)象,runat=server表示此控件由Web服務(wù)器解釋,其余是設(shè)定屬性值,注意不同屬性用空格分隔。第二個(gè)控件是按鈕,請(qǐng)注意定義單擊事件處理函數(shù)的方法。

將網(wǎng)頁(yè)以文件名e9_3_4.aspx存入d:/asp文件夾,如果d:/asp文件夾已被設(shè)定為Web站點(diǎn),可以在IE的地址欄輸入http://localhost/ e9_3_4.aspx,在瀏覽器中可以看到此網(wǎng)頁(yè)。在瀏覽器端看不到這些代碼,Web服務(wù)器已將ASP.Net網(wǎng)頁(yè)翻譯為標(biāo)準(zhǔn)的Html標(biāo)記,傳遞給瀏覽器,單擊IE主菜單"查看"|"源代碼"菜單項(xiàng),可以看到這些用標(biāo)準(zhǔn)HTML編制的網(wǎng)頁(yè)。

9.3.5? 用VS.Net創(chuàng)建ASP.Net動(dòng)態(tài)網(wǎng)頁(yè)

用VS.Net實(shí)現(xiàn)上節(jié)的例子。具體步驟如下:

(1) 運(yùn)行VS.Net,進(jìn)入開始界面(圖1.2.2A),單擊"新建項(xiàng)目"按鈕,打開"新建項(xiàng)目"對(duì)話框(圖1.2.2B),在"項(xiàng)目類型(P) "列表框中選擇"Visual C#項(xiàng)目",在"模板(T) "列表框中選擇"ASP.Net Web應(yīng)用程序",在"位置(L)"編輯框中鍵入:http://localhost/e9_3_5,http://localhost代表要建站點(diǎn)的宿主目錄,創(chuàng)建本W(wǎng)eb應(yīng)用程序項(xiàng)目的所有文件存入宿主目錄的文件夾e9_3_5中,點(diǎn)擊確定按鈕,生成一個(gè)空白窗體(WebForm1)。用戶可在窗體中放入其它服務(wù)器端控件。VS.Net自動(dòng)建立了一個(gè)Web應(yīng)用程序項(xiàng)目。

(2)放置一個(gè)Label控件到WebForm窗體中,該控件用來(lái)顯示一行文本。設(shè)置屬性text為"現(xiàn)在的時(shí)間是:",在屬性窗口中找到Font屬性,單擊Font屬性左邊的"+"號(hào),在出現(xiàn)的子屬性中,可以修改Label控件中文本的字體和字號(hào)等屬性。編輯完成后,單擊變成"-"號(hào)的方框隱藏Font的子屬性。修改ForeColor屬性,可以修改Label中文本的顏色。

(3)放置一個(gè)Button控件到WebForm窗體,按鈕的Text屬性為"查看時(shí)間"。為"查看時(shí)間"按鈕增加單擊(Click)事件處理函數(shù)如下:

private void Button1_Click(object sender, System.EventArgs e)

{?? Label1.Text="現(xiàn)在的時(shí)間是:"+DateTime.Now;

}

(4)已存在Page_Load函數(shù),在Page_Load事件處理函數(shù)中增加語(yǔ)句:

private void Page_Load(object sender, System.EventArgs e)

{?? Label1.Text="現(xiàn)在的時(shí)間是:"+DateTime.Now;

}

(5)?? 單擊工具欄中藍(lán)色箭頭按鈕,運(yùn)行,看一下效果。也可用瀏覽器看一下,在瀏覽器地址欄輸入地址:http://localhost/e9_3_5/WebForm1.aspx。請(qǐng)仔細(xì)觀察,每一步驟VS.Net都為我們?cè)黾恿耸裁凑Z(yǔ)句。

9.3.6? Code Behind技術(shù)

Code Behind技術(shù)把用HTML標(biāo)記語(yǔ)言標(biāo)記的界面和用C#語(yǔ)言編寫的代碼放在不同文件中。這對(duì)于代碼的重復(fù)使用,程序的調(diào)試和維護(hù)都是十分方便的。特別是在團(tuán)隊(duì)開發(fā)中,可以使不同人員編輯不同文件,極大地提高了效率。下面是使用Code Behind技術(shù)制作的網(wǎng)頁(yè)。

例子e9_3_6.aspx:這是網(wǎng)頁(yè)界面文件,其中不包括代碼,代碼在e9_3_6.aspx.cs文件中。語(yǔ)句<%@ Page Inherits="MyPage" src="e9_3_6.aspx.cs" %>中的src="e9_3_6.aspx.cs"表示網(wǎng)頁(yè)的所有C#語(yǔ)言代碼在文件e9_3_6.aspx.cs中,Inherits="MyPage"表示此網(wǎng)頁(yè)的基類。

<%@ Page Inherits="MyPage" src="e9_3_6.aspx.cs" %>

<html>

? <head>

??? <title>使用Code Behind的技術(shù)網(wǎng)頁(yè)</title>

? </head>

? <body>

??<form runat=server>

??? <asp:Label id="Label1" Text="" runat=server/>? <br>

??? <asp:button text="查看時(shí)間" Onclick="EnterBtn_Click" runat=server/>

? </form>

</body>

</html>

?????? 例子e9_3_6.aspx.cs這個(gè)文件是e9_3_6.aspx網(wǎng)頁(yè)中使用的代碼。

using System;

using System.Web.UI;

using System.Web.UI.WebControls;

public class MyPage:Page

{

?? public Label Label1;

?? public Button Button1;

?? public void EnterBtn_Click(Object src,EventArgs e)//事件處理函數(shù)

?? {? Label1.Text="現(xiàn)在的時(shí)間是:"+DateTime.Now;

?? }

}

VS.Net也使用了Code Behind技術(shù),當(dāng)我們使用VS.Net創(chuàng)建了一個(gè)Web應(yīng)用程序,將自動(dòng)創(chuàng)建了兩個(gè)文件,ASP.Net網(wǎng)頁(yè)界面文件WebForm1.aspx和網(wǎng)頁(yè)中使用的代碼文件WebForm1.aspx.cs,請(qǐng)讀者仔細(xì)察看這兩個(gè)網(wǎng)頁(yè),看是如何使用Code Behind技術(shù)。

9.3.7? Web應(yīng)用目錄

一個(gè)網(wǎng)站可能包含多種服務(wù),例如,遠(yuǎn)程登錄服務(wù)Telnet、文件傳送服務(wù)FTP、電子郵件服務(wù)E-mail、電子公告板系統(tǒng)BBS、萬(wàn)維網(wǎng)WWW(Web)、電子商務(wù)、IP電話等等。一般情況下,每種服務(wù)可能包含多個(gè)網(wǎng)頁(yè)及各種文件。用VS.Net開發(fā),用解決方案(Solution)和項(xiàng)目(Project)來(lái)管理所有的網(wǎng)頁(yè)和文件。一種服務(wù)功能需要的所有網(wǎng)頁(yè)文件和其它文件組成一個(gè)Web項(xiàng)目,Web項(xiàng)目中的所有網(wǎng)頁(yè)文件和其它文件被保存到網(wǎng)站宿主目錄的子目錄中,該子目錄被稱作"Web應(yīng)用目錄"。所有應(yīng)用項(xiàng)目組成一個(gè)解決方案。

如果一個(gè)Web項(xiàng)目要拷貝到其它計(jì)算機(jī)中運(yùn)行,首先要把Web項(xiàng)目所在的"Web應(yīng)用目錄"拷貝到該計(jì)算機(jī)宿主目錄下。在控制面板中,雙擊"管理工具"圖標(biāo),再雙擊"Internet 服務(wù)管理器"圖標(biāo),出現(xiàn)對(duì)話框(圖9.1.12A)。右擊項(xiàng)目所在的目錄名,在快捷菜單中選擇屬性,出現(xiàn)如下對(duì)話框,單擊"創(chuàng)建",生成"Web應(yīng)用目錄"后,網(wǎng)站能被瀏覽器訪問(wèn)。

?

9.3.8? ASP.Net和HTML兼容

任何一個(gè)靜態(tài)網(wǎng)頁(yè)只要把其擴(kuò)展名修改為aspx,在ASP.Net下仍可運(yùn)行,運(yùn)行效果和以前相同。見下例,它是一個(gè)普通的靜態(tài)網(wǎng)頁(yè)。

<html>

<body>

<h1>學(xué)生選課系統(tǒng)</h1>

??? <form method="POST" action="e9_3_7.htm">

????? 姓名:<input type="text" name="T1" size="20"><br>

????? 學(xué)號(hào):<input type="password" name="T2" size="20"><br>

????? 課程:<select size="1" name="D1">

?????????????? <option selected>微積分</option>

?????????????? <option>代數(shù)與幾何</option>

?????????????? <option>模擬電路</option>

?????????????? <option>機(jī)械原理</option>

??????? ?????</select>

???????????? <input type="submit" value="提交" name="B1">

</form>

</body>

</html>

將網(wǎng)頁(yè)以文件名e9_3_7.aspx存入d:/asp文件夾,如果d:/asp文件夾已被設(shè)定為Web站點(diǎn),可以在IE的地址欄輸入:http://localhost/ e9_3_7.aspx后,看到這個(gè)網(wǎng)頁(yè)。

ASP.Net的設(shè)計(jì)目標(biāo)之一就是盡可能地保持和現(xiàn)有ASP頁(yè)面的語(yǔ)法及運(yùn)行庫(kù)的兼容。希望將現(xiàn)有ASP頁(yè)面文件的擴(kuò)展名改為.aspx,這些頁(yè)面仍可以在ASP.Net中運(yùn)行。在大多數(shù)情況下該目標(biāo)已經(jīng)實(shí)現(xiàn)了,但一般要對(duì)某些基本代碼作出修改,因?yàn)锳SP.Net已不再支持VBScript了,而且VB語(yǔ)言本身也發(fā)生了變化。

9.3.9? 網(wǎng)頁(yè)Html標(biāo)記中使用C#語(yǔ)句

在網(wǎng)頁(yè)的HTML標(biāo)記中,可以插入一些C#語(yǔ)句,具體用法見下例:

<% @ Page Language="C#"%>

<html>

? <body>

???? <center>

?????? <% for (int i=0;i<8;i++){ %>

??????? <font size="<%=i%>">這是我的第一個(gè)ASP.Net網(wǎng)頁(yè)</font><br>

??????? <%}%>

??? </center>

?</body>

</html>

這樣使用C#語(yǔ)句,使程序變得十分難懂,不是一個(gè)好的習(xí)慣,不建議使用。

習(xí)題

(1)?? 舉出一些靜態(tài)網(wǎng)頁(yè)、客戶端動(dòng)態(tài)網(wǎng)頁(yè)和服務(wù)器端動(dòng)態(tài)網(wǎng)頁(yè)的例子。

(2)?? 創(chuàng)建d:/geng為網(wǎng)站的虛擬目錄,請(qǐng)問(wèn)如何訪問(wèn)geng目錄中的網(wǎng)頁(yè)。

(3)?? 創(chuàng)建一個(gè)鏈接到新浪網(wǎng)站主頁(yè)的網(wǎng)頁(yè)。

(4)?? 創(chuàng)建一個(gè)網(wǎng)頁(yè),顯示一幅圖片,用URL定位圖片文件位置。

(5)?? 配置自己的計(jì)算機(jī)的TCP/IP設(shè)置,請(qǐng)說(shuō)出配置中的網(wǎng)關(guān)的意義,如何獲得網(wǎng)關(guān)IP。

(6)?? 如何使自己創(chuàng)建的網(wǎng)站和默認(rèn)的網(wǎng)站并存,請(qǐng)寫出訪問(wèn)自己網(wǎng)站的URL。

(7)?? 用記事本程序編寫一個(gè)靜態(tài)網(wǎng)頁(yè),包括兩個(gè)單選按鈕和一個(gè)"提交"按鈕。

(8)?? 用FrontPage程序?qū)崿F(xiàn)上題網(wǎng)頁(yè)。

(9)?? 用記事本程序編寫一個(gè)ASP.Net網(wǎng)頁(yè),包括兩個(gè)按鈕,標(biāo)題分別為"紅色"和"黑色",單擊按鈕,將使標(biāo)簽控件字符顏色變?yōu)榧t色或黑色。

(10)?? 用VS.Net程序?qū)崿F(xiàn)上題網(wǎng)頁(yè)。

轉(zhuǎn)載于:https://www.cnblogs.com/Aha-Best/p/10931737.html

總結(jié)

以上是生活随笔為你收集整理的16第一章ASP.Net编程基础知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精成人 | 找av导航| 日韩不卡在线观看 | 丝袜一区二区三区 | 国产一区二区h | 天海翼视频在线观看 | 香蕉视频网页 | 少妇精品亚洲一区二区成人 | 国产一区二区在线播放 | 亚洲色图偷拍视频 | 亚洲精品成人区在线观看 | 男女男精品视频 | 一区二区看片 | jizz日本18 | 凸凹人妻人人澡人人添 | 一级性爱视频 | 51久久 | 成人在线一区二区三区 | 天天摸夜夜爽 | 日韩毛片在线 | 88福利视频 | 成人免费视频一区二区三区 | 99精品人妻国产毛片 | 丁香花激情网 | 免费看的av | 日本精品免费视频 | 9色视频 | 国产美女被遭强高潮免费网站 | 7777精品久久久久久 | 日本色www | 国产又黄又粗又爽 | 嫩草私人影院 | 亚洲综合一区中 | 午夜激情成人 | 国产成人精品一区在线播放 | 亚洲精品911| 亚洲女人18毛片水真多 | 久久久久久久综合 | 老熟妇毛茸茸 | av噜噜噜 | 亚洲码国产精品高潮在线 | 精品日本一区二区三区 | 日韩精品一二三区 | 草草免费视频 | 男人天堂导航 | yw在线观看| 欧美人一级淫片a免费播放 西方av在线 | www.亚洲激情 | 一区二区三区在线免费播放 | 91粉色视频 | jizz国产视频 | 6080亚洲精品一区二区 | 高清不卡一区二区三区 | 黄污视频网站 | 黄色精品在线 | 中文人妻熟妇乱又伦精品 | 欧美youjizz| 日韩精品黄 | 猎艳山村丰满少妇 | 西西人体做爰大胆gogo直播 | 国产黄色网页 | 91极品在线 | 超碰在线97观看 | 又粗又大又硬又长又爽 | 国产一区二区黑人欧美xxxx | 久久综合精品视频 | 国产黄色av片 | 欧美混交群体交 | 久久都是精品 | 欧美伦理片网站 | 欧亚乱熟女一区二区在线 | 国产亚洲精品久久久久久无几年桃 | 精品国产一区二区三区日日嗨 | 日韩手机在线视频 | 亚洲天堂av在线播放 | 激情综合五月 | 91大奶| 草碰在线| 免费人成在线观看视频播放 | 葵司ssni-879在线播放 | 日韩激情视频在线观看 | 日本电影大尺度免费观看 | 五十路在线 | 欧美黑人一区 | 天堂在线91 | 欧美激情二区三区 | 青青草在线视频免费观看 | 日韩人妻一区二区三区蜜桃 | 国产高清在线不卡 | 狠狠干少妇| 91视频免费看 | 中文字幕一区二区视频 | 女futa攻玩遍整个后宫 | 99福利视频导航 | 青青艹在线视频 | 亚洲中文字幕无码专区 | 人妻av中文系列 | 国产在线观看av | 中文字幕丰满孑伦无码专区 |