الخميس، 28 نوفمبر 2019

خادم الصفحة في برمجة صفحات الويب أي اس بي ASP.NET Server Side#

خادم الصفحة في برمجة صفحات الويب أي اس بي 

ASP.NET Server Side#

خادم الصفحة في برمجة صفحات الويب أي اس بي ASP.NET Server Side#







لقد درسنا دورة حياة الصفحة وكيف تحتوي الصفحة على عناصر تحكم مختلفة.  يتم إنشاء مثيل الصفحة نفسها ككائن تحكم.  جميع نماذج الويب هي في الأساس مثيلات فئة صفحة ASP.NET.  فئة الصفحة تحتوي على الخصائص المفيدة للغاية التالية التي تتوافق مع الكائنات الداخلية:

  • Session الجلسات 
  • Application التطبيق 
  • Cache الذاكرة المؤقتة الكاش
  • Request طريقة الطلب
  • Response طريقة الاستجابة 
  • Server السيرفر
  • User المستخدم 
  • Trace التتبع

سنناقش كل من هذه الأشياء في الوقت المناسب.  في هذا البرنامج التعليمي ، سوف نستكشف كائن الخادم ، كائن الطلب ، وكائن الاستجابة.

 كائن الخادم 
 كائن Server في Asp.NET هو مثيل للفئة System.Web.HttpServerUtility.  توفر الفئة HttpServerUtility العديد من الخصائص والأساليب لأداء وظائف مختلفة.

 خصائص وأساليب الكائن Server
 يتم الكشف عن أساليب وخصائص فئة HttpServerUtility من خلال كائن خادم مضمن يوفره ASP.NET.

 يوفر الجدول التالي قائمة بالخصائص:

الخاصيةالوصف 
MachineNameاسم الكمبيوتر الخادم او السيرفر
ScriptTimeOutقيمة الوقت اللازم لي خاصية get و set

يوفر الجدول التالي قائمة ببعض الطرق المهمة:
الدالةالوصف 
CreateObject(String)إنشاء مثيل لكائن COM المعرّف بواسطة ProgID الخاص به (معرّف البرنامج).
CreateObject(Type)ينشئ مثيل لكائن COM المعرّف بواسطة النوع الخاص به.
Equals(Object)يحدد ما إذا كان الكائن المحدد يساوي الكائن الحالي.
Execute(String)ينفذ المعالج للمسار الظاهري المحدد في سياق الطلب الحالي.
Execute(String, Boolean)ينفذ المعالج للمسار الظاهري المحدد في سياق الطلب الحالي ويحدد ما إذا كان سيتم مسح مجموعات QueryString و Form.
GetLastErrorإرجاع الاستثناء السابق.
GetTypeالحصول على نوع البيانات  للمثيل الحالي.

HtmlEncodeتغيير سلسلة عادية إلى سلسلة بأحرف HTML .
HtmlDecodeيحول سلسلة Html إلى سلسلة عادية.
ToStringإرجاع سلسلة تمثل الكائن الحالي.
Transfer(String)بالنسبة للطلب الحالي ، ينتهي تنفيذ الصفحة الحالية ويبدأ تنفيذ صفحة جديدة باستخدام مسار عنوان URL المحدد للصفحة.
UrlDecodeيحول سلسلة عنوان URL إلى سلسلة عادية.
UrlEncodeTokenيعمل نفس UrlEncode ، ولكن على صفيف بايت يحتوي على بيانات ترميز Base64.
UrlDecodeToken.يعمل نفس UrlDecode ، ولكن على صفيف بايت يحتوي على بيانات ترميز Base64
MapPathقم بإرجاع المسار الفعلي الذي يتوافق مع مسار ملف ظاهري محدد على الخادم.
Transferينقل التنفيذ إلى صفحة ويب أخرى في التطبيق الحالي.

طلب الكائن Request Object

كائن الطلب هو مثيل للفئة System.Web.HttpRequest.  يمثل قيم وخصائص طلب HTTP الذي يجعل الصفحة يتم تحميلها في المستعرض.

 يتم تغليف المعلومات التي يقدمها هذا الكائن بواسطة تجريدات المستوى الأعلى (نموذج التحكم في الويب).  ومع ذلك ، يساعد هذا الكائن في التحقق من بعض المعلومات مثل متصفح العميل وملفات تعريف الارتباط.

 خصائص والدوال الخاصة بطلب كائن Properties and Methods of the Request Object


