ASP.NET - Server Side và các thông tin hữu ích
20/04/2022 06:56
Chúng ta đã nghiên cứu vòng đời của trang và cách một trang chứa các điều khiển khác nhau. Bản thân trang được khởi tạo như một đối tượng điều khiển. Tất cả các biểu mẫu web về cơ bản là các phiên bản của lớp Trang ASP.NET. Lớp trang có các thuộc tính cực kỳ hữu ích sau đây tương ứng với các đối tượng nội tại:
Chúng ta đã nghiên cứu vòng đời của trang và cách một trang chứa các điều khiển khác nhau. Bản thân trang được khởi tạo như một đối tượng điều khiển. Tất cả các biểu mẫu web về cơ bản là các phiên bản của lớp Trang ASP.NET. Lớp trang có các thuộc tính cực kỳ hữu ích sau đây tương ứng với các đối tượng nội tại:
- Session
- Application
- Cache
- Request
- Response
- Server
- User
- Trace
Chúng ta sẽ thảo luận về từng đối tượng này trong thời gian thích hợp. Trong hướng dẫn này, chúng ta sẽ khám phá đối tượng Máy chủ, đối tượng Yêu cầu và đối tượng Phản hồi.
Đối tượng máy chủ
Đối tượng Server trong Asp.NET là một thể hiện của lớp System.Web.HttpServerUtility. Lớp HttpServerUtility cung cấp nhiều thuộc tính và phương thức để thực hiện các công việc khác nhau.
Thuộc tính và phương thức của đối tượng Máy chủ
Các phương thức và thuộc tính của lớp HttpServerUtility được hiển thị thông qua đối tượng Máy chủ nội tại do ASP.NET cung cấp.
Bảng sau cung cấp danh sách các thuộc tính:
Bất động sản |
Sự miêu tả |
Tên may moc |
Tên máy chủ |
ScriptTimeOut |
Nhận và đặt giá trị thời gian chờ yêu cầu tính bằng giây. |
Bảng sau cung cấp danh sách một số phương pháp quan trọng:
Phương pháp |
Sự miêu tả |
CreateObject (Chuỗi) |
Tạo một phiên bản của đối tượng COM được xác định bởi ProgID (ID lập trình) của nó. |
CreateObject (Loại) |
Tạo một phiên bản của đối tượng COM được xác định bởi Loại của nó. |
Bằng (Đối tượng) |
Xác định xem đối tượng được chỉ định có bằng đối tượng hiện tại hay không. |
Thực thi (Chuỗi) |
Thực thi trình xử lý cho đường dẫn ảo được chỉ định trong ngữ cảnh của yêu cầu hiện tại. |
Thực thi (Chuỗi, Boolean) |
Thực thi trình xử lý cho đường dẫn ảo được chỉ định trong ngữ cảnh của yêu cầu hiện tại và chỉ định xem có xóa các tập hợp QueryString và Form hay không. |
GetLastError |
Trả về ngoại lệ trước đó. |
GetType |
Rút ra loại của trường hợp hiện tại. |
HtmlEncode |
Thay đổi một chuỗi thông thường thành một chuỗi có các ký tự HTML hợp pháp. |
HtmlDecode |
Chuyển đổi một chuỗi Html thành một chuỗi thông thường. |
ToString |
Trả về một chuỗi đại diện cho các đối tượng hiện tại. |
Chuyển (Chuỗi) |
Đối với yêu cầu hiện tại, hãy chấm dứt thực thi trang hiện tại và bắt đầu thực thi một trang mới bằng cách sử dụng đường dẫn URL được chỉ định của trang. |
UrlDecode |
Chuyển đổi một chuỗi URL thành một chuỗi thông thường. |
UrlEncodeToken |
Hoạt động giống như UrlEncode, nhưng trên một mảng byte có chứa dữ liệu được mã hóa Base64. |
UrlDecodeToken |
Hoạt động giống như UrlDecode, nhưng trên một mảng byte có chứa dữ liệu được mã hóa Base64. |
MapPath |
Trả về đường dẫn vật lý tương ứng với đường dẫn tệp ảo được chỉ định trên máy chủ. |
Chuyển giao |
Truyền thực thi sang một trang web khác trong ứng dụng hiện tại. |
>>> Đọc thêm: ASP.NET - Event Handling và những điều bạn cần biết
Đối tượng yêu cầu
Đối tượng yêu cầu là một thể hiện của lớp System.Web.HttpRequest. Nó đại diện cho các giá trị và thuộc tính của yêu cầu HTTP làm cho trang tải vào trình duyệt.
Thông tin được trình bày bởi đối tượng này được bao bọc bởi các phần trừu tượng cấp cao hơn (mô hình điều khiển web). Tuy nhiên, đối tượng này giúp kiểm tra một số thông tin như trình duyệt máy khách và cookie.
Thuộc tính và phương thức của đối tượng yêu cầu
Bảng sau cung cấp một số thuộc tính đáng chú ý của đối tượng Request:
Tên |
Sự miêu tả |
AcceptTypes |
Nhận một mảng chuỗi gồm các kiểu chấp nhận MIME do ứng dụng khách hỗ trợ. |
ApplicationPath |
Lấy đường dẫn gốc ứng dụng ảo của ứng dụng ASP.NET trên máy chủ. |
Trình duyệt |
Nhận hoặc đặt thông tin về khả năng trình duyệt của ứng dụng khách yêu cầu. |
ContentEncoding |
Nhận hoặc đặt bộ ký tự của phần thân thực thể. |
Thời lượng nội dung |
Chỉ định độ dài, tính bằng byte, của nội dung do khách hàng gửi. |
ContentType |
Nhận hoặc đặt loại nội dung MIME của yêu cầu đến. |
Bánh quy |
Nhận một bộ sưu tập các cookie do khách hàng gửi. |
Đường dẫn tập tin |
Nhận đường dẫn ảo của yêu cầu hiện tại. |
Các tập tin |
Nhận bộ sưu tập các tệp do máy khách tải lên, ở định dạng MIME nhiều phần. |
Biểu mẫu |
Nhận một tập hợp các biến biểu mẫu. |
Tiêu đề |
Nhận một bộ sưu tập các tiêu đề HTTP. |
HttpMethod |
Nhận phương thức truyền dữ liệu HTTP (chẳng hạn như GET, POST hoặc HEAD) được ứng dụng khách sử dụng. |
InputStream |
Lấy nội dung của phần thân thực thể HTTP đến. |
IsSecureConnection |
Nhận một giá trị cho biết liệu kết nối HTTP có sử dụng các ổ cắm an toàn hay không (nghĩa là HTTPS). |
Chuỗi truy vấn |
Nhận tập hợp các biến chuỗi truy vấn HTTP. |
RawUrl |
Nhận URL thô của yêu cầu hiện tại. |
RequestType |
Nhận hoặc đặt phương thức truyền dữ liệu HTTP (GET hoặc POST) được ứng dụng khách sử dụng. |
ServerVariables |
Nhận tập hợp các biến máy chủ Web. |
TotalBytes |
Nhận số byte trong luồng đầu vào hiện tại. |
Url |
Nhận thông tin về URL của yêu cầu hiện tại. |
UrlReferrer |
Nhận thông tin về URL của yêu cầu trước đó của khách hàng được liên kết với URL hiện tại. |
Đại lý người dùng |
Nhận chuỗi tác nhân người dùng thô của trình duyệt máy khách. |
UserHostAddress |
Nhận địa chỉ máy chủ IP của máy khách từ xa. |
Tên người dùng |
Nhận tên DNS của máy khách từ xa. |
Người dùng |
Nhận một mảng chuỗi được sắp xếp của các tùy chọn ngôn ngữ ứng dụng khách. |
Bảng sau cung cấp danh sách một số phương pháp quan trọng:
Phương pháp |
Sự miêu tả |
BinaryRead |
Thực hiện đọc nhị phân một số byte được chỉ định từ luồng đầu vào hiện tại. |
Bằng (Đối tượng) |
Xác định xem đối tượng được chỉ định có bằng đối tượng hiện tại hay không. (Được kế thừa từ đối tượng.) |
GetType |
Rút ra loại của trường hợp hiện tại. |
Bản đồ |
Ánh xạ một tham số dạng trường hình ảnh đến với các giá trị tọa độ x và tọa độ y thích hợp. |
MapPath (Chuỗi) |
Ánh xạ đường dẫn ảo được chỉ định đến đường dẫn thực. |
Lưu thành |
Lưu một yêu cầu HTTP vào đĩa. |
ToString |
Trả về một chuỗi đại diện cho các đối tượng hiện tại. |
ValidateInput |
Làm cho việc xác thực xảy ra đối với các bộ sưu tập được truy cập thông qua các thuộc tính Cookie, Form và QueryString. |
Đối tượng phản hồi
Đối tượng Phản hồi đại diện cho phản hồi của máy chủ đối với yêu cầu của máy khách. Nó là một thể hiện của lớp System.Web.HttpResponse.
Trong ASP.NET, đối tượng phản hồi không đóng bất kỳ vai trò quan trọng nào trong việc gửi văn bản HTML đến máy khách, vì các điều khiển phía máy chủ có các phương thức hướng đối tượng lồng nhau để tự hiển thị.
Tuy nhiên, đối tượng HttpResponse vẫn cung cấp một số chức năng quan trọng, như tính năng cookie và phương thức Redirect (). Phương thức Response.Redirect () cho phép chuyển người dùng sang một trang khác, bên trong cũng như bên ngoài ứng dụng. Nó yêu cầu một chuyến đi khứ hồi.
Thuộc tính và phương pháp của đối tượng phản hồi
Bảng sau cung cấp một số thuộc tính đáng chú ý của đối tượng Response:
Bất động sản |
Sự miêu tả |
Đệm |
Nhận hoặc đặt một giá trị cho biết có nên đệm đầu ra và gửi nó sau khi xử lý xong phản hồi hoàn chỉnh hay không. |
BufferOutput |
Nhận hoặc đặt một giá trị cho biết có nên đệm đầu ra và gửi nó sau khi xử lý xong trang hoàn chỉnh hay không. |
Bộ ký tự |
Lấy hoặc đặt bộ ký tự HTTP của luồng đầu ra. |
ContentEncoding |
Lấy hoặc đặt bộ ký tự HTTP của luồng đầu ra. |
ContentType |
Nhận hoặc đặt kiểu HTTP MIME của luồng đầu ra. |
Bánh quy |
Nhận bộ sưu tập cookie phản hồi. |
Hết hạn |
Nhận hoặc đặt số phút trước khi một trang được lưu trong bộ nhớ cache trên trình duyệt hết hạn. |
Hết hạn |
Lấy hoặc đặt ngày và giờ tuyệt đối để xóa thông tin đã lưu trong bộ nhớ cache. |
HeaderEncoding |
Lấy hoặc đặt đối tượng mã hóa đại diện cho mã hóa cho luồng đầu ra tiêu đề hiện tại. |
Tiêu đề |
Nhận bộ sưu tập các tiêu đề phản hồi. |
IsClientConnected |
Nhận một giá trị cho biết liệu máy khách có còn được kết nối với máy chủ hay không. |
Đầu ra |
Cho phép xuất văn bản sang luồng phản hồi HTTP gửi đi. |
OutputStream |
Cho phép đầu ra nhị phân cho nội dung HTTP gửi đi. |
RedirectLocation |
Nhận hoặc đặt giá trị của tiêu đề Vị trí Http. |
Tình trạng |
Đặt dòng trạng thái được trả lại cho máy khách. |
Mã trạng thái |
Lấy hoặc đặt mã trạng thái HTTP của đầu ra được trả lại cho máy khách. |
Tình trạng Mô tả |
Lấy hoặc đặt chuỗi trạng thái HTTP của đầu ra được trả lại cho máy khách. |
Mã trạng thái con |
Nhận hoặc đặt một giá trị đủ điều kiện cho mã trạng thái của phản hồi. |
SuppressContent |
Nhận hoặc đặt một giá trị cho biết có gửi nội dung HTTP đến máy khách hay không. |
Bảng sau cung cấp danh sách một số phương pháp quan trọng:
Phương pháp |
Sự miêu tả |
AddHeader |
Thêm tiêu đề HTTP vào luồng đầu ra. AddHeader được cung cấp để tương thích với các phiên bản ASP trước đó. |
AppendCookie |
Cơ sở hạ tầng thêm cookie HTTP vào bộ sưu tập cookie nội tại. |
AppendHeader |
Thêm tiêu đề HTTP vào luồng đầu ra. |
AppendToLog |
Thêm thông tin nhật ký tùy chỉnh vào tệp nhật ký Dịch vụ Thông tin InterNET (IIS). |
BinaryWrite |
Ghi một chuỗi ký tự nhị phân vào luồng đầu ra HTTP. |
ClearContent |
Xóa tất cả đầu ra nội dung khỏi luồng bộ đệm. |
Đóng |
Đóng kết nối ổ cắm với máy khách. |
Chấm dứt |
Gửi tất cả đầu ra hiện được lưu trong bộ đệm tới máy khách, dừng thực thi trang và tăng sự kiện EndRequest. |
Bằng (Đối tượng) |
Xác định xem đối tượng được chỉ định có bằng đối tượng hiện tại hay không. |
Tuôn ra |
Gửi tất cả đầu ra hiện được lưu trong bộ đệm cho máy khách. |
GetType |
Rút ra loại của trường hợp hiện tại. |
Bức ảnh |
Thêm tiêu đề PICS-Nhãn HTTP vào luồng đầu ra. |
Chuyển hướng (Chuỗi) |
Chuyển hướng một yêu cầu đến một URL mới và chỉ định URL mới. |
Chuyển hướng (Chuỗi, Boolean) |
Chuyển hướng khách hàng đến một URL mới. Chỉ định URL mới và việc thực thi trang hiện tại có nên chấm dứt hay không. |
SetCookie |
Cập nhật một cookie hiện có trong bộ sưu tập cookie. |
ToString |
Trả về một chuỗi đại diện cho các đối tượng hiện tại. |
TransmitFile (Chuỗi) |
Ghi tệp được chỉ định trực tiếp vào luồng đầu ra phản hồi HTTP mà không lưu tệp đó vào bộ nhớ. |
Viết (Char) |
Ghi một ký tự vào luồng đầu ra phản hồi HTTP. |
Viết (Đối tượng) |
Ghi một đối tượng vào luồng phản hồi HTTP. |
Viết (Chuỗi) |
Ghi một chuỗi vào luồng đầu ra phản hồi HTTP. |
WriteFile (Chuỗi) |
Ghi trực tiếp nội dung của tệp được chỉ định vào luồng đầu ra phản hồi HTTP dưới dạng một khối tệp. |
WriteFile (Chuỗi, Boolean) |
Ghi trực tiếp nội dung của tệp được chỉ định vào luồng đầu ra phản hồi HTTP dưới dạng khối bộ nhớ. |
Ví dụ
Ví dụ đơn giản sau đây có điều khiển hộp văn bản nơi người dùng có thể nhập tên, nút để gửi thông tin đến máy chủ và điều khiển nhãn để hiển thị URL của máy tính khách.
Tệp nội dung:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
Inherits="server_side._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
Enter your name:
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" />
<br />
<asp:Label ID="Label1" runat="server"/>
</div>
</form>
</body>
</html>
Mã đằng sau Button1_Click:
protected void Button1_Click(object sender, EventArgs e) {
if (!String.IsNullOrEmpty(TextBox1.Text)) {
// Access the HttpServerUtility methods through
// the intrinsic Server object.
Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString())
}
}
Chạy trang để xem kết quả sau:
Trên đây là các thông tin về Server Side trong ASP. Net, bạn có thể tham khảo thêm khóa học lập trình ASp.Net nếu muốn hoặc tìm hiểu thông tin về các khóa học lập trình khác thông qua mục Blog của chúng tôi.