小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Asp.net夜話之二:asp.net內(nèi)置對(duì)象

 阮靈蘊(yùn) 2019-04-17

《asp.net夜話》封面

在今天我主要要介紹的有如下知識(shí)點(diǎn):
Request
Response
Server
Session
Cookie
Application
<%%>及<%=%>表達(dá)式

準(zhǔn)確地說(shuō),asp.net并沒(méi)有內(nèi)置對(duì)象這一說(shuō),jsp里確實(shí)把request、response這些當(dāng)作jsp的內(nèi)置對(duì)象,這里只不過(guò)是借用了一下jsp的說(shuō)法而已。上面提到的很多都是在做asp.net開(kāi)發(fā)時(shí)無(wú)需new就能使用的對(duì)象(類似的還有很多,在asp.net中所有的網(wǎng)頁(yè)都是繼承自System.Web.UI.Page這個(gè)類,上面的提到多是Page類的屬性)。

在Web中處于中心的是Web服務(wù)器,用來(lái)處理客戶端的HTTP請(qǐng)求。由于HTTP是一種無(wú)狀態(tài)的協(xié)議,也就是它并不記得上一次誰(shuí)請(qǐng)求過(guò)它,不會(huì)主動(dòng)去詢問(wèn)客戶端,只有當(dāng)客戶端主動(dòng)請(qǐng)求之后,服務(wù)器才會(huì)響應(yīng)。


Request


Request封裝了客戶端請(qǐng)求信息。Request的常見(jiàn)屬性如下:

屬性名

值類型

說(shuō)明

ApplicationPath

String

獲取請(qǐng)求的資源在網(wǎng)站上的根路徑

ContentEncoding

Encoding

設(shè)置請(qǐng)求對(duì)象的編碼

Cookies

HttpCookieCollection

客戶端發(fā)送到服務(wù)器的Cookie集合

QueryString

NameValueCollection

當(dāng)前請(qǐng)求的查詢字符串集合

UrlReferrer

Uri

獲取用戶由哪個(gè)url跳轉(zhuǎn)到當(dāng)前頁(yè)面

Response

Response代表了服務(wù)器響應(yīng)對(duì)象。每次客戶端發(fā)出一個(gè)請(qǐng)求的時(shí)候,服務(wù)器就會(huì)用一個(gè)響應(yīng)對(duì)象來(lái)處理這個(gè)請(qǐng)求,處理完這個(gè)請(qǐng)求之后,服務(wù)器就會(huì)銷毀這個(gè)相應(yīng)對(duì)象,以便繼續(xù)接受其它客服端請(qǐng)求。
Response常用屬性如下:

屬性名

值類型

說(shuō)明

Charset

string

表示輸出流的所使用的字符集

ContentEncoding

Encoding

設(shè)置輸出流的編碼

ContentLength

Int

輸出流的字節(jié)大小

ContentType

string

輸出流的HTTP MIME類型

Cookies

HttpCookieCollection

服務(wù)器發(fā)送到客戶端的Cookie集合

Output

TextWriter

服務(wù)器響應(yīng)對(duì)象的字符輸出流

RedirectLocation

string

將當(dāng)前請(qǐng)求重定向

Response常用方法

屬性名

返回值類型

說(shuō)明

AppendCookie

void

向響應(yīng)對(duì)象的Cookie集合中增加一個(gè)Cookie

Clear

void

清空緩沖區(qū)中的所有內(nèi)容輸出

Close

void

關(guān)閉當(dāng)前服務(wù)器到客戶端的連接

End

void

終止響應(yīng),并且將緩沖區(qū)中的輸出發(fā)送到客戶端

Redirect

void

重定向當(dāng)前請(qǐng)求

下面距離說(shuō)明,用Dreamweaver8創(chuàng)建一個(gè)aspx頁(yè)面,代碼如下:

  1. <%@ Page Language='C#' ContentType='text/html' ResponseEncoding='gb2312' %>

  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd'>

  3. <html xmlns='http://www./1999/xhtml'>

  4. <head>

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

  6. <title>Request例子</title>

  7. </head>

  8. <body>

  9. <table border='1' width='600px' bordercolordark='#2B72A2' bordercolorlight='#993333'>

  10. <tr><td colspan='2' bgcolor='#80ffff'>Request</td></tr>

  11. <tr><td>ApplicationPath(網(wǎng)站路徑)</td><td><%=Request.ApplicationPath%></td></tr>

  12. <tr><td>ContentEncoding(網(wǎng)頁(yè)編碼)</td><td><%=Request.ContentEncoding%></td></tr>

  13. <tr><td>Cookies個(gè)數(shù)</td><td><%=Request.Cookies.Count%></td></tr>

  14. <tr><td>QueryString個(gè)數(shù)</td><td><%=Request.QueryString.Count%></td></tr>

  15. <tr><td>UrlReferrer(上一請(qǐng)求頁(yè)面)</td><td> <%=Request.UrlReferrer%></td></tr>

  16. <tr><td colspan='2' bgcolor='#80ffff'>Response</td></tr>

  17. <tr><td>Charset</td><td><%=Response.Charset%></td></tr>

  18. <tr><td>ContentEncoding(網(wǎng)頁(yè)編碼)</td><td><%=Response.ContentEncoding%></td></tr>

  19. <tr><td>Cookies個(gè)數(shù)</td><td><%=Response.Cookies.Count%></td></tr>

  20. <tr><td>ContentType</td><td><%=Response.ContentType%></td></tr>

  21. </table>

  22. </body>

  23. </html>

將新建的頁(yè)面保存為RequestAndResponse.aspx并保存到C:/Inetpub/wwwroot下,然后打開(kāi)瀏覽器在地址欄中輸入:http://localhost/RequestAndResponse.aspx,實(shí)際上url地址不區(qū)分大小寫,以上地址全部小寫也沒(méi)有關(guān)系,運(yùn)行結(jié)果如下:
 
從上面的結(jié)果我們可以看出利用Dreamweaver創(chuàng)建的網(wǎng)頁(yè),如果采用默認(rèn)編碼,請(qǐng)求對(duì)象的字符編碼是UTF-8,而響應(yīng)對(duì)象的編碼為gb2312。這樣極有可能可能產(chǎn)生亂碼問(wèn)題。所謂亂碼,就是用一種編碼的字符串卻用了另一種編碼來(lái)顯示,造成不能正常顯示的現(xiàn)象。就像我用普通話說(shuō)“請(qǐng)給我來(lái)一杯茶“,結(jié)果是一個(gè)只懂德育的人聽(tīng)了,他自然聽(tīng)不懂我說(shuō)什么,不能正常交流。另外,需要說(shuō)明的是常見(jiàn)的服務(wù)器響應(yīng)的ContentType是“text/html”,代表響應(yīng)是以HTML文件形式傳輸?shù)?。還有一些其它形式的ContentType,如下:
image/jpeg:響應(yīng)對(duì)象是jpeg圖片
text/xml:響應(yīng)對(duì)象是xml文件
text/javascript:響應(yīng)對(duì)象是javascript腳本文件
Response的ContentType屬性默認(rèn)是“text/html”,表示服務(wù)器以HTML文件響應(yīng)客戶端請(qǐng)求,如果需要用其它方式響應(yīng)客戶端請(qǐng)求,則需要設(shè)置ContentType屬性。假如我們需要用jpeg圖片的格式響應(yīng)客戶端請(qǐng)求,則需要設(shè)置ContentType屬性為“image/jpeg”,然后將圖片內(nèi)容輸出到客戶端,這樣客戶端就會(huì)看到j(luò)peg格式的圖片而不是HTML文件。

Server


Server對(duì)象是用于獲取服務(wù)器的相關(guān)信息的對(duì)象。它常用方法如下:

屬性名

返回值類型

說(shuō)明

Execute

void

執(zhí)行指定的資源,并且在執(zhí)行完之后再執(zhí)行本頁(yè)的代碼

HtmlDecode

string

消除對(duì)特殊字符串編碼的影響

HtmlEncode

string

對(duì)特殊字符串進(jìn)行編碼

MapPath

string

獲取指定相對(duì)路徑在服務(wù)器上的無(wú)力路徑

Transfer

void

停止執(zhí)行當(dāng)前程序,執(zhí)行指定的資源

UrlDecode

string

對(duì)路徑字符串進(jìn)行解碼

UrlEncode

string

對(duì)路徑字符串進(jìn)行編碼

上面的方法光從概念上來(lái)說(shuō),似乎還是讓人不能分清他們到底有什么作用,特別Excure/ Transfer、HtmlEncode(HtmlDecode)/ UrlEncode(UrlDecode)這兩組。在講述他們分別之前先講述MapPath這個(gè)方法的作用,在我們上傳文件的時(shí)候要以物理路徑保存上傳文件到服務(wù)器,而我們使用得最多的是相對(duì)URL地址,這個(gè)方法就起到了將相對(duì)URL地址轉(zhuǎn)換成服務(wù)器物理路徑的作用。
為了說(shuō)明Excure/ Transfer及HtmlEncode(HtmlDecode)/ UrlEncode(UrlDecode)的區(qū)別,我們還是用實(shí)例代碼來(lái)展示,用Dreamweaver8創(chuàng)建一個(gè)aspx頁(yè)面,代碼如下:

  1. <%@ Page Language='C#' ContentType='text/html' ResponseEncoding='gb2312' %>

  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd'>

  3. <html xmlns='http://www./1999/xhtml'>

  4. <head>

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

  6. <title>Server對(duì)象的常見(jiàn)方法實(shí)例</title>

  7. </head>

  8. <body>

  9. <ul>

  10. <li>Server.MapPath('.')=<%=Server.MapPath('.')%></li>

  11. <li><%=Server.HtmlEncode('<h1>Asp.net夜話之二:asp.net內(nèi)置對(duì)象</h1>')%></li>

  12. <li><h1>Asp.net夜話之二:asp.net內(nèi)置對(duì)象</h1></li>

  13. <li><%=Server.UrlEncode('<a href=/'http://blog.csdn.net/zhoufoxcn/'>周公的專欄</a>')%></li>

  14. <li><a href='http://blog.csdn.net/zhoufoxcn'>周公的專欄</a></li>

  15. </ul>

  16. </body>

  17. </html>

 將新建的頁(yè)面保存為ServerDemo.aspx并保存到C:/Inetpub/wwwroot下,然后打開(kāi)瀏覽器在地址欄中輸入:http://localhost/Request/serverdemo.aspx,運(yùn)行結(jié)果如下:
 
從Server.MathPath(“.”)輸出“C:/Inetpub/wwwroot”,證明確實(shí)能獲取到相對(duì)路徑的在服務(wù)器上的實(shí)際物理地址。
在上面的例子中我們想在網(wǎng)頁(yè)中輸出HTML代碼,如果直接輸出往往得不到想要的效果,這時(shí)可以借助HtmlEncode方法對(duì)要輸出的HTML代碼進(jìn)行編碼,這樣輸出到瀏覽器上的時(shí)候就能看到HTML代碼,而不是HTML形式的效果。HtmlDecode方法則是用來(lái)消除這種影響。
如果我們直接輸出“<a href='http://blog.csdn.net/zhoufoxcn'>周公的專欄</a>”這個(gè)字符串的話,在網(wǎng)頁(yè)上會(huì)顯示一個(gè)超級(jí)鏈接,但是有時(shí)候我們希望把這個(gè)超級(jí)鏈接作為QueryString的一個(gè)參數(shù),由于url地址的特殊性,比如“:”、“/”等字符串在URL地址中有特殊的含義,要想輸出這些字符,直接輸出是不行的,需要進(jìn)行某種轉(zhuǎn)換,并且將來(lái)還能轉(zhuǎn)換回來(lái)。經(jīng)過(guò)UrlEncode方法轉(zhuǎn)換之后,“:”、“/”分別轉(zhuǎn)換成了“%3a”和“%2f”這樣的字符,并且漢字也進(jìn)行了轉(zhuǎn)換。UrlDecode方法則是將“%3a”和“%2f”等這樣的字符轉(zhuǎn)換成我們?cè)疽硎镜淖址?/p>

