亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

【ASP.NET基礎】表單和控件

2019-11-14 16:01:11
字體:
來源:轉載
供稿:網友

1.HTML表單的提交方式

對于一個普通HTML表單來說,它有兩個重要的屬性:action 和 method。
action屬性指明當前表單提交之后由哪個程序來處理,這個處理程序可以是任何動態網頁或者 servlet 或者 CGI(Common Gateway Interface),在asp.net里面一般都是都aspx頁面來處理。
method屬性指明form表單的提交方式。它有兩個可能值get和post。

(1)get方式提交的表單在地址欄會顯示參數名和參數值,而post方式不會。用post提交參數相對來說更隱蔽一些,也相對安全一些。假如我們這個頁面用于用戶登錄并且存放用戶信息的表為“users”,我們的sql語句可能會這么寫:

string sql=” select * from users where username='”+username+”’ and passWord='”+password+”’”;

 

然后我們的 username 和 password 變量從表單提交的數據獲取,正常情況下用戶填寫是沒有問題,就上面的例子來說用戶填寫的用戶名和密碼分別是“sa”和“123456”,那么我們最后得到的SQL語句是:

sql=”select * from users where username=’sa’ and password=’123456’”

 

這樣是沒有問題的。

如果用get方式提交,用戶可以對上面的參數進行一些改動,比如在地址欄直接輸入:

http://localhost/GetUserInfo.aspx?username=zhoufoxcn&pwd=123';delete * from users'

 

那么我們得到的SQL就是:

string sql=” select * from users where username='zhoufoxcn' and password='123';delete * from users'

 

執行上面的SQL語句就能把Users這個表里的所有數據刪除掉!這個一個觸目驚心的危險!這個就叫SQL注入。


(2)由于瀏覽器地址欄能輸入的最大字符數有限制,所以用get方式提交不能處理參數值更大的表單,而post方式則沒有這個限制。

 

2.獲取表單值

通過用get方式提交表單我們可以看到提交到服務器的時候,在網頁后面有“?username=sa&pwd=12345”這么一個字符串,也就是以表單里HTML控件的名字=控件值的方式,并且如果存在多個控件,彼此之間以“&”分割,那么我們就可以以控件名來獲取控件值。獲取HTML控件值常見有以下集中方式:

 

 獲取方式 表單提交方式
 Request.QueryString["控件名"]  適合于get方式提交的表單
 Request.Form["控件名"] 適合于post方式提交的表單
 Request["控件名"] 同時適合于get和post方式提交的表單

 

3.亂碼問題

對于用戶登錄的表單,我們在用戶名和密碼處分別輸入“小姑涼”和“123456”,用戶就可能會變成“???”,之所以出現這樣的情況就是因為我們的編碼原因。

所謂亂碼,就是用一種編碼的字符串卻用了另一種編碼來顯示,造成不能正常顯示的現象。
這就像我們在酒吧里對一個懂普通話的服務員說來一杯酒,他馬上會送你一杯酒;可是當我們對一個不懂普通話的服務員用普通話說來一杯酒,他就會一頭霧水了。
之所以出現亂碼就是因為在這里客服端請求的編碼和服務器響應的編碼不一致

默認情況下 Request 的 ContentEncoding 為 UTF8Encoding ,而 Response 的 ContentEncoding 為 System.Text.DBCSCodePageEncoding ,二者的不一致導致了輸入中文成了亂碼。

我們常見的編碼有 gb2312、gbk 和 unicode 幾種,gb2312 能顯示日常生活最常用的 6000 多個漢字,這對于一般的公文足夠了,可是如果要用來顯示一個古文獻就不行了(據說康熙詞典收錄了4萬多漢字),當它不能顯示的時候也會出現亂碼。
Gbk 是在 gb2312 的基礎上擴展的,大概能顯示1萬8千多個漢字,這對于一般古文獻也差不多夠了。
Unicode 則更大一些,它能顯示 20901 個漢字(范圍是從/u4e00到/u9fa5),并且還能顯示日文、韓文、臺灣文字、香港文字和新加坡等文字,所以目前很多網站都采用unicode編碼。Utf8編碼就是unicode編碼中的一種。

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>


更改為:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>


這樣就能正常顯示了。
建網站的時候默認編碼就是utf-8,無需更改。

4.服務器端表單

在此之前我們見到的表單都是如下格式:

<form action="接收數據頁面" method="post">

 

并且我們都是利用的HTML控件?,F在我們要介紹服務器端表單,服務器端表單與前面的表單相比,多了一個runat=”server”標記,如下:

<form id="form1" runat="server">

 
在服務器端表單里可以不用指定action屬性,表示由當前頁面處理,也可以不指定 method 屬性,默認為post方式提交表單。在服務器端表單里,我們不光可以使用 HTML 控件,還可以使用 HTML 服務器控件,還可以使用 asp.net 控件 。
另外需要注意的是,在一個 asp.net 頁面中可以有多個不帶 runat=”server” 標記的表單,但是只能有一個服務器端表單。

5.HTML服務器控件

HTML服務器控件與普通服務器控件不同的是:在普通HTML控件中加上了一個 id 屬性和一個 runat=”server” 標記。如下就是一個 HTML 服務器控件:

<input type="text" runat="server" id="txtUserName" />

 
HTML服務器控件有幾個限制:
在整個 asp.net 頁面中這個控件 id 的必須唯一,并且 HTML 服務器控件只能放在 HTML 服務器表單中。因為一個 asp.net 頁面只能有一個服務器表單,所以說在服務器表單中控件的 id 值必須唯一,因為我們在編程的時候通過這個 id 來訪問 HTML 服務器控件。如果不唯一就會報錯。

所有的服務器控件經過服務器運行之后都會變成標準的 HTML 控件。
這樣我們可以得出一個結論:如果我們的控件功能本來就很簡單,我們就可以直接使用HTML控件,這樣就可以減輕服務器的負擔,提高運行效率。

另外,在上面的代碼中多了一些以前我們沒有見過的部分:

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNTQ0MjI5MTUzZGR1mFZ52ODFgAKe7Qx9/67qMGFJCA==" /><input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBAKipeT6DgKl1bKzCQK1qbSRCwLdkpmPAcJ7Zy/C66y />


因為服務器會保存服務器控件的狀態和屬性,所以它會利用一些隱藏域來保存這方面的信息,這部分的內容是經過 Base64 編碼的。
 
服務器控件的好處是我們可以動態在代碼中動態控制服務器控件的屬性。

來源:http://zhoufoxcn.blog.51cto.com/792419/166808


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
美女福利精品视频| 日韩av观看网址| 欧美日韩加勒比精品一区| 久久综合伊人77777蜜臀| 久久久999精品免费| 777午夜精品福利在线观看| 清纯唯美亚洲激情| 久久资源免费视频| 欧美夫妻性生活视频| 97视频在线播放| 日韩中文字幕av| 九九视频这里只有精品| 久久亚洲精品一区| 欧美老少做受xxxx高潮| 亚洲欧美国产精品久久久久久久| 国产精品久久久久av免费| 亚洲人成网站在线播| 亚洲精品免费一区二区三区| 91日韩在线视频| 久久天天躁狠狠躁老女人| 亚洲人成免费电影| 国产精品久久久久久久久久东京| 国产精品美女视频网站| 亚洲精品视频免费在线观看| 中文字幕亚洲第一| 国产97在线视频| 精品国内自产拍在线观看| 精品欧美aⅴ在线网站| 欧美激情视频播放| 国产精品美女视频网站| 亚州精品天堂中文字幕| 久久久久久久久网站| 亚洲最大av网| 亚洲品质视频自拍网| 久久99国产精品自在自在app| 久久久精品久久| 欧美日韩人人澡狠狠躁视频| 欧美成人亚洲成人日韩成人| 国产成人在线视频| 97精品久久久| 国产精品一区二区三| 亚洲国内高清视频| 久久精品99久久香蕉国产色戒| 国产精品永久免费| 欧美日韩在线观看视频小说| 2021久久精品国产99国产精品| 亚洲欧美日韩一区在线| 国产精品热视频| 91香蕉嫩草影院入口| 中文字幕亚洲一区| 国产精品一久久香蕉国产线看观看| 亚洲丁香久久久| 国产精品久久久久不卡| 97在线视频免费观看| 91精品国产91久久久久久久久| 欧美午夜精品久久久久久久| 91高清视频免费| 日本精品中文字幕| 亚洲午夜国产成人av电影男同| 欧美理论电影在线播放| 中文字幕九色91在线| 亚洲sss综合天堂久久| 国产精品成人免费电影| 91大神在线播放精品| 91在线网站视频| 亚洲精品99久久久久| 国产在线观看精品| 国产中文字幕日韩| 欧美黑人xxxx| 在线电影欧美日韩一区二区私密| 97碰碰碰免费色视频| 精品中文字幕久久久久久| 国内伊人久久久久久网站视频| 国产精品99一区| 国产精品一二三在线| 日韩av免费看网站| 97久久超碰福利国产精品…| 欧美电影在线观看完整版| 韩剧1988在线观看免费完整版| 日韩精品视频在线播放| 精品视频偷偷看在线观看| 久久九九精品99国产精品| 亚洲欧美国产精品va在线观看| 国产深夜精品福利| 亚洲第一网站男人都懂| 国产精品日韩在线播放| 中文字幕久热精品视频在线| 日韩人体视频一二区| 97香蕉久久夜色精品国产| 日韩中文字幕在线播放| 亚洲欧美日韩精品久久亚洲区| 精品国产一区二区三区久久| 欧美大尺度激情区在线播放| 日韩国产欧美区| 国产香蕉精品视频一区二区三区| 综合欧美国产视频二区| 91久久国产综合久久91精品网站| 欧美一级片一区| 精品女同一区二区三区在线播放| 日韩成人中文字幕在线观看| 久久国产天堂福利天堂| 午夜精品久久久久久久白皮肤| 欧美日韩中国免费专区在线看| 国产精品久久一区主播| 欧美日韩中文在线| 日韩欧美在线字幕| 午夜精品蜜臀一区二区三区免费| 久久久99久久精品女同性| 综合136福利视频在线| 26uuu日韩精品一区二区| 91精品视频网站| 欧洲永久精品大片ww免费漫画| 亚洲成人av在线播放| 亚洲色图17p| 国产精品xxx视频| 成人国产精品日本在线| 不用播放器成人网| 91视频免费在线| 日本成人在线视频网址| 成人午夜在线观看| 精品久久久国产| 96精品久久久久中文字幕| 97精品一区二区视频在线观看| 欧美一乱一性一交一视频| www.日韩欧美| 精品国产一区二区三区久久狼黑人| 亚洲国内精品视频| 97香蕉久久超级碰碰高清版| 国产精品九九九| 亚洲成人黄色网| 欧美一区二粉嫩精品国产一线天| 亚洲欧美激情另类校园| 国产成人亚洲综合91精品| 久久精品99无色码中文字幕| 欧美电影免费看| 国产美女扒开尿口久久久| 97超级碰碰人国产在线观看| 国产成人中文字幕| 欧美黄网免费在线观看| 久久免费成人精品视频| 日韩免费观看高清| 欧美精品一二区| 欧美视频在线观看免费网址| 久久国产精品免费视频| 精品国产户外野外| 91超碰中文字幕久久精品| 久久久伊人欧美| 欧美午夜片欧美片在线观看| 欧美亚洲成人xxx| 成人福利在线观看| 久久精品视频播放| 国内精品久久久久久中文字幕| 大胆人体色综合| 国产精品久久久久久亚洲调教| 欧美另类老女人| 日韩女优人人人人射在线视频| 国产精品欧美久久久| 91精品视频免费观看| 国产精品jvid在线观看蜜臀| 国产精品日韩av| 久久久久久久色| 国产成人a亚洲精品| 综合欧美国产视频二区| 成人乱人伦精品视频在线观看|