Quá trình Request - Response của HTTP
I.1. Đối tượng Response
Đối tượng Response được sử dụng để giao tiếp với Client, nĩ quản lý và điều phối thơng tin từ Web
Server đến các trình duyệt của người dùng.
I.1.1. Phương thức Write
Phương thức Write của đối tượng Response được dùng để in ra một chuỗi trên trang Web. Phương thức này là một trong những phương thức chủ lực trong các ứng dụng web sử dụng ASP 3.0 khi cần gởi kết quả từ Server về cho Client.
Response.Write("Chào bạn. Bạn đang tìm hiểu về đối tượng Response.")
Web Client (Browser) Resource Web Server Http Response Http Request
Trong ASP.Net, chúng ta cĩ thể thực hiện như sau:
lblChao.Text = "Chào bạn. Bạn đang tìm hiểu về đối tượng Response."
Qua ví dụ trên, chắc cĩ lẽ bạn cũng nhận ra rằng, khi sử dụng phương thức Response.Write, chúng ta khơng thể qui định vị trí hiển thị của chuỗi trên trong trang Web. Thay vào đĩ, với ASP.Net, thơng qua các Server control, chúng ta cĩ thể thực hiện chức năng tương tự nhưng linh hoạt hơn bằng cách đặt điều khiển tại vị trí cần hiển thị.
I.1.2. Phương thức Redirect
Phương thức Redirect gởi thơng điệp yêu cầu Web Browser truy cập đến một địa chỉ khác.
Ví dụ
'Nếu đăng nhập thành cơng If <Kiểm tra đăng nhập> Then Response.Redirect("Chao.aspx") Else
Response.Redirect("Dang_nhap.aspx") End If
I.1.3. Ví dụ xử lý cho phép người dùng download file
Ví dụ: Xử dụng đối tượng Response để thực hiện việc download tập tin.
Thiết kế
Thi hành
Viết lệnh xử lý:
Private Sub lnkDownload_Click(sender …, e …) _
Handles lnkDownload.Click
Dim sTap_tin As String = "MinhHoa.zip" Dim sDuong_dan As String
sDuong_dan = Server.MapPath("../Download/") & sTap_tin Response.AddHeader("Content-Disposition", _
"attachment; filename=" + sTap_tin) Response.WriteFile(sDuong_dan)
Response.End() End Sub
Hiển thị hộp thoại download tập tin
I.2. Đối tượng Request
Đối tượng Request được dùng để nhận thơng tin từ trình duyệt của người dùng gởi về cho Web
Server.
I.2.1. Thuộc tính QueryString
Như chúng tơi đã trình bày ở phần đầu của cuốn sách này, HTTP được xác định qua URLs (Uniform Resource Locators), với cấu trúc chuỗi cĩ định dạng như sau:
http: // <host> [: <port>] [ <path> [? <QueryString>]]
Phần cuối của chuỗi URL là QueryString - cịn được gọi là chuỗi tham số, cĩ cấu trúc như sau: [?Tham_so_1=gia_tri_1[&Tham_so_2=gia_tri_2[&……]]]
Trong trường hợp cĩ nhiều tham số, các cặp [<Tham_so> = <Gia_tri>] phân cách nhau bằng dấu &.
Ví dụ:
http://www.tuoitre.com.vn/Tianyon/Index.aspx?PID=16
http://www.tuoitre.com.vn/Tianyon/Index.aspx?ArticleID=89211&PID=16
Thuộc tính QueryString của đối tượng Request cho phép chúng ta nhận các giá trị truyền qua chuỗi tham số này.
Request.QueryString("Tên_tham_số")
Ví dụ: Giả sử một người dùng gởi thơng điệp đến Web Server yêu cầu trang:
"Request.aspx?Chuc_nang=Hieu_chinh&ID=123". Để lấy giá trị 2 tham số trong chuỗi
QueryString, chúng ta thực hiện như sau: Dim sChuc_nang As String
lblChuc_nang.Text = sChuc_nang Dim Id As Integer
Id = Request.QueryString("ID") lblId.Text = Id
Trong trường hợp tên tham số khơng tồn tại trong chuỗi QueryString, thuộc tính Request.QueryString() sẽ trả về giá trị nothing.
Nếu bạn để ý trong đoạn lệnh xử lý trên, chúng ta cĩ thực hiện khai báo các biến với kiểu dữ liệu tương ứng các tham số, nhận kết quả trả về từ thuộc tính Request.QueryString(). Trong
trường hợp tham số khơng được truyền trong chuỗi URL hoặc cĩ truyền mà sai kiểu dữ liệu, các biến được tạo sẽ cĩ giá trị mặc định tương ứng với kiểu dữ liệu của nĩ, tránh được các lỗi về
kiểu dữ liệu khơng đáng cĩ.
I.2.2. Các ví dụ minh họa
Ví dụ: Lấy thơng tin các trình duyệt của người dùng.
Dim sThong_tin As String With Request.Browser
sThong_tin &= "Browser: " & .Browser & "<br>" sThong_tin &= "Version: " & .Version & "<br>" sThong_tin &= "Platform: " & .Platform & "<br>" sThong_tin &= "JavaScript: " & .JavaScript & "<br>" lblThong_tin.Text = sThong_tin
End With
Thơng tin của trình duyệt tại Client Ví dụ: Liệt kê danh sách các biến Server
Dim sServer As String, i As Integer With Request.ServerVariables
For i = 0 To .Count - 1
sServer &= .Keys(i) & ": " & .Item(i) & "<br>" Next i
lblServer.Text = sServer End With
Danh sách các biến Server