لقد ألقينا نظرة على دورة حياة الصفحة وكيف يمكن أن تحتوي الصفحة على عناصر تحكم مختلفة. يتم إنشاء مثيل الصفحة نفسها ككائن تحكم. جميع نماذج الويب هي في الأساس مثيلات لفئات صفحات ASP.NET. تحتوي فئة الصفحة على الخصائص المفيدة للغاية التالية، والتي تتوافق مع الكائنات الداخلية:
حصة
برنامج
مخبأ
بسأل
إجابة
الخادم
مستخدم
مسار
وسوف نناقش كل كائن في الوقت المناسب. في هذا البرنامج التعليمي سوف نستكشف كائن الخادم، وكائن الطلب، وكائن الاستجابة.
كائن الخادم في ASP.NET هو مثيل لفئة System.Web.HttpServerUtility. توفر فئة HttpServerUtility عددًا كبيرًا من الخصائص والأساليب لتنفيذ مهام مختلفة.
يتم عرض أساليب وخصائص فئة HttpServerUtility من خلال كائنات الخادم الداخلية التي يوفرها ASP.NET.
يوفر الجدول التالي سلسلة من خصائص فئة HttpServerUtility.
ملكية | يصف |
---|---|
اسم الآلة | اسم الكمبيوتر الخادم |
ScriptTimeOut | الحصول على قيمة مهلة الطلب بالثواني وتعيينها |
ويقدم الجدول التالي بعض الطرق الهامة:
طريقة | يصف |
---|---|
إنشاء كائن (سلسلة) | يقوم بإنشاء مثيل لكائن COM، ويتم التحقق منه بواسطة ProgID الخاص به. |
إنشاء كائن (نوع) | إنشاء مثيل لكائن COM، والتحقق من نوعه. |
يساوي (كائن) | تحديد ما إذا كان كائن معين متوافقًا مع كائن موجود أم لا. |
تنفيذ (سلسلة) | قم بتنفيذ المسار الظاهري المحدد بواسطة تطبيق المعالجة في سياق الطلب الحالي. |
تنفيذ (سلسلة، منطقية) | قم بتنفيذ المسار الظاهري المحدد بواسطة المعالج في سياق الطلب الحالي، مع تحديد ما إذا كان سيتم مسح مجموعة QueryString والنماذج. |
خطأ آخر | إرجاع الاستثناء السابق. |
GetType | يحصل على نوع المثيل الموجود. |
htmlEncode | تحويل سلسلة عادية إلى سلسلة HTML قانونية. |
htmlDecode | تحويل سلسلة Html إلى سلسلة عادية. |
ToString | تقوم بإرجاع سلسلة تمثل الكائن الحالي. |
نقل (سلسلة) | بالنسبة للطلب الحالي، يتم إنهاء تنفيذ الصفحة الحالية وبدء تنفيذ صفحة جديدة عن طريق تحديد مسار URL الخاص بالصفحة. |
UrlDecode | تحويل سلسلة URL إلى سلسلة عادية. |
UrlEncodeToken | يشبه UrlEncode، ولكنه يحتوي على بيانات مشفرة بـ Base64 في صفيف بايت. |
UrlDecodeToken | يعمل بنفس طريقة UrlDecode، ولكنه يحتوي على بيانات مشفرة بـ Base64 في مصفوفة بايت. |
MapPath | إرجاع المسار الفعلي المطابق لمسار الملف على الخادم الظاهري المحدد. |
تحويل | نقل التنفيذ على التطبيق الحالي إلى صفحة ويب أخرى. |
كائن الطلب هو مثيل لفئة System.Web.HttpRequest. وهو يمثل قيم وسمات طلب HTTP التي تمكن من تحميل الصفحة في المتصفح.
يتم تغليف المعلومات المقدمة بواسطة هذا الكائن في مستوى أعلى من التجريد (نموذج التحكم في الويب). ومع ذلك، يمكن أن يساعد هذا الكائن في فحص بعض المعلومات، مثل متصفحات العميل وملفات تعريف الارتباط.
يوفر الجدول التالي بعض الخصائص الجديرة بالملاحظة لكائن الطلب:
ملكية | يصف |
---|---|
قبول الأنواع | يحصل على مجموعة من أنواع MIME المقبولة التي يدعمها المستخدم. |
مسار التطبيق | احصل على المسار الجذري الحقيقي للتطبيق لتطبيق ASP.NET على الخادم. |
المتصفح | الحصول على معلومات حول إمكانيات متصفح المستخدم الطالب أو تعيينها. |
ترميز المحتوى | الحصول على كيان مجموعة الأحرف أو تعيينه. |
طول المحتوى | يحدد الطول بالبايت للمحتوى الذي يرسله العميل. |
نوع المحتوى | الحصول على أو تعيين نوع محتوى MIME للطلب الوارد. |
ملفات تعريف الارتباط | الحصول على مجموعة ملفات تعريف الارتباط التي أرسلها العميل. |
مسار الملف | احصل على المسار الحقيقي للطلب الحالي. |
ملفات | الحصول على مجموعة من الملفات التي تم تحميلها بواسطة العميل بتنسيق MIME متعدد الأجزاء. |
استمارة | يحصل على مجموعة من متغيرات النموذج. |
الرؤوس | يحصل على مجموعة من رؤوس HTTP. |
HttpMethod | احصل على طريقة نقل بيانات HTTP التي يستخدمها المستخدم (مثل GET أو POST أو HEAD) |
تيار الإدخال | احصل على محتوى كيان HTTP الوارد. |
IsSecureConnection | يحصل على قيمة تشير إلى ما إذا كان اتصال HTTP يستخدم مآخذ توصيل آمنة (أي HTTPS). |
سلسلة الاستعلام | يحصل على مجموعة من متغيرات سلسلة استعلام HTTP. |
RawUrl | احصل على عنوان URL الأصلي للطلب الحالي. |
نوع الطلب | الحصول على أو تعيين طريقة نقل بيانات HTTP (GET أو POST) التي يستخدمها المستخدم. |
متغيرات الخادم | يحصل على مجموعة من متغيرات خادم الويب. |
إجمالي البايت | احصل على عدد البايتات من دفق الإدخال الموجود. |
عنوان URL | يحصل على معلومات حول عنوان URL المطلوب الموجود. |
UrlReferrer | يحصل على معلومات URL حول طلب العميل السابق المرتبط بعنوان URL موجود. |
وكيل المستخدم | يحصل على سلسلة وكيل المستخدم الأصلية لمتصفح العميل. |
عنوان مضيف المستخدم | احصل على عنوان مضيف IP للعميل البعيد. |
اسم_المضيف_المستخدم | يحصل على اسم DNS للعميل البعيد. |
لغات المستخدم | يحصل على مجموعة سلسلة مرتبة من تفضيلات لغة العميل. |
ويقدم الجدول التالي بعض الطرق الهامة:
طريقة | يصف |
---|---|
القراءة الثنائية | ينفذ قراءة ثنائية لعدد البايتات المحدد من دفق الإدخال الحالي. |
يساوي (كائن) | تحديد ما إذا كان الكائن المحدد مكافئًا لكائن موجود. (موروثة من الكائن) |
GetType | يحصل على نوع المثيل الموجود. |
إحداثيات صورة الخريطة | يرسم معلمات نموذج حقل الصورة الواردة إلى قيم إحداثيات x وy المناسبة. |
مسار الخريطة (سلسلة) | يرسم المسار الحقيقي المحدد إلى مسار فعلي. |
حفظ باسم | مخزنة على القرص كطلب HTTP. |
ToString | تقوم بإرجاع سلسلة تمثل الكائن الموجود. |
التحقق من صحة الإدخال | يتسبب في حدوث التحقق من الصحة عن طريق الوصول إلى مجموعة خصائص ملفات تعريف الارتباط والنموذج وسلسلة الاستعلام. |
يمثل كائن الاستجابة استجابة الخادم لطلب المستخدم. وهو مثيل لفئة System.Web.HttpResponse.
في ASP.NET، لا تلعب كائنات الاستجابة أي دور مهم في إرسال نص HTML إلى المستخدم لأن عناصر التحكم من جانب الخادم تحتوي على أساليب متداخلة وموجهة للكائنات لعرض نفسها.
ومع ذلك، يوفر كائن HttpResponse بعض الوظائف المهمة، مثل خصائص ملف تعريف الارتباط وأسلوب Redirect(). يسمح الأسلوب Response.Redirect() بنقل المستخدم إلى صفحة أخرى، إما داخل التطبيق أو خارجه. يتطلب عملية ذهابا وإيابا.
يوفر الجدول التالي بعض الخصائص الجديرة بالملاحظة لكائنات الاستجابة:
ملكية | يصف |
---|---|
المخزن المؤقت | الحصول على أو تعيين قيمة تشير إلى ما إذا كان سيتم تخزين الإخراج مؤقتًا وإرساله بعد انتهاء المستجيب الكامل. |
BufferOutput | الحصول على أو تعيين قيمة تشير إلى ما إذا كان سيتم تخزين الإخراج مؤقتًا وإرساله بعد انتهاء الصفحة الكاملة. |
مجموعة الأحرف | الحصول على أو تعيين مجموعة أحرف HTTP لدفق الإخراج. |
ترميز المحتوى | الحصول على أو تعيين مجموعة أحرف HTTP لدفق الإخراج. |
نوع المحتوى | الحصول على أو تعيين نوع HTTP MIME لدفق الإخراج. |
ملفات تعريف الارتباط | احصل على مجموعة ملفات تعريف الارتباط المقابلة. |
تنتهي | الحصول على أو تعيين عدد الدقائق قبل انتهاء صلاحية الصفحات المخزنة مؤقتًا في المتصفح. |
تنتهي الصلاحية مطلقًا | الحصول على أو تعيين التاريخ والوقت المطلق الذي تتم فيه إزالة المعلومات المخزنة مؤقتًا من ذاكرة التخزين المؤقت. |
ترميز الرأس | الحصول على أو تعيين كائن ترميز يمثل ترميز دفق إخراج الرأس الموجود. |
الرؤوس | يحصل على مجموعة من رؤوس الاستجابة. |
IsClientConnected | يحصل على قيمة تشير إلى ما إذا كان المستخدم لا يزال متصلاً بالخادم. |
الإخراج | يؤدي إلى إخراج النص الناتج إلى دفق استجابة HTTP. |
تيار الإخراج | لتمكين الإخراج الثنائي إلى نص محتوى HTTP الخاص بالمخرج. |
إعادة توجيه الموقع | الحصول على أو تعيين قيمة موضع رأس Http. |
حالة | قم بتعيين شريط الحالة وإعادته إلى العميل. |
رمز الحالة | الحصول على أو تعيين رمز حالة إخراج HTTP الذي تم إرجاعه إلى العميل. |
وصف الحالة | الحصول على أو تعيين سلسلة حالة إخراج HTTP التي يتم إرجاعها إلى العميل. |
رمز الحالة الفرعية | الحصول على أو تعيين قيمة تحد من رمز حالة الاستجابة. |
قمع المحتوى | الحصول على قيمة أو تعيينها تشير إلى ما إذا كان سيتم إرسال محتوى HTTP إلى العميل. |
ويقدم الجدول التالي بعض الطرق الهامة:
طريقة | يصف |
---|---|
AddHeader | يضيف رأس HTTP إلى دفق الإخراج. يتم توفير AddHeader للتوافق مع الإصدارات السابقة من ASP. |
إلحاق ملف تعريف الارتباط | تضيف البنية التحتية ملف تعريف ارتباط HTTP إلى مجموعة ملفات تعريف الارتباط الداخلية. |
إلحاق رأس | يضيف رأس HTTP إلى دفق الإخراج. |
AppendToLog | إضافة معلومات السجل المخصصة إلى ملف سجل خدمات معلومات الإنترنت (IIS). |
كتابة ثنائية | يكتب سلسلة من الأحرف الثنائية إلى دفق إخراج HTTP. |
محتوى واضح | مسح كافة المخرجات من الدفق المخزن. |
يغلق | أغلق مأخذ توصيل العميل. |
نهاية | يرسل كافة المخرجات المخزنة مؤقتًا إلى العميل، ويوقف تنفيذ الصفحة، ويطلق حدث EndRequest. |
يساوي (كائن) | تحديد ما إذا كان الكائن المحدد مكافئًا لكائن موجود. |
دافق | إرسال جميع المخرجات المخزنة مؤقتًا إلى العميل. |
GetType | يحصل على نوع المثيل الموجود. |
صور | يقوم بإلحاق رأس HTTP PICS-Label لدفق الإخراج. |
إعادة التوجيه (سلسلة) | أعد توجيه الطلب إلى عنوان URL جديد وحدد عنوان URL الجديد. |
إعادة التوجيه (سلسلة، منطقية) | إعادة توجيه العميل إلى عنوان URL جديد. يحدد عنوان URL الجديد وما إذا كان يجب إنهاء الصفحة الحالية. |
SetCookie | قم بتحديث ملفات تعريف الارتباط الموجودة في مجموعة ملفات تعريف الارتباط. |
ToString | تقوم بإرجاع سلسلة تمثل الكائن الموجود |
ملف الإرسال (سلسلة) | يكتب الملف المحدد مباشرة إلى دفق إخراج استجابة HTTP دون تخزين مؤقت في الذاكرة. |
اكتب (شار) | يكتب حرفًا إلى دفق إخراج استجابة HTTP. |
كتابة (كائن) | يكتب كائنًا في دفق استجابة HTTP. |
كتابة (سلسلة) | يكتب سلسلة إلى دفق إخراج استجابة HTTP. |
ملف الكتابة (سلسلة) | يكتب محتويات الملف المحدد مباشرة إلى دفق إخراج استجابة HTTP، ككتلة ملف. |
ملف الكتابة (سلسلة، منطقية) | يكتب محتويات الملف المحدد مباشرة إلى تدفق إخراج استجابة HTTP، ككتلة ذاكرة. |
يحتوي المثال البسيط التالي على عنصر تحكم مربع نص يسمح للمستخدم بإدخال اسم، وزر يرسل المعلومات إلى الخادم، وعنصر تحكم تسمية يعرض عنوان URL للكمبيوتر العميل.
ملفات المحتوى:
<%@ 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>
Button1_انقر على الرمز بعد النقر:
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()) }}
قم بتشغيل الصفحة لترى النتائج التالية: