1. 程式人生 > >表單提交Post方法、Get方法

表單提交Post方法、Get方法

表單大家都很熟悉,上網的時候經常會遇到表單


        表單用來接受使用者的輸入,並將使用者的輸入以“name=value值對”集合的形式提交到伺服器進行處理。那麼表單是怎樣將資料提交到伺服器的?伺服器是怎樣對錶單資料進行處理的?下面我將為大家揭開表單提交背後的祕密 表單用<form></form> 標記定義,表單裡面放置各種接受使用者輸入的控制元件
  1. <formid="login"name="login"method ="get"action="Get.aspx">
  2.         <p>使用者名稱:<input
    id="txtUserName"name="txtUserName"type="text"/></p><!--使用者名稱文字框-->
  3.         <p>密 碼:<inputid="txtPWD"name="txtPWD"type="text"/></p><!--密碼文字框-->
  4.         <p><inputid="subLogin"name ="subLogin"type="submit"value="提交"/></p><!--提交按鈕-->
  5. </form>


首先我們來看一下表單form的一些屬性 1、id:表單的唯一標識 2、name:表單的名字 3、method
:定義表單提交的方法,有兩種方法:Post方法和Get方法 4、action:用於處理表單的伺服器端頁面(以URL 形式表示)        表單中的控制元件有兩個屬性是非常重要的:name屬性和value屬性,每一個控制元件的這兩個屬性將構成“name-value對”提交到action屬性所定義的頁面進行處理 前邊講到表單提交有兩種方法:post和get,那麼這兩種方法有什麼區別呢? 1、post方法        用這種方法提交的表單,資料將以資料塊的形式提交到伺服器,表單資料不會出現在URL中,所以用這種方式提交的表單資料是安全的。如果表單資料中包含類似於密碼等資料,建議使用post方法 用post方法提交資料的表單:
  1. <
    formid="login"name="login"method ="Post"action="Post.aspx">
  2.         <p>使用者名稱:<inputid="txtUserName"name="txtUserName"type="text"/></p><!--使用者名稱文字框-->
  3.         <p>密 碼:<inputid="txtPWD"name="txtPWD"type="text"/></p><!--密碼文字框-->
  4.         <p><inputid="subLogin"name ="subLogin"type="submit"value="提交"/></p><!--提交按鈕-->
  5. </form>

瀏覽器中效果
處理表單的Post.aspx頁面程式碼
  1. protectedvoid Page_Load(object sender, EventArgs e)  
  2.         {  
  3.             string strUserName = Request.Form["txtUserName"];  
  4.             string strPWD=Request .Form["txtPWD"];  
  5.             if (strUserName == "張三" && strPWD == "123456")  
  6.             {  
  7.                 Response.Write(strUserName + "登入成功!");  
  8.             }  
  9.             else
  10.             {  
  11.                 Response.Redirect("Login.htm");  
  12.             }  
  13.         }  

執行的結果

        由以上程式碼可知,伺服器端頁面接收表單資料所用的方法是Request.Form["表單控制元件的name屬性"],接收到資料後便可以進行處理,然後返回結果 2、Get方法       這是傳送表單資料的預設方法,這種方法會以 “?name1=value1&name2=value2”的形式,將表單資料附加到URL的後面,提交到伺服器處理,這種方法安全性當然不如post方法,因為表單資料會暴露在URL中,但是它的處理效率要比post方法高。如果表單中的資料沒什麼隱私資料,建議使用get方法,它的效率較高 用get方法提交資料的表單:
  1. <formid="login"name="login"method ="get"action="Get.aspx">
  2.         <p>使用者名稱:<inputid="txtUserName"name="txtUserName"type="text"/></p><!--使用者名稱文字框-->
  3.         <p>密 碼:<inputid="txtPWD"name="txtPWD"type="text"/></p><!--密碼文字框-->
  4.         <p><inputid="subLogin"name ="subLogin"type="submit"value="提交"/></p><!--提交按鈕-->
  5. </form>


處理表單的Get.aspx頁面程式碼
  1. protectedvoid Page_Load(object sender, EventArgs e)  
  2.         {  
  3.             string strUserName = Request.QueryString ["txtUserName"];  
  4.             string strPWD = Request.QueryString["txtPWD"];  
  5.             if (strUserName == "張三" && strPWD == "123456")  
  6.             {  
  7.                 Response.Write(strUserName + "登入成功!");  
  8.             }  
  9.             else
  10.             {  
  11.                 Response.Redirect("Login.htm");  
  12.             }  
  13.         }  

執行結果:
       由以上程式碼可知,伺服器端頁面接收表單資料所用的方法是 Request.QueryString ["表單控制元件的name屬性"],接收到資料後便可以進行處理,然後返回結果        那麼我們在用VS程式設計的時候會發現,aspx頁面的表單並沒有指定action屬性,那麼它的 表單由哪個頁面處理呢?aspx頁面的表單預設是由本頁面處理的,當然你也可以指定由其他aspx頁面處理
         希望這篇文章能對大家有所幫助。 轉載出自:http://blog.csdn.net/wzwenhuan/article/details/7803510