1. 程式人生 > >ASP.NET的六大物件介紹

ASP.NET的六大物件介紹

 

目錄

        ASP.NET含義:

1.Request物件:

 簡單.NET程式示例 1:

示例2 :

2.Response物件:

示例2:

3.Server物件

 示例3:HtmlEncode,HtmlDecode,MapPath

4.Session物件

示例4:

Session練習1:從初始頁面傳2個整數到Receive.aspx頁面進行相加。

session練習2:

Session練習3:購物車

5.Application物件

例子1

6.ViewState物件-暫不介紹

綜合示例:聊天室

 


 

 簡單.NET程式示例 1:

2.Response物件:

示例2:

3.Server物件

 示例3:HtmlEncode,HtmlDecode,MapPath

4.Session物件

示例4:

Session練習1:從初始頁面傳2個整數到Receive.aspx頁面進行相加。

session練習2:

Session練習3:購物車

5.Application物件

例子1

6.ViewState物件-暫不介紹

綜合示例:聊天室

簡單.NET程式示例 :


        ASP.NET含義:

         ASP(Active Server Pages,活動伺服器網頁)是Microsoft公司推出的一項動態網頁開發技術。       

        ASP既不是一種語言,也不是一種開發工具,而是一種技術框架,其主要功能是把指令碼、HTML、元件和Web資料庫訪問功能有機地結合在一起,形成一個能在伺服器端執行的應用程式,該應用程式可根據來自瀏覽器端的請求生成相應的HTML文件並回送給瀏覽器。

獲取靜態網頁過程:

 客戶端動態網頁:

伺服器端動態網頁:

ASP.NET內建物件:

Request物件

封裝了瀏覽器向Web伺服器傳送的HTTP請求訊息

Response物件

封裝了Web伺服器向瀏覽器傳送的HTTP響應訊息

Server物件

提供對伺服器上的方法和屬性進行的訪問

Session物件

用於儲存特定使用者會話所需的資訊

Application物件

代表執行在Web伺服器上的ASP.NET應用程式

ViewState物件

僅在頁面提交到伺服器之前有效,儲存頁面的狀態資訊,如頁面當前頁碼

 

1.Request物件:

      Cookies:獲取客戶端傳送的cookie的集合

      Form:獲取窗體變數集合

      QueryString:獲取HTTP查詢字串變數集合

   讀取單值Cookie:

<%=Request.Cookies["myCookie“]%><br>
<%=Request.Cookies["myCookie“]["Name“]%><br>

 簡單.NET程式示例 1:

Default.aspx:

<body>
<form id="form1" runat="server" >
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     <asp:Button ID="Button1" runat="server"  PostBackUrl="~/Receive.aspx" Text="提交" />        
</form>
</body>

Receive.aspx:

<body>
<form id="form1" runat="server">
    <asp:Label ID="Label1" runat="server" Text="傳過來的值="></asp:Label> 
    <%=Request.Form["TextBox1"]%>
</form>
</body>

對比以下程式碼(實現的功能都是一樣的):

Default.aspx:

<body>
<form id="form1" runat="server" method="get">
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     <asp:Button ID="Button1" runat="server"  PostBackUrl="~/Receive.aspx" Text="提交" />        
</form>
</body>

Receive.aspx:

<body>
<form id="form1" runat="server">
    <asp:Label ID="Label1" runat="server" Text="傳過來的值="></asp:Label> 
    <%=Request.QueryString["TextBox1"]%>
</form>
</body>

=》

示例2 :

Default.aspx

<body>
    <form id="form1" runat="server" method="post">
            <font size="6">登入資訊</font><br/>
             使用者名稱<asp:TextBox ID="s_name" runat="server"></asp:TextBox> <br/>
             密 碼<asp:TextBox ID="s_password" runat="server" TextMode="Password"/> <br />
         <asp:Button ID="Button1" runat="server" Text="登陸" PostBackUrl="~/Receive.aspx" />
</form>
</body>

 

Receive.aspx

<body>
 <form id="form1" runat="server">
     <% string strname,strpassword;
       strname=Request.Form["s_name"];
       strpassword=Request.Form["s_password"];
      %>
  返回使用者註冊資訊:<br />
  使用者名稱:<%=strname%><br/>
  密  碼:<%=strpassword%><br/>
</form>
</body>

=>

2.Response物件:

   Redirect:將客戶端重定向到新的URL

   Write:將資訊寫入HTTP內容輸出流

   End:將當前所有緩衝的輸出傳送到客戶端,停止該頁的執行

示例2:

Default.aspx

<body>
    <form id="form1" runat="server">
        <table>
            <tr>
                <asp:Button ID="NoParamsBtn" runat="server" Text="跳轉到Dir.aspx(沒有引數)" OnClick="NoParamsBtn_Click"/><br />
                <asp:Label ID="Label1" runat="server" Text="引數:"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
                <asp:Button ID="HaveParamsBtn" runat="server" Text="跳轉到Dir.aspx(有引數)" OnClick="HaveParamsBtn_Click" />
            </tr>
        </table>
    </form>
</body>

Default.aspx.cs

        protected void NoParamsBtn_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Dir.aspx");
        }

        protected void HaveParamsBtn_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Dir.aspx?param="+Server .UrlEncode (TextBox1 .Text ));
        }

 Dir.aspx

<body>
    <form id="form1" runat="server">
        <div>
            <asp:Label ID="Label1" runat="server" Text="引數:"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </div>
    </form>
</body>

 Dir.aspx.cs

        protected void Page_Load(object sender, EventArgs e)
        {
            if(Request .Params ["param"]!=null)
            {
                TextBox1.Text = Request.Params["param"];
            }else
            {
                TextBox1.Text = "沒有收到資料";
            }
        }

 

3.Server物件

屬性名稱

說    明

MachineName

獲取伺服器的計算機名稱

ScriptTimeout

獲取和設定請求超時

方法名稱

說    明

Execute

執行另一個aspx頁,執行完該頁後再返回本頁繼續執行

Transfer

終止當前頁的執行,併為當前請求開始執行新頁

HtmlEncode

對要在瀏覽器中顯示的字串進行HTML編碼並返回已編碼的字串

HtmlDecode

對HTML編碼的字串進行解碼,並返回已解碼的字串

MapPath

返回與Web伺服器上的指定虛擬路徑相對應的物理檔案路徑

UrlEncode

對URL字串進行編碼,以便通過URL從Web伺服器到客戶端進行可靠的 HTTP 傳輸

UrlDecode

對已被編碼的URL字串進行解碼,並返回已解碼的字串

UrlPathEncode

對URL字串的路徑部分進行URL編碼,並返回已編碼的字串

 示例3:HtmlEncode,HtmlDecode,MapPath

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(Server.MapPath("WebForm1.aspx"));

            string str = "<h1>你好</h1>";
            Response.Write(str);
            string strHtmlEncode = Server.HtmlEncode(str);
            Response.Write(strHtmlEncode + "<br>");
            string strHtmlDecode = Server.HtmlDecode(strHtmlEncode);
            Response.Write(strHtmlDecode + "<br>");

            Response.Write(Request.PhysicalApplicationPath);
        }

4.Session物件

      Session物件代表伺服器與客戶端所建立的會話.

      從一個客戶端開啟瀏覽器並連線到伺服器開始,到客戶關閉瀏覽器離開這個伺服器結束,被稱為一個會話.

      為什麼需要Session?當一個客戶訪問一個伺服器時,可能會在這個伺服器的多個頁面之間反覆跳轉,伺服器應當通過某種辦法來識別這是來自同一個客戶的不同請求,這種辦法通常就是使用session物件。

     session物件可以實現在一個會話期間的多頁面間的資料共享/傳遞。

     可以使用Session 物件儲存使用者登入網站時候的資訊。當用戶在頁面之間跳轉時,儲存在Session物件中的變數不會被清除。

     系統為每個訪問者都設立一個獨立的Session物件,用以儲存Session變數,並且各個訪問者的Session物件互不干擾。

     Session與Cookie是緊密相關的。 Session的使用要求使用者瀏覽器必須支援Cookie。

     Session主要屬性:

          Count:獲取會話狀態集合中的項數

          Keys:獲取儲存在會話中的所有值的鍵的集合

          Timeout:一個Session物件被建立以後,其生存期,預設的時間為20分鐘。也可對其修改,如Session.Timeout=60;

示例4:

Session練習1:從初始頁面傳2個整數到Receive.aspx頁面進行相加。

WebForm1.aspx

<body>
    <form id="form1" runat="server">
        <div>
            <asp:Button ID="Button1" runat="server" Text="相加" OnClick="Button1_Click" />
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        </div>
    </form>
</body>

WebForm1.aspx.cs

        protected void Button1_Click(object sender, EventArgs e)
        {
            Session["a"] = TextBox1.Text;
            Session["b"] = TextBox2.Text;
            Response.Redirect("Receive.aspx");
        }

 Receive.aspx.cs

        protected void Page_Load(object sender, EventArgs e)
        {
            int a = int.Parse(Session["a"].ToString());
            int b = int.Parse(Session["b"].ToString());
            Response.Write(a + b);
        }

 =>

session練習2:

Default.aspx.cs

        protected void Page_Load(object sender, EventArgs e)
        {
            Session["Count"] = 0;
            Session["Name"] = "tom";
            Server.Transfer("WebForm1.aspx");//跳轉後不再回來。excute跳轉後會回來
        }

WebForm1.aspx.cs

        protected void Page_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < Session.Count; i++)
                Response.Write(Session.Keys[i] + " :"  + Session[i].ToString() + "<br>");
        }

Session練習3:購物車

     見連結:https://blog.csdn.net/qq_40323256/article/details/83934072

5.Application物件

      Application物件是一個比較重要的物件,對Application物件的理解關鍵是:網站所有的使用者公用一個物件,當網站伺服器開啟的時候,Application就被建立,在網站執行期間持久儲存。利用Application這一特性,可以方便地建立聊天室和網站計數器等常用站點應用程式。

     Application物件沒有自己的屬性,使用者可以根據自己的需要定義屬性,來儲存一些資訊,執行完以後,該物件就被儲存在伺服器上,執行程式時依然可以輸出原先儲存的值。

<%Application["Greeting“]="你好!"%>
<%=Application["Greeting“]%>

     Application提供兩個方法:

(1) Lock()——鎖定Application物件,防止被其他使用者訪問。

(2) Unlock()——解除鎖定,可以接受使用者的訪問。

    Application提供兩個事件:

(1) Application_Start()——Application開始建立的時候,呼叫該事件。

(2) Application_End()——Application被清除的時候,呼叫該事件。

例子1

Default.aspx.cs

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Application["Count"] == null)
                Application["Count"] = 1;
            else
            {
                int n = (int)Application["Count"];
                n++;
                Application["Count"] = n;
            }
            Response.Write("頁面訪問量" + Application["Count"]);
        }

6.ViewState物件-暫不介紹

 

綜合示例:聊天室

     見連結:https://blog.csdn.net/qq_40323256/article/details/83934458