最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET的HtmlForm控件學習及Post與Get的區(qū)別概述

 更新時間:2013年02月02日 13:38:10   作者:  
HtmlForm 控件用于控制form元素,本文主要介紹下HtmlForm控件的Method/Action方法(要提交數(shù)據(jù)的頁面,即數(shù)據(jù)要傳送至哪個網址)及Post與Get的區(qū)別感興趣的朋友可以了解下,或許對你學習HtmlForm控件有所幫助

一、前言

1、了解HTTP(hypertext transport protocol)超文本傳輸協(xié)議

它是一種分布式,協(xié)作式,超媒體系統(tǒng)應用之間的通信協(xié)議。是萬維網(world wide web)交換信息的基礎。它以HTML文檔從web服務器傳到web瀏覽器的方式進行的,如下圖解:

HTTP工作在TCP/IP協(xié)議體系中的TCP協(xié)議上。我們可以引出TCP/IP協(xié)議層級模型,如下圖:

BeginMan--TCP/IP協(xié)議

HTTP請求的方法如下
(1).OPTIONS:返回服務器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務器發(fā)送'*'的請求來測試服務器的功能性?!?BR>(2).HEAD:向服務器索要與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以在不必傳輸整個響應內容的情況下,就可以獲取包含在響應消息頭中的元信息。
(3).GET:向特定的資源發(fā)出請求。注意:GET方法不應當被用于產生“副作用”的操作中,例如在web app.中。其中一個原因是GET可能會被網絡蜘蛛等隨意訪問?!?BR>(4).POST:向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改?!?BR>(5).PUT:向指定資源位置上傳其最新內容。
(6).DELETE: 請求服務器刪除Request-URI所標識的資源?!?BR>(7).TRACK: 回顯服務器收到的請求,主要用于測試或診斷。

2.表單提交原理

這里引述了大牛們的總結

(1).表單提交時表單內容會被瀏覽器封裝為HTTP請求報,里面包含了所有表單元素的name屬性值和value屬性的值,形式為name=value。

(2).該HTTP請求報被webserver獲取后會被解析并封裝成一個Request對象,Request對象里有一個Parameters集合專門用來存放所有的表單元素名值對。

(3).每個表單元素名值對被封裝成一個Parameter,而Parameter其實就是一個Map,所以你的Servlet里就可以用request.getParameter(name)獲取其value了。

 既然大牛們都說的很清楚了,那么我們還需要清除的是表單靠什么進行提交的,在這里表單標簽有個很重要的屬性就是enctype,它設置以何種編碼方式提交表單數(shù)據(jù)。有以下三種:

(1).application/x-www-form-urlencoded:這是默認的編碼方式,通過Value值的方式進行數(shù)據(jù)處理 [這個我還是模糊的]
(2).multipart/form-data:是以二進制流的方式來處理表單數(shù)據(jù)
(3).text/plain:當表單的action屬性值為mailto:URL的形式時使用,多用于直接通過表單發(fā)送郵件

二、HtmlForm控件

1.HtmlForm 控件用于控制 <form> 元素,主要屬性如下

屬性 描述
Action

URL,定義當提交表單時把數(shù)據(jù)送往何處。注釋:該屬性總是設置為頁面自身的 URL!

Attributes 返回該元素的所有屬性名稱和值對。
Disabled 布爾值,指示是否禁用該控件。默認是 false。
EncType 用來編碼表單內容的 MIME 類型。
id 控件的唯一 id。
InnerHtml

設置或返回該 HTML 元素的開始標簽和結束標簽之間的內容。特殊字符不會被自動轉換為 HTML 實體。

InnerText

設置或返回該 HTML 元素的開始標簽和結束標簽之間的所有文本。特殊字符會被自動轉換為 HTML 實體。

Method 表單向服務器傳送數(shù)據(jù)的方式。合法的值是 "post" 和 "get"。默認是 "post"。
Name 表單的名稱。
runat 規(guī)定該控件是一個服務器控件。必須被設置為 "server"。
Style 設置或返回被應用到控件的 CSS 屬性。
TagName 返回元素的標簽名。
Target 加載 URL 的目標窗口。
Visible 布爾值,指示該控件是否可見。

Method:Post / Get;其中的差別是Get表示由瀏覽器主動上傳資料至Server 端,是立即傳送,其執(zhí)行效率快但是傳送的數(shù)據(jù)量也不能太大;而Post表示由服務器來抓取數(shù)據(jù),雖然不是那么立即,但是可傳送的數(shù)據(jù)量則沒有什么限制。

Action:要提交數(shù)據(jù)的頁面,即數(shù)據(jù)要傳送至哪個網址。

2.Post與Get的區(qū)別: 

http://jb51.net/web/72554.html
Form提供了兩種數(shù)據(jù)傳輸?shù)姆绞健猤et和post。雖然它們都是數(shù)據(jù)的提交方式,但是在實際傳輸時確有很大的不同,并且可能會對數(shù)據(jù)產生嚴重的影響。雖然為了方便的得到變量值,Web容器已經屏蔽了二者的一些差異,但是了解二者的差異在以后的編程也會很有幫助的。

Form中的get和post方法,在數(shù)據(jù)傳輸過程中分別對應了HTTP協(xié)議中的GET和POST方法。二者主要區(qū)別如下:

1、Get是用來從服務器上獲得數(shù)據(jù),而Post是用來向服務器上傳遞數(shù)據(jù)。

2、Get將表單中數(shù)據(jù)的按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數(shù)據(jù)放在form的數(shù)據(jù)體中,按照變量和值相對應的方式,傳遞到action所指向URL。

3、Get是不安全的,因為在傳輸過程,數(shù)據(jù)被放在請求的URL中,而如今現(xiàn)有的很多服務器、代理服務器或者用戶代理都會將請求URL記錄到日志文件中,然后放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用戶也可以在瀏覽器上直接看到提交的數(shù)據(jù),一些系統(tǒng)內部消息將會一同顯示在用戶面前。Post的所有操作對用戶來說都是不可見的。

4、Get傳輸?shù)臄?shù)據(jù)量小,這主要是因為受URL長度限制;而Post可以傳輸大量的數(shù)據(jù),所以在上傳文件只能使用Post(當然還有一個原因,將在后面的提到)。

5、Get限制Form表單的數(shù)據(jù)集的值必須為ASCII字符;而Post支持整個ISO10646字符集。

6、Get是Form的默認方法。

使用Post傳輸?shù)臄?shù)據(jù),可以通過設置編碼的方式正確轉化中文;而Get傳輸?shù)臄?shù)據(jù)卻沒有變化。在以后的程序中,我們一定要注意這一點。

1、Get 方法通過 URL 請求來傳遞用戶的數(shù)據(jù),將表單內各字段名稱與其內容,以成對的字符串連接,置于 action 屬性所指程序的 url 后,如http://www.mdm.com/test.asp?name=asd&password=sad,數(shù)據(jù)都會直接顯示在 url 上,就像用戶點擊一個鏈接一樣;Post 方法通過 HTTP post 機制,將表單內各字段名稱與其內容放置在 HTML 表頭(header)內一起傳送給服務器端交由 action 屬性能所指的程序處理,該程序會通過標準輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理

2、 Get 方式需要使用 Request.QueryString 來取得變量的值;而 Post 方式通過 Request.Form 來訪問提交的內容

3、Get 方式傳輸?shù)臄?shù)據(jù)量非常小,一般限制在 2 KB 左右,但是執(zhí)行效率卻比 Post 方法好;而 Post 方式傳遞的數(shù)據(jù)量相對較大,它是等待服務器來讀取數(shù)據(jù),不過也有字節(jié)限制,這是為了避免對服務器用大量數(shù)據(jù)進行惡意攻擊,根據(jù)微軟方面的說法,微軟對用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請盡量用 Post 方法

4、Get 方式提交數(shù)據(jù),會帶來安全問題,比如一個登陸頁面,通過 Get 方式提交數(shù)據(jù)時,用戶名和密碼將出現(xiàn)在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這臺機器,就可以從歷史記錄獲得該用戶的帳號和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時候,會彈出一個對話框建議:出于安全性考慮,建議最好使用 Post 提交數(shù)據(jù)

 關于ASP.NET的HtmlForm 控件這點弄明白之后,那么在后期的ASP.NET上傳控件、Request獲取窗體變量就能很容易的去理解了。再者,關于Get與Post的區(qū)別,甚是關鍵,去年面試的時候就因為這點沒有很好地回答上而被潛回,看來以后還是要把基礎的東西弄熟透、打扎實才能為后面的道路順利開展工作。

相關文章

  • ASP.NET通過Remoting service上傳文件

    ASP.NET通過Remoting service上傳文件

    ASP.NET通過Remoting service上傳文件...
    2006-09-09
  • 談談對.NET中async/await的理解

    談談對.NET中async/await的理解

    本文介紹了.NET中異步編程的概念,包括async和await關鍵字的使用,以及異步編程的性能提升機制,異步編程通過非阻塞操作提高了程序執(zhí)行效率,減少了主線程的等待時間,感興趣的朋友一起看看吧
    2025-03-03
  • .Net使用RabbitMQ實現(xiàn)短信密碼重置的操作步驟

    .Net使用RabbitMQ實現(xiàn)短信密碼重置的操作步驟

    在C#開發(fā)中,通過RabbitMQ實現(xiàn)短信服務可增強應用的消息通知能力,本文介紹了使用RabbitMQ發(fā)送短信的步驟,包括安裝RabbitMQ客戶端庫、創(chuàng)建連接和通道、實現(xiàn)短信發(fā)送服務、配置RabbitMQ消費者,并集成到用戶密碼重置流程中,通過示例代碼,可以快速理解整個實現(xiàn)過程
    2024-09-09
  • ASP.NET中使用GridView實現(xiàn)分級顯示的代碼

    ASP.NET中使用GridView實現(xiàn)分級顯示的代碼

    在實際項目開發(fā)中,往往需要用到在頁面上對列表的項目實現(xiàn)分級顯示,在 ASP.NET中沒有現(xiàn)成的控件。
    2010-06-06
  • VS初始化命令 ASP.NET常用技巧

    VS初始化命令 ASP.NET常用技巧

    此命令會運行幾分鐘時間,與此同時,Visual Studio 清除設置并將其自身重置到其最初的狀態(tài)。
    2011-03-03
  • ASP.NET餐飲管理系統(tǒng)制作代碼分享

    ASP.NET餐飲管理系統(tǒng)制作代碼分享

    本文通過圖片+代碼的形式,詳細的介紹了餐飲管理系統(tǒng)各部分功能及其實現(xiàn)方法。餐飲管理系統(tǒng)的制作必須有一條條理性的思維方可以做好,感興趣的小伙伴們可以參考一下
    2015-09-09
  • asp.net UpdatePanel的簡單用法

    asp.net UpdatePanel的簡單用法

    局部更新是ajax技術的最基本,也是最重要的用法,今天大概把asp.net ajax中的局部更新控件 updatepanel的用法記錄下,大家可以共同探討
    2008-11-11
  • ASP.NET Core 3.x 并發(fā)限制的實現(xiàn)代碼

    ASP.NET Core 3.x 并發(fā)限制的實現(xiàn)代碼

    這篇文章主要介紹了ASP.NET Core 3.x 并發(fā)限制的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • asp.net上傳圖片保存到數(shù)據(jù)庫的代碼

    asp.net上傳圖片保存到數(shù)據(jù)庫的代碼

    有時候某種需要將圖片保存到數(shù)據(jù)庫中,那么下面的代碼就可以參考下,下面沒有數(shù)據(jù)庫的建表說明,但數(shù)據(jù)庫需要建立下。
    2010-07-07
  • ASP.Net刷新頁面后自動滾動到原來位置方法匯總

    ASP.Net刷新頁面后自動滾動到原來位置方法匯總

    本文給大家匯總了3種ASP.Net實現(xiàn)的刷新頁面后自動滾動到原來位置方法,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06

最新評論

化隆| 安阳县| 昔阳县| 凤台县| 徐州市| 华阴市| 进贤县| 玉门市| 嘉黎县| 合江县| 甘肃省| 普兰店市| 南丹县| 迁安市| 海阳市| 全州县| 榆树市| 伊金霍洛旗| 武鸣县| 武宁县| 长汀县| 义乌市| 宜都市| 洞头县| 嘉善县| 连南| 淮滨县| 社旗县| 泰顺县| 沧州市| 扶绥县| 邵阳县| 平山县| 修武县| 会昌县| 宽甸| 临颍县| 陇南市| 闽侯县| 商洛市| 长沙县|