ASP.NET——-get請求,post請求,Request,Response和回傳的學習

來源:互聯網
上載者:User

  這幾天我們開始學習了ASP.NET技術。可以說以前學的大部分知識都是為了ASP.NET技術打基礎的。只要前面的學紮實了這個還是很好理解的。        

ASP.NET是基於.net平台的Active Server Page技術,要知道的是ASP!=ASP.NET。從以下幾點來更深入的理解ASP.NET:

     1,Code-Behind技術:代碼和頁面相分離的記錄;

     2,純物件導向的技術:提供了大量的控制項和組件;

     3,傳統的指令碼開發,ASP.Net是一門動態伺服器頁面技術,需要在伺服器端進行編譯,然後把編譯後的結果發送到用戶端。

  • 指令碼技術:

  格式:<%  程式碼片段       %>    一個頁面可以有n個程式碼片段。而且,程式碼片段放置的位置可以是任意的。 無論一個頁面有多少個程式碼片段,總體上來說還是一個程式碼片段。在代碼塊中不能夠定義方法,程式碼片段也遵循變數先定義後使用的原則。  

  • 輸出     

   格式:<%Response.Write(object);%>   或者    <%=object%>

  • Get請求       如一個頁面為:http://www.baidu.gom/login.php?name=ssss&pwd=yyyy  他的意思是:請求的頁面是login.php頁面,給login.php頁面傳遞兩個參數name==ssss 和 pwd==yyyy     

  值得注意的是:通常,在超連結和地址欄中的連結都是Get請求,在接受頁面不能夠直接存取,可能會出現null 指標異常。一般情況下超連結都是get請求。但是get請求有自身限制 :

  1,以明文的形式進行傳遞。     

  2,參數的長度有限制,最大不能超過255  

  •   Post請求     

  一般情況下,Post請求用於表單的提交 :

  1,以暗文的形式進行傳遞。   

    2,參數的長度沒有限制  

  •   Request :在接受get請求是需用  Request.QueryString[key]

  下面列舉幾個ASP.NET常用的對象 :

     1,Response===HttpResponse是用來向用戶端瀏覽器輸出內容。     

  常用的方法: Write(string):向瀏覽器輸出內容(文本,html,css,javascript)     

         End():結束對當前輸出資料流。   

  2,Request===HttpRequest 是用來從用戶端瀏覽器拿到內容     

  常用的屬性:   QueryString:擷取get請求中的參數值                 

  ---NameValueCollection     Item[index]:根據索引得到值     Item[key]:根據鍵得到值     

  Form:擷取post請求中的參數   

  ---NameValueCollection     Item[index]:根據索引得到值     Item[key]:根據鍵得到值   

  3,Server === HttpServerUtility 這個對象代表了伺服器端,可以得到伺服器端的一些資訊。     

       常用方法:    UrlDecode(string):用來解碼 。這個方法只能用來解釋unicode編碼(%20等等)

  回傳技術是一個很重要的技術,以後的學習當中我們經常會遇到他。回傳是自己把資料發送給自己,讓後自己處理資料,因此回傳滿足的兩個條件是:

       1,請求類型必須是post類型   

     2,post資料的時候,action指向的頁面是自己        

下面是一個簡單的運用ASP.NET技術串連資料庫的post請求登入程式碼片段,其中兩個aspx頁面第一個是登入的首頁面,第二個頁面是兩節資料庫的頁面:

 

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>無標題文檔</title></head><body>    <form action="Data.aspx" method="post">            姓名:<input type="text" name="name"/>         <br/>         建立密碼:<input type="password" name="pwd1"/>         <br/>         重新輸入密碼:<input type="password" name="pwd2"/>         <br/>         <input type="submit" value="註冊成功"/>    </form></body></html>

 

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %><%@ Import NameSpace="System.Data"%><%@ Import NameSpace="System.Data.SqlClient"%><%    string name=Request.Form["name"];    string pwd1=Request.Form["pwd1"];    string pwd2=Request.Form["pwd2"];    if(pwd1!=pwd2)    {        Response.Write("兩次密碼不相同請重新註冊");                %>            <a href="01.aspx">返回</a>,重新輸入註冊!        <%        return;    }    string strcon="server=.;database=my;uid=sa;pwd=1";    SqlConnection con = new SqlConnection(strcon);    SqlCommand cmd =new SqlCommand();    using(con)        {            con.Open();            using(cmd)            {                cmd.Connection = con;                cmd.CommandText = "insert into register values (@name,@pwd)";                cmd.Parameters.Add("@name",SqlDbType.VarChar,10);                cmd.Parameters["@name"].Value = name;                cmd.Parameters.Add("@pwd",SqlDbType.VarChar,20);                cmd.Parameters["@pwd"].Value = pwd1;                cmd.ExecuteNonQuery();            }        }    %>
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %><%@ Import NameSpace="System.Data"%><%@ Import NameSpace="System.Data.SqlClient"%><%    string name=Request.Form["name"];    string pwd1=Request.Form["pwd1"];    string pwd2=Request.Form["pwd2"];    if(pwd1!=pwd2)    {        Response.Write("兩次密碼不相同請重新註冊");                %>            <a href="01.aspx">返回</a>,重新輸入註冊!        <%        return;    }    string strcon="server=.;database=my;uid=sa;pwd=1";    SqlConnection con = new SqlConnection(strcon);    SqlCommand cmd =new SqlCommand();    using(con)        {            con.Open();            using(cmd)            {                cmd.Connection = con;                cmd.CommandText = "insert into register values (@name,@pwd)";                cmd.Parameters.Add("@name",SqlDbType.VarChar,10);                cmd.Parameters["@name"].Value = name;                cmd.Parameters.Add("@pwd",SqlDbType.VarChar,20);                cmd.Parameters["@pwd"].Value = pwd1;                cmd.ExecuteNonQuery();            }        }    %>

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.