前面我們提到,在HTTP中,服務(wù)器與客戶端并不是時(shí)時(shí)保持連接狀態(tài),而是服務(wù)器被動(dòng)地等待客戶發(fā)送請(qǐng)求,服務(wù)器才進(jìn)行響應(yīng)。因此,在大部分情況下,服務(wù)器并不會(huì)管客戶端是否還依然存在。
在這種情況下,假如用戶通過(guò)訪問(wèn)一些需要權(quán)限的頁(yè)面,在他輸入正確的用戶名和密碼之后第一次他訪問(wèn)a頁(yè)面,隔幾分鐘之后再訪問(wèn)同樣需要權(quán)限才能訪問(wèn)的b頁(yè)面,這是他還需要輸入用戶名和密碼嗎?按照清理來(lái)說(shuō)如果這個(gè)時(shí)間間隔比較短,我們不應(yīng)該要求頻繁用戶輸入這些信息,可是服務(wù)器又不記錄這些信息,我們有沒(méi)有辦法解決這個(gè)問(wèn)題呢?
答案是有的,就是利用Session或者Cookie。

Session


Session對(duì)象用來(lái)保存與特定用戶相關(guān)的信息,Session中的數(shù)據(jù)保存在服務(wù)器端,在客戶端需要的時(shí)候創(chuàng)建Session,在客戶端不需要的時(shí)候銷毀Session,使它不再占用服務(wù)器內(nèi)存。前面說(shuō)了服務(wù)器并不管客戶端是否依然存在,因而它也無(wú)法確定客戶端什么時(shí)間不再使用它,但是如果在客戶端不再用的時(shí)候不及時(shí)銷毀Session的話,服務(wù)器很快就會(huì)內(nèi)存不足。為了解決這個(gè)問(wèn)題,給Session加了一個(gè)生命周期,當(dāng)服務(wù)器發(fā)現(xiàn)Session超過(guò)了它的生命周期,就會(huì)釋放該Session所占用的內(nèi)存空間。在asp.net中Session的默認(rèn)生命周期是20分鐘,也就是當(dāng)我們?cè)?:00的時(shí)候設(shè)置了一個(gè)Session,如果在9:20之前客戶端沒(méi)有任何請(qǐng)求,那么它的生命周期就到9:20分鐘結(jié)束。但是一旦用戶在9:19又向服務(wù)器發(fā)送了一個(gè)請(qǐng)求,那么這個(gè)Session現(xiàn)在的生命周期就是在當(dāng)前時(shí)間的基礎(chǔ)上再加上20分鐘,也就是此時(shí)這個(gè)Session的生命周期是到9:39結(jié)束。
Session具有以下特點(diǎn):
Session中的數(shù)據(jù)保存在服務(wù)器端;
Session中可以保存任意類型的數(shù)據(jù);
Session默認(rèn)的生命周期是20分鐘,可以手動(dòng)設(shè)置更長(zhǎng)或更短的時(shí)間。
假設(shè)我們要設(shè)置一個(gè)Session用來(lái)保存用戶名,這個(gè)Session的名字是“UserName”,值是“zhoufoxcn”,代碼如下:

  1. Session[“UserName”]=”zhoufoxcn”;

一個(gè)網(wǎng)站里用到Session的地方肯定不止一個(gè),所以在設(shè)置和獲取Session的時(shí)候通過(guò)Session的名在來(lái)操作,并且Session被設(shè)置成能存儲(chǔ)任意類型的對(duì)象(即Object類型),所以獲取Session的時(shí)候要根據(jù)設(shè)置的時(shí)候的實(shí)際類型進(jìn)行響應(yīng)的強(qiáng)制類型轉(zhuǎn)換(當(dāng)然如果在Session中存放像int/byte/short這樣的數(shù)據(jù)類型,獲取Session的值算是一種拆箱操作而不是強(qiáng)制類型轉(zhuǎn)換),對(duì)于上面的Session,獲取Session的值的代碼如下:

  1. string username=(string)Session[“UserName”];


對(duì)于上面的代碼,有個(gè)問(wèn)題需要注意:當(dāng)沒(méi)有設(shè)置相應(yīng)的Session或者Session因?yàn)槌^(guò)生命周期而被銷毀時(shí),上面的代碼有可能拋出異常。我們可以先判斷是否存在指定名稱的Session,如果不存在就不用獲取了,僅當(dāng)存在的情況下才獲取Session的值,上面的代碼可以改進(jìn)如下:

  1. string userName;

  2. if(Session['UserName']!=null)

  3. {

  4. //當(dāng)指定名稱的Session存在時(shí),獲取指定Session的值

  5. userName=(string)Session['UserName'];

  6. }

Cookie


Cookie對(duì)象和Session對(duì)象一樣也是用來(lái)保存特定的用戶相關(guān)的數(shù)據(jù),不過(guò)Session不同的是Cookie保存在客戶端而不是服務(wù)器上,每次客戶端發(fā)出請(qǐng)求的時(shí)候都會(huì)把Cookie一起發(fā)送到服務(wù)器,服務(wù)器每次響應(yīng)客戶端請(qǐng)求的時(shí)候會(huì)重新把Cookie發(fā)送到客戶端保存。
Cookie保存數(shù)據(jù)有以下特點(diǎn):
Cookie中的數(shù)據(jù)保存在客戶端;
Cookie中只能保存字符串類型的數(shù)據(jù),如果需要在Cookie中保存其它類型數(shù)據(jù),需要將其轉(zhuǎn)換成字符串類型后保存;
Cookie也有其默認(rèn)生命周期,也可以手動(dòng)設(shè)置,最大可設(shè)置成50年之后過(guò)期。
同Session的情況一樣,有可能在一個(gè)網(wǎng)站中使用到的Cookie不止一個(gè),我們?nèi)酝ㄟ^(guò)Cookie的名稱來(lái)區(qū)分不同的Cookie。
設(shè)置Cookie的過(guò)程就是在服務(wù)器的響應(yīng)對(duì)象Response的Cookie集合中增加一個(gè)Cookie的實(shí)際,Response對(duì)象會(huì)把這個(gè)Cookie集合中的所有Cookie都發(fā)送客戶端。代碼如下(仍以保存用戶名為例):

  1. HttpCookie cookie = new HttpCookie('UserName', 'zhoufoxcn');

  2. Response.Cookies.Add(cookie);


    獲取Cookie就是從客戶端的請(qǐng)求對(duì)象中找到對(duì)應(yīng)名稱的Cookie,當(dāng)然也有可能出現(xiàn)Cookie不存在的情況,所以在獲取之前也需要檢查指定名稱的Cookie是否存在,大媽如下:

  1. string userName;

  2. if (Request.Cookies['UserName'] != null)

  3. {

  4.      userName = Request.Cookies['UserName'].Value;

  5. }


細(xì)心的朋友可能會(huì)留意到前面講到Session和Cookie的時(shí)候,我都說(shuō)他們是針對(duì)特定用戶保存的數(shù)據(jù),也就是那些數(shù)據(jù)并不是每個(gè)人都能用到。Session和Cookie一般用來(lái)一些針對(duì)特定用戶的信息,比如用于保存用戶名等,因?yàn)槭轻槍?duì)特定用戶的,所以不會(huì)針對(duì)張三設(shè)置用戶名保存在Session或者Cookie中之后再去或者這個(gè)值的時(shí)候得到的是李四的用戶名。但是在某些情況下,我們又希望保存一些共有信息,這樣大家都能設(shè)置或者獲取,比如自從服務(wù)器啟動(dòng)以來(lái)某個(gè)頁(yè)面被打開(kāi)的次數(shù),這時(shí)用Session或者Cookie就不合適了。這就需要用Application了。

Application

Application和Session存儲(chǔ)的數(shù)據(jù)類型和存儲(chǔ)位置一樣,都是存放Object類型的數(shù)據(jù)(也就是任意類型),并且存放在服務(wù)器上,不同的Application中的數(shù)據(jù)可以由網(wǎng)站中所有的用戶來(lái)設(shè)置或者獲取。并且Application中存放的數(shù)據(jù)沒(méi)有時(shí)間限制,除非我們手動(dòng)刪除或者服務(wù)器重新啟動(dòng),否則存放的數(shù)據(jù)都會(huì)丟失。
下面是Session、Cookie和Application的區(qū)別:

名稱

使用范圍

存儲(chǔ)位置

存放數(shù)據(jù)類型

生命周期

Session

特定用戶

服務(wù)器

Object,也就是任意類型

有,可以自行設(shè)置

Cookie

特定用戶

客戶端

String,也就值字符串

可以自行設(shè)置

Application

所有用戶

服務(wù)器

Object,也就是任意類型

無(wú)


下面我們以一個(gè)小例子來(lái)說(shuō)明Session和Application的區(qū)別。
我們用Dreamweaver8創(chuàng)建兩個(gè)頁(yè)面,分別為SessionTest.aspx和ApplicationTest.aspx,保存到C:/Inetpub/wwwroot目錄下,它們的代碼都是一樣的,如下:

  1. <%@ Page Language='C#' ContentType='text/html' ResponseEncoding='gb2312' %>

  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd'>

  3. <html xmlns='http://www./1999/xhtml'>

  4. <head>

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

  6. <title>Application和Session的例子</title>

  7. </head>

  8. <body>

  9. <%

  10. //如果沒(méi)有設(shè)置名為'ApplicationCount'的Application

  11. int applicationCount=1;

  12. int sessionCount=1;

  13. if(Application['ApplicationCount']==null)

  14. {

  15. Application['ApplicationCount']=1;

  16. }

  17. else//否則取出該Session,并且在當(dāng)前值上加1

  18. {

  19. applicationCount=(int)Application['ApplicationCount']+1;

  20. Application['ApplicationCount']=applicationCount;

  21. }

  22. //如果Session['SessionCount']為空,即沒(méi)有設(shè)置該名字的Session

  23. if(Session['SessionCount']==null)

  24. {

  25. Session['SessionCount']=1;

  26. }

  27. else

  28. {

  29. sessionCount=(int)Session['SessionCount']+1;

  30. Session['SessionCount']=sessionCount;

  31. }

  32. Response.Write('當(dāng)前頁(yè)面由Application記錄到的被訪問(wèn)了'+applicationCount+'次<br/>');

  33. Response.Write('當(dāng)前頁(yè)面由Session記錄到的被訪問(wèn)了'+sessionCount+'次<br/>');

  34. %>

  35. </body>

  36. </html>

這時(shí)我們?cè)跒g覽器地址欄里輸入:http://localhost/sessiontest.aspx,會(huì)看如下結(jié)果Session和Application中的值是一樣的,即使我們按F5刷新頁(yè)面,結(jié)果也是一樣,如下圖:


 
然后我們重新打開(kāi)一個(gè)瀏覽器應(yīng)用程序(注意不要在當(dāng)前窗口中輸入),會(huì)看到如下情況:
 
為什么特地強(qiáng)調(diào)要在新瀏覽器窗口中打開(kāi)另一個(gè)頁(yè)面呢?因?yàn)橛行g覽器會(huì)視同為同一個(gè)Session,導(dǎo)致出現(xiàn)不了預(yù)期的效果。通過(guò)上面的例子證明了Application確實(shí)是屬于所有網(wǎng)站用戶的,它適合保存全局的數(shù)據(jù)信息,如網(wǎng)站從Web服務(wù)器啟動(dòng)以來(lái)接受的請(qǐng)求個(gè)數(shù)或者當(dāng)前在線總?cè)藬?shù);而Session只與特定用戶有關(guān),只適合保存特定用戶的信息,比如用戶的用戶名。

<%%>表達(dá)式


<%%>用來(lái)編寫程序的代碼部分。在其中可以聲明變量和方法。如下:

  1. <%

  2.     string name = Request.Form['userName'].Trim();

  3.     string userName;

  4.     if (Request.Cookies['UserName'] != null)

  5.     {

  6.         userName = Request.Cookies['UserName'].Value;

  7.     }

  8.      %>

在<%%>就是符合C#要求的代碼。

<%=%>表達(dá)式
<%=%>是用來(lái)向輸出流中輸出變量的值。其用法如下:
<% int i = 6; %>
<%=i %>

九九乘法表是大家相當(dāng)熟悉的了,下面我們分別用Response對(duì)象的Write方法和上面的<%%>及<%=%>來(lái)輸出九九乘法表。如下圖
 
用Response對(duì)象輸出九九乘法表的代碼如下:

  1. <%@ Page Language='C#' ContentType='text/html' ResponseEncoding='gb2312' %>

  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd'>

  3. <html xmlns='http://www./1999/xhtml'>

  4. <head>

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

  6. <title>Server對(duì)象的常見(jiàn)方法實(shí)例</title>

  7. </head>

  8. <body>

  9. <table border='1' width='600px'>

  10. <tr><th colspan='9'>九九乘法表</th></tr>

  11. <%

  12. for(int i=1;i<10;i++)

  13. {

  14. Response.Write('<tr>');

  15. for(int j=1;j<10;j++)//輸出一行中的每列

  16. {

  17. if(j<=i){//如果有內(nèi)容

  18. Response.Write(String.Format('<td>{0}×{1}={2}</td>',j,i,j*i));

  19. }

  20. else{//否則輸出空單元格

  21. Response.Write('<td> </td>');

  22. }

  23. }

  24. Response.Write('</tr>');

  25. }

  26. %>

  27. </body>

  28. </html>

用<%%>及<%=%>輸出九九乘法表的代碼如下:

  1. <%@ Page Language='C#' ContentType='text/html' ResponseEncoding='gb2312' %>

  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd'>

  3. <html xmlns='http://www./1999/xhtml'>

  4. <head>

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

  6. <title>九九乘法表</title>

  7. </head>

  8. <body>

  9. <table border='1' width='600px'>

  10. <tr><th colspan='9'>九九乘法表</th></tr>

  11. <%

  12. for(int i=1;i<10;i++)

  13. {

  14. %>

  15. <tr>

  16. <%

  17. for(int j=1;j<10;j++)//輸出一行中的每列

  18. {

  19. if(j<=i){//如果有內(nèi)容

  20. %>

  21. <td><%=j%>×<%=i%>=<%=i*j%></td>

  22. <%

  23. }

  24. else{//否則輸出空單元格

  25. %>

  26. <td> </td>

  27. <%}

  28. }

  29. %>

  30. </tr>

  31. <%}

  32. %>

  33. </body>

  34. </html>


可以看出用Response.Write()輸出和<%=%>輸出最后的效果是一樣的。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多