◎以上程式範例AspNet10.aspx,如在頁框下不能操作,請開新視窗操作
◎如果有問題歡迎您提出,dnowba很需要有人和我一起討論
Partial Class AspNET10 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' ===== 關於 Response 和 Request ===== ' ◎Response,Server給Client的回應,程式開發的第一支通常都是 ' response: hello the world ' Response.Write,很方便,但多拿來偵錯 ' 因它在執行的時候是寫在整個HTML的最外面的 ' 所以無法「設計」它在畫面上的位置,影響美觀 ' ◎Request,Client對Server的請求 ' 當有一個資料要傳遞給server來處理時,有三個比較常用的Request方式: ' QueryString、Session、Form Submit…這裡討論的是QueryString ' QueryString 很便利, 但也同時是被攻擊的主要來源 ' 因為它是露在網址列上的 ' 所以有人建議不要使用傳統的QueryString方式 ' 要嘛就用MD5加密這個request,要嘛就改用session ' 額外一提:google上搜尋功能中,Requset.QueryString的內容其實不是加密, 是把字元轉成萬國碼 ' 這裡「故意」用同一頁來作「請求」和「回應」的頁面…事實上應用上不會是同一頁面的 If Not Page.IsPostBack Then Me.Label1.Text = "請在空格輸入值(文字、數字…皆可)" Me.Button1.Text = "傳送一個值(注意網址)" Me.Button2.Text = "同時傳送二個值(注意網址)" End If ' Response的使用方式,以及承接值的方式 If Request("num") <> "" Then Me.Response.Write("你填入的值是:" & Request.QueryString("num")) End If If Request("num1") <> "" And Request("num2") <> "" Then Me.Response.Write("你填入的第一個值是:" & Request.QueryString("num1") & "</br>你填入的第二個值是:" & Request.QueryString("num2")) End If End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click ' request 傳一個值的使用方式 Response.Redirect("~/AspNET10.aspx?num=" & Me.TextBox1.Text) End Sub Protected Sub Button2_Click(sender As Object, e As System.EventArgs) Handles Button2.Click ' request 傳二個值的使用方式 Response.Redirect("~/AspNET10.aspx?num1=" & Me.TextBox2.Text & "&num2=" & Me.TextBox3.Text) End Sub End Class
◎附註:說說 request 和 response
簡單的說,HTTP (Hyper Text Transfer Protocol) 就是一種 request 和 response 的協議,HTTP 1.0 就有的協議,即便你換了不同的文件型式 (*.html、*.asp、*.aspx) ,換了不同的瀏覽器平台,request (請求) 和 response(回應),一來一往的,始終是網路傳輸的基本協定。
在 request-response 流程中,包含了input元素,這個input元素就是由Client端向Server端的request請求;其次是output元素,這個output元素則是Client對Server端的回應。
一來一往後,交易(Transaction)就結束了,而這個內存的資料也會被清除。
當有一個資料要傳遞給server來處理時,有三個比較常用的方式:
(1)QueryString:最簡單的方式,這篇文章主要的內容
(2)Session:是在IIS下該網站目錄下運作的,所以可以跨同一個網站下所有的aspx
(3)Form Submit
沒有留言:
張貼留言