asp.net頁面的提交方式POST和GET區別及用法?

asp.net頁面的提交方式POST和GET區別及用法?

表單form的提交有兩種方式,一種是get的方法,一種是post 的方法.看下面代碼,理解ASP.NET Get和Post兩種提交的區別:

< form id="form1" method="get" runat="server">  
        < div>  
            你的名字< asp:TextBox ID="name" runat="server">< /asp:TextBox>< br />  
            < br />  
            你的網站< asp:TextBox ID="website" runat="server">< /asp:TextBox>< br />  
            < br />  
            < br />  
            < asp:Button ID="Button1" runat="server" Text="send" />< br />  
            < br />  
            < br />  
            學習request 和 response的用法< br />  
            < br />  
            < br />  
       < /div>  
    < /form>  



    < form id="form2" method="post" runat="server">  
        < div>  
            你的名字< asp:TextBox ID="name2" runat="server">< /asp:TextBox>< br />  
            < br />  
            你的網站< asp:TextBox ID="website2" runat="server">< /asp:TextBox>< br />  
            < br />  
            < br />  
            < asp:Button ID="Button2" runat="server" Text="send" />< br />  
            < br />  
            < br />  
            學習request 和 response的用法< br />  
            < br />  
            < br />  
        < /div>  
    < /form>

從URL中可看出ASP.NET Get和Post的區別.那麼那如何編程實現數據的接收呢?

第1種,接收用get 方法傳輸的數據的寫法:

protected void Page_Load(object sender, EventArgs e)  

     {  
         string id = Request.QueryString["name"];  
         string website = Request.QueryString["website"];  
         Response.Write(id + "< br>" + website);  


       Response.Write("你使用的是" + Request.RequestType + "方式傳送數據");  


     }

第2種,接收用post 方法傳輸的數據的寫法:

protected void Page_Load(object sender, EventArgs e)  

     {  

         string id2 = Request.Form["name2"];  
         string website2 = Request.Form["website2"];  
         Response.Write(id2 + "< br>" + website2);  




         Response.Write("你使用的是" + Request.RequestType + "方式傳送數據");  


     }  


    string id4 = Request["name4"];  

         string website4 = Request["website4"];  
         Response.Write(id4 + "< br>" + website4);

第3種,同時接受get和post 方法傳送數據的代碼寫法:

A 寫法

        string id3 = Request.Params["name3"];  
        string website3 = Request.Params["website3"];  
        Response.Write(id3 + "< br>" + website3);

B 寫法

    string id4 = Request["name4"];  
    string website4 = Request["website4"];  
    Response.Write(id4 + "< br>" + website4);  

表單提交中,ASP.NET的Get和Post方式的區別歸納如下幾點:

  1. get是從服務器上獲取數據,post是向服務器傳送數據。

  2. get是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。post是通過HTTP post機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用戶看不到這個過程。

  3. 對於get方式,服務器端用Request.QueryString獲取變量的值,對於post方式,服務器端用Request.Form獲取提交的數據。

  4. get傳送的數據量較小,不能大於2KB。post傳送的數據量較大,一般被默認爲不受限制。但理論上,IIS4中最大量爲80KB,IIS5中爲100KB。

  5. get安全性非常低,post安全性較高。但是執行效率卻比Post方法好。

建議:

1、get方式的安全性較Post方式要差些,包含機密信息的話,建議用Post數據提交方式;

2、在做數據查詢時,建議用Get方式;而在做數據添加、修改或刪除時,建議用Post方式。

區別:
get是從服務器上獲取數據,post是向服務器傳送數據。

(1) 在客戶端,Get方式在通過URL提交數據,數據在URL中可以看到;POST方式,數據放置在HTML HEADER內提交。

(2) 對於get方式,服務器端用Request.QueryString獲取變量的值,對於post方式,服務器端用Request.Form獲取提交的數據。例如:get 提交用 Request.QueryString[“aa”].ToString();
post 提交用 Request.Form[“aa”].ToString();

(2) GET方式提交的數據最多隻能有1024字節,而POST則沒有此限制。

(3) 安全性問題。正如在(1)中提到,使用 Get 的時候,參數會顯示在地址欄上,而 Post 不會。所以,如果這些數據是中文數據而且是非敏感數據,那麼使用 get;如果用戶輸入的數據不是中文字符而且包含敏感數據,那麼還是使用 post爲好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章