يوفر الجدول التالي بعض الخصائص المهمة لكائن الطلب:
الحاصيةالوصف
AcceptTypesالحصول على نوع سلسلة من أنواع قبول MIME التي يدعمها العميل.
ApplicationPathالحصول على مسار الجذر للتطبيق الظاهري لتطبيق ASP.NET على الخادم.
Browserالحصول على أو تعيين معلومات حول قدرات متصفح العميل الطالب.
ContentEncodingالحصول على أو تعيين مجموعة الأحرف من نص الكيان.
ContentLengthيحدد الطول بالبايت أو المحتوى الذي يرسله العميل.
ContentTypeالحصول على أو تعيين نوع محتوى MIME للطلب الوارد.
Cookiesالحصول على مجموعة من ملفات تعريف الارتباط التي يرسلها العميل.
FilePathالحصول على المسار الظاهري للطلب الحالي.
Filesالحصول على مجموعة من الملفات التي تم تحميلها من قبل العميل ، بتنسيق MIME متعدد الأجزاء.
Formالحصول على مجموعة من متغيرات النموذج.
Headersالحصول على مجموعة من رؤوس HTTP.
HttpMethodالحصول على طريقة نقل بيانات HTTP (مثل GET أو POST أو HEAD) المستخدمة من قبل العميل.
InputStreamالحصول على محتويات نص كيان HTTP الوارد.
IsSecureConnectionالحصول على قيمة تشير إلى ما إذا كان اتصال HTTP يستخدم مآخذ آمنة (أي HTTPS).
QueryStringالحصول على مجموعة متغيرات سلسلة استعلام HTTP.
RawUrlالحصول على عنوان URL الخام للطلب الحالي.
RequestTypeالحصول على أو تعيين طريقة نقل بيانات HTTP (GET أو POST) المستخدمة من قبل العميل.
ServerVariablesالحصول على مجموعة من متغيرات خادم الويب.
TotalBytesالحصول على عدد البايتات في دفق الإدخال الحالي.
Urlالحصول على معلومات حول عنوان URL للطلب الحالي.
UrlReferrerالحصول على معلومات حول عنوان URL للطلب السابق للعميل المرتبط بعنوان URL الحالي.
UserAgentالحصول على سلسلة وكيل المستخدم الخام لمتصفح العميل.
UserHostAddressالحصول على عنوان مضيف IP للعميل البعيد.
UserHostNameالحصول على اسم DNS للعميل البعيد.
UserLanguagesالحصول على مجموعة من سلسلة فرز من تفضيلات لغة العميل.
يوفر الجدول التالي قائمة ببعض الطرق المهمة:
الدولالوصف 
BinaryReadينفذ قراءة ثنائية لعدد محدد من البايتات من دفق الإدخال الحالي.
Equals(Object)لتحديد ما إذا كان الكائن المحدد يساوي الكائن الحالي.  (موروثة من الكائن.)
GetTypeالحصول على نوع المثيل الحالي.
MapImageCoordinatesتعيين معلمة نموذج حقل صورة واردة لتعيين قيم إحداثيات س مناسبة وإحداثيات ص.
MapPath(String)يخطط المسار الظاهري المحدد إلى مسار مادي.
SaveAsيحفظ طلب HTTP على القرص.
ToStringإرجاع سلسلة تمثل الكائن الحالي.
ValidateInputيؤدي التحقق من الصحة إلى حدوث المجموعات التي يتم الوصول إليها من خلال خصائص ملفات تعريف الارتباط والنموذج QueryString.

 استجابة الكائن Response Object

يمثل كائن الاستجابة استجابة الخادم لطلب العميل.  إنه مثيل لفئة System.Web.HttpResponse.

 في ASP.NET ، لا يلعب كائن الاستجابة أي دور حيوي في إرسال نص HTML إلى العميل ، لأن عناصر التحكم من جانب الخادم تحتوي على طرق متداخلة وموجهة نحو الكائن لتقديم نفسها.
ومع ذلك ، لا يزال كائن HttpResponse يوفر بعض الوظائف المهمة ، مثل ميزة ملف تعريف الارتباط وأسلوب إعادة التوجيه ().  تسمح طريقة Response.Redirect () بنقل المستخدم إلى صفحة أخرى ، داخل وخارج التطبيق.  يتطلب رحلة ذهابا وإيابا
.خصائص وأساليب كائن الاستجابة
 يوفر الجدول التالي بعض الخصائص المهمة لكائن الاستجابة:


الدالةالوصف
Bufferالحصول على أو تحديد قيمة تشير إلى ما إذا كان سيتم تخزين المخزن مؤقتًا وإرساله بعد انتهاء الاستجابة الكاملة للمعالجة.
BufferOutputيحصل أو تحديد قيمة تقيد ما إذا كان العازلة الإخراج وإرسالها بعد انتهاء الصفحة التجارية المعالجة.
Charsetيحصل أو تعيين مجموعة حرف هتب من تيار الإخراج.
ContentEncodingيحصل أو تعيين مجموعة حرف هتب من تيار الإخراج.
ContentTypeيحصل أو يعيين نوع من دالة الإخراج.
Cookiesبعين قيم خاصة بالكوكيز
Expiresيحصل أو يعين عدد الدقائق كما ستبقى الصفحة فعالة مؤقثة على متصفح.
ExpiresAbsoluteيحصل أو تعيين التاريخ المطلق والوقت الذي لإزالة المعلومات المخزنة المؤقتة من ذاكرة التخزين المؤقت.
HeaderEncodingيحصل أو تعيين كائن ترميز يمثل الترميز .
Headersيحصل على الترميز الخاص من رأس الصفحة 
IsClientConnectedيحصل على قيمةالتي  تشير ما إذا كان العميل لا يزال متصلا بالخادم.
Outputيتيح إخراج النص إلى تدفق استجابة HTTP الصادر.
التدفق يقصد به سلسلة من الترميز الثنائي 
OutputStreamتمكين الإنتاج الثنائي إلى هيئة محتوى http  الصادرة.
RedirectLocationيحصل أو تعيين قيمة رأس موقع هتب http.
Statusتعيين  الحالة الذي يتم إرجاعه إلى العميل.
StatusCodeيحصل أو تعيين رمز حالة هتب http من الإخراج الذي تم إرجاعه إلى العميل.

StatusDescriptionيحصل أو تعيين سلسلة حالة هتب http من الإخراج الذي تم إرجاعه إلى العميل.
SubStatusCodeيحصل أو تعيين قيمة تأهيل رمز الحالة للاستجابة.
SuppressContentيحصل أو تحديد قيمة تبين ما إذا كانت محتوى هتب http إلى العميل.

يوفر الجدول التالي قائمة ببعض الدوال الهامة:

الأداة الوصف
AddHeaderيضيف رأس هتب http إلى تيار الإخراج. يتم تقديم addheader للتوافق مع الإصدارات السابقة من أسب asp.
AppendCookieيضيف البنية التحتية ملف تعريف الارتباط هتب http إلى جمع الكوكيز الإخباري.
AppendHeaderيضيف رأس HTTP إلى دفق الإخراج.
AppendToLogلإضافة معلومات السجل المخصص إلى ملف سجل خدمات معلومات الإنترنت (IIS).
BinaryWriteيكتب سلسلة من الأحرف الثنائية في دفق إخراج HTTP.
ClearContentمسح كل إخراج المحتوى من دفق المخزن المؤقت.
Closeلإغلاق اتصال المقبس لعميل.
Endيرسل كل الإخراج المخزن مؤقتاً حالياً إلى العميل ، ويوقف تنفيذ الصفحة ، ويرفع الحدث EndRequest.
Equals(Object)لتحديد ما إذا كان الكائن المحدد يساوي الكائن الحالي.
Flushيرسل كل مخزنة مؤقتا حاليا إلى العميل.
GetTypeالحصول على نوع المثيل الحالي.
Picsإلحاق رأس تسمية HTTP PICS إلى تدفق الإخراج.
Redirect(String)يعيد توجيه طلب إلى عنوان URL جديد ويحدد عنوان URL الجديد.
Redirect(String, Boolean)يعيد توجيه عميل إلى عنوان URL جديد.  يحدد عنوان URL الجديد وما إذا كان يجب إنهاء تنفيذ الصفحة الحالية أم لا.
SetCookieتحديث ملف تعريف ارتباط موجود في مجموعة ملفات تعريف الارتباط.
ToStringإرجاع سلسلة تمثل الكائن الحالي.
TransmitFile(String)يكتب الملف المحدد مباشرة إلى دفق إخراج استجابة HTTP ، دون تخزينه مؤقتًا في الذاكرة.
Write(Char)يكتب حرفًا إلى دفق إخراج استجابة HTTP.
Write(Object)يكتب كائن إلى دفق استجابة HTTP.
Write(String)يكتب سلسلة لدفق إخراج استجابة HTTP.
WriteFile(String)يكتب محتويات الملف المحدد مباشرة إلى دفق إخراج استجابة HTTP ككتلة ملفات.
WriteFile(String, Boolean)يكتب محتويات الملف المحدد مباشرة إلى دفق إخراج استجابة HTTP ككتلة ذاكرة.

 مثال Example


يحتوي المثال البسيط التالي على عنصر تحكم مربع نص حيث يمكن للمستخدم إدخال الاسم ، وزر لإرسال المعلومات إلى الخادم ، وعنصر تحكم في التسمية لعرض عنوان URL لجهاز الكمبيوتر العميل.

 ملف المحتوى:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" 
   Inherits="server_side._Default" %>



 xmlns="http://www.w3.org/1999/xhtml" >

    runat="server">
      </span><span class="pln" style="color: rgb(0, 0, 0);">Untitled Page</span><span class="tag" style="color: rgb(0, 0, 136);">
   
   
   
      
id="form1" runat="server">
Enter your name: /> ID="TextBox1" runat="server"> ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> /> ID="Label1" runat="server"/>
The code behind 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) + ". 
 The url is " + Server.UrlEncode(Request.Url.ToString())
   }
}
الناتج كود السابق 








التسميات: