<address id="xpjh9"><listing id="xpjh9"><meter id="xpjh9"></meter></listing></address>

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
<noframes id="xpjh9">
<noframes id="xpjh9">

<address id="xpjh9"><address id="xpjh9"><listing id="xpjh9"></listing></address></address>
    <form id="xpjh9"></form><address id="xpjh9"><listing id="xpjh9"><menuitem id="xpjh9"></menuitem></listing></address>

      <noframes id="xpjh9">
      VB.net 2010 視頻教程 VB.net 2010 視頻教程 VB.net 2010 視頻教程
      SQL Server 2008 視頻教程 c#入門經典教程 Visual Basic從門到精通視頻教程
      當前位置:
      首頁 > 網站開發 > ASPnet >
      • asp.net教程之用ASP建造自己的聊天室

      • 2017-06-11 20:10 來源:未知
       聊天室想必你一定去過吧,但想不想建立自己的聊天室呢?其實這一點都不難,Active Server Script提供了Application對象和Session對象,Application對象代表了一個Active Server應用程序,也就是一個Web網頁,Session對象則表示一個用戶,代表一個用戶對這個頁面的一次訪問,通過Application對象可以讓訪問它的所有用戶共享信息,并可以在Web服務器運行期間持久地保存數據,而Session對象也可以在用戶的一次訪問期間持久地保持數據,利用這兩個對象,就可以十分方便地建造自己的Chat應用程序。 
      ---- 一、Application對象: 

      ---- 1.屬性:Application對象沒有內置的屬性,但用戶可以定義自己的屬性: 

      ---- Application(“屬性名稱”)=值,一旦分配了屬性,它就會一直存在,直到Web服務器關閉服務,而且它能被所有用戶讀取,所以可以用它在用戶之間發送談話內容。 

      ---- 2.方法:當兩個用戶同時對Application屬性的值進行寫入操作時,會出現一方的修改被另一方的操作直接覆蓋掉的情況,為了避免這種現象,用戶可以調用Lock方法進行鎖定,這樣只有當前用戶才能夠對Application的屬性進行操作,用戶完成操作后調用Unlock方法解鎖,使得其他用戶也可以修改Application的屬性。 

      ---- 3.事件:創建Active Server應用程序需要在Web服務器上存放應用程序的虛擬主目錄下創建Global.asa文件,它含有Application對象和Session對象的事件處理例程,通常,Application_Onstart事件用來定義應用級的屬性。 

      ---- 二、創建一個Chat應用程序:程序運行時如下圖所示(略) 

      ---- 1.設置應用程序的變量:這里需建立兩個應用程序級的變量,gchars數組用來存放用戶的談話內容,gcounter用做計數器,控制頁面的顯示行數,在這里我們讓頁面最多顯示最近的10行談話內容。當應用程序啟動時這些變量必須進行初始化,所以它們的創建都要在Global.asa文件中的Application_onstart事件中: 



          < script language="vbscript" runat="server" >
      sub application_onstart()
      dim lchars(10)
      application("gchars")=lchars
      application("gcounter")=0
      end sub
      < /script >

      ---- 2.確定處理ASP的方式:當用戶第一次請求這個ASP文件時,用的是GET方法,然后,當用戶輸入完談話內容后提交時用的是POST方法,在這里表單是向自身提交的,所以這個ASP文件會被再次請求,我們通過測試Request . ServerVariales(“Request_Method”)變量來確定文件被請求的方式:IF Request . ServerVariales(“Request_Method”)=“POST” then 

      ---- 3.確定講話者:當用戶第一次提交談話內容時需輸入自己的姓名,一旦在txtname框中輸入數據后,程序將建立一個會話級變量來存放用戶姓名,并自動顯示在txtname框中,用戶就不需再次輸入了,除非你想用另一個名字加入會談。 



          IF len(request(“txtname”)) >0 then
      Session(“ssname”)=request(“txtname”)
      End if
      < h5 >您的姓名:
      < input type=“type” name=“txtname”
      length=“20” value=< %=session(“ssname”)% > >

      ---- 

      ---- 4.處理用戶的談話內容:首先要確定已經為Chat寫入的談話行數,為方便閱讀,在這里將顯示行數限定為10行,如果Application(“gcounter”)大于9,則將其置為0,然后將談話者姓名和內容一起存放到Application(“gchars”)數組中: 



      Application(“gchars”)
      (Application(“gcounter”))=Session(“ssname”) &
      “:” & request(txttalk)

      然后將計數器加1:Application(“gcounter”) =Application(“gcounter”)+1 

      ---- 5.將數組內容寫入到客戶的瀏覽器中:用戶提交談話內容后,程序必須將數組內容寫到客戶的瀏覽器中,讓聊天室中的所有人都能看到被提交的談話內容: 



          if application("gcounter")=0 then
      lstemp=application("gchars")(0)
      else
      for x=0 to application("gcounter")-1
      lstemp=lstemp & "< br >" & application("gchars")(x)
      next
      end if

      ---- 最后,用Response.write方法將lstemp變量的值寫到客戶的瀏覽器中去: 



      response.write lstemp

      ---- 下面給出Default.asp的完整代碼: 



      < %response.expires=0
      response.buffer=true% >
      < html >< head >< title >Chat sample< /title >< /head >
      < body >< center >
      < h3 >我的聊天室< /h3 >< /center >< hr >
      < % if request.servervariables("request_method")="POST" then
      if len(request("txtname")) >0 then
      session("ssname")=request("txtname")
      end if
      application.lock
      mcounter=application("gcounter")
      mchars=application("gchars")
      if mcounter >9 then
      mcounter=0
      end if
      mchars(mcounter)=session("ssname")
      & ":" & request("txttalk")
      mcounter=mcounter+1
      application("gcounter")=mcounter
      application("gchars")=mchars
      application.unlock
      end if % >
      < % if application("gcounter")=0 then
      lstemp=application("gchars")(0)
      else
      for x=0 to application("gcounter")-1
      lstemp=lstemp & "< br >" & application("gchars")(x)
      next
      end if
      response.write lstemp % >
      < hr >< center >
      < form action="default.asp" method=post name="aspform" >
      < b >< a href="default.asp" >
      更新顯示< /a >< /b >
      < h5 >發言:
      < input type="text" name="txttalk" size="70" >< br >
      < h5 >您的姓名:
      < input type="text" name="txtname" length="20"
      value=< %=session("ssname")% > >
      < input type="submit" name="cmdpost" default="true" value="發送" >
      < /form >< /center >< /body >< /html >

      ---- 以上代碼在NT4.0、IIS4.0、IE4.0中和Pwin98、PWS、IE4.0中分別運行通過。
      相關教程
      江苏快3 山南 | 长治 | 澄迈 | 琼海 | 桓台 | 滨州 | 绥化 | 四川成都 | 库尔勒 | 高密 | 任丘 | 景德镇 | 雅安 | 汕尾 | 任丘 | 淮安 | 定州 | 东台 | 吉安 | 新余 | 雄安新区 | 安阳 | 德清 | 大同 | 包头 | 馆陶 | 伊春 | 汉川 | 云浮 | 吐鲁番 | 海宁 | 北海 | 黑龙江哈尔滨 | 营口 | 丹东 | 任丘 | 江苏苏州 | 江西南昌 | 澄迈 | 济南 | 大连 | 香港香港 | 济源 | 西双版纳 | 铜仁 | 雄安新区 | 库尔勒 | 东营 | 怒江 | 常州 | 陵水 | 宁波 | 菏泽 | 铜仁 | 日照 | 永州 | 十堰 | 烟台 | 杞县 | 仁怀 | 仁怀 | 本溪 | 赵县 | 湘潭 | 灌云 | 常州 | 柳州 | 怀化 | 泗洪 | 阿拉善盟 | 西藏拉萨 | 牡丹江 | 泰州 | 扬州 | 泸州 | 上饶 | 乌海 | 马鞍山 | 防城港 | 厦门 | 朔州 | 金坛 | 潍坊 | 天水 | 濮阳 | 大连 | 台南 | 台山 | 丹阳 | 定州 | 黔西南 | 濮阳 | 铜仁 | 阳江 | 广安 | 延边 | 锦州 | 攀枝花 | 九江 | 永州 | 乌海 | 延安 | 克孜勒苏 | 贵港 | 武夷山 | 商丘 | 贵港 | 江西南昌 | 海西 | 五家渠 | 仙桃 | 四平 | 泰州 |