كائن التطبيق
كائن التطبيق هو كائن على مستوى التطبيق يُستخدم لمشاركة المعلومات بين كافة المستخدمين ولاستمرار البيانات أثناء تشغيل تطبيق الويب.
خصائص التطبيق:
وإليك الطريقة:
لا يحتوي كائن التطبيق على خصائص مضمنة، ولكن يمكننا إنشاء خصائصه الخاصة.
<% التطبيق("اسم الخاصية")=القيمة%>
في الواقع، يتم تخزين معظم متغيرات التطبيق في مجموعة المحتويات. عندما تقوم بإنشاء متغير تطبيق جديد، فإنك تقوم فعليًا بإضافة عنصر إلى مجموعة المحتويات. النصان التاليان متكافئان:
<% Application("greeting")="hello %!" أو <% Application.contents("greeting")="hello!" نظرًا لوجود متغيرات التطبيق في المجموعة، إذا كنت تريد عرضها جميعًا، فلدينا عدة مرات طرق، مثل لكل حلقة.
<%
لكل عنصر في التطبيق.المحتويات
Response.write("<br>"&item&Application.Contents(item))
التالي
%>
طريقة التطبيق:
يحتوي التطبيق على طريقتين فقط: إحداهما القفل والأخرى إلغاء القفل. يتم استخدام طريقة القفل للتأكد من أن مستخدمًا واحدًا فقط يمكنه تشغيل التطبيق في نفس الوقت. يتم استخدام إلغاء القفل لإلغاء قيود طريقة القفل. يحب:
<%
التطبيق.القفل
Application("visitor_num")=Application("visitor_num")+1
التطبيق.فتح
%>
أحداث التطبيق:
1.Application_OnStart()
يتم تشغيله عند بدء تطبيق الحدث.
2. Application_OnEnd()
يتم تشغيل هذا الحدث عند انتهاء التطبيق.
يجب تعريف هذين الحدثين في الملف Global.asp بشكل عام، يتم تعريف وظيفة توصيل البيانات في هذين الحدثين ثم يتم وضعها في Global.asp. على سبيل المثال:
التطبيق الفرعي_OnStart
Application("tt18_ConnectionString") = "driver={SQL
الخادم};الخادم=جيف;uid=sa;pwd=;قاعدة البيانات=اختبار"
نهاية الفرعية
يمكن تعريف المصفوفة على أنها كائن تطبيق، ولكن لا يمكن حفظ هذه المصفوفة إلا ككائن، ولا يمكن استرداد قيمتها باستخدام التطبيق (0). يمكنك تحديد مصفوفة مؤقتة لتحقيق هذه الوظيفة. يحب:
<%
خافتة ()
صفيف=التطبيق("صفيف")
لأني = 0 إلى ubound (صفيف)
صفيف الاستجابة (i)
التالي ط
%>
لتعديل كائن التطبيق، يمكنك أيضًا تعريف مصفوفة مؤقتة، وتعيين كائن التطبيق للمصفوفة، ثم تعديل عناصر المصفوفة، وأخيرًا تعيين المصفوفة مرة أخرى إلى كائن التطبيق. يحب:
<%
خافتة ()
صفيف=التطبيق("صفيف")
صفيف (0) = "جيف"
صفيف (1) = "تشو"
قفل التطبيق
التطبيق("المصفوفة")=المصفوفة
فتح التطبيق
%>
كائن ObjectContext
يتم استخدام هذا الكائن للتحكم في معالجة المعاملات لصفحات الخادم النشطة. تتم إدارة معالجة المعاملات بواسطة Microsoft Transaction Server (MTS).
يتم تشغيلالحدث
ObjectContext.OnTransactionAbort
بواسطة حدث المعاملة المجهضة ويحدث بعد اكتمال معالجة البرنامج النصي.
يتم تشغيلObjectContext.OnTransactionCommit
بواسطة حدث معاملة ناجح ويحدث بعد اكتمال معالجة البرنامج النصي.
الأسلوب
ObjectContext.SetAbort
بشكل صريح إحباط المعاملة.
يتجاوزObjectContext.SetComplete
أي استدعاء سابق للأسلوب ObjectContext.SetAbort.
كائن الطلب
يتم استخدام كائن الطلب لقبول جميع المعلومات في جميع الطلبات المرسلة من المتصفح إلى الخادم الخاص بك.
Collection
Request.ClientCertificate(key[SubField])
مجموعة من المعلومات حول كافة شهادات العميل. بالنسبة للمفتاح، تحتوي المجموعة على الكلمات الأساسية التالية:
الموضوع
موضوع الشهادة. يحتوي على كافة المعلومات حول إيصالات الشهادة. يمكن استخدامها مع كافة لاحقات النطاق الفرعي.
المصدر
الجهة المصدرة للشهادة. يحتوي على كافة المعلومات حول التحقق من الشهادة. يمكن استخدامه مع كافة لاحقات النطاق الفرعي باستثناء CN.
فاديد فروم
تاريخ إصدار الشهادة. استخدم تنسيق VBScript.
صالح حتى
الشهادة لم تعد صالحة.
رقم سري
يحتوي على الرقم التسلسلي للشهادة.
شهادة
دفق ثنائي يحتوي على محتويات الشهادة بأكملها، باستخدام تنسيق ASN.1.
بالنسبة للحقل الفرعي، يمكن أن تحتوي الكلمات الرئيسية للموضوع والمصدر على لاحقة المجال الفرعي التالية: (على سبيل المثال: SubjectOU أو IssuerL)
C
بلد المنشأ.
يا
اسم الشركة أو المؤسسة.
الوحدة التنظيمية
الوحدة التنظيمية.
إن
الاسم العادي للمستخدم.
ل
جزئيا.
س
الولاية (أو المقاطعة).
ت
عنوان الشخص أو الشركة.
جي إن
الاسم المعطى.
أنا
أولي.
عندما يتم تضمين الملف cervbs.inc (المستخدم بواسطة VBScript) أو cerjavas.inc (المستخدم بواسطة Jscript) في صفحة الخادم النشطة الخاصة بك باستخدام التوجيه #INCLUDE، يمكن استخدام العلامتين التاليتين:
ceCertPresent
يشير إلى ما إذا كانت شهادة العميل موجودة أم لا، وقيمتها هي TRUE أو FALSE.
ceUnrecongnizedIssure
يشير إلى ما إذا كان مصدر الشهادة الأخيرة في القائمة غير معروف، وقيمتها هي TRUE أو FALSE.
Request.Cookies(Cookie[(key).Attribute])
مجموعة من ملفات تعريف الارتباط. السماح بالحصول على ملفات تعريف الارتباط للمتصفح. يشير ملف تعريف الارتباط إلى ملف تعريف الارتباط الذي سيتم إرجاعه. يتم استخدام المفتاح لإرجاع قيمة ملف تعريف الارتباط بكلمة رئيسية معينة من قاموس ملفات تعريف الارتباط. بالنسبة للسمة، يمكنك استخدام السمة HasKeys لتحديد ما إذا كان ملف تعريف الارتباط يحتوي على مفاتيح فرعية. قيمة HasKeys هي TRUE أو FALSE.
Request.Form(Parameter)[(Index).Count]
يملأ مجموعة كافة البيانات في نموذج HTML. المعلمة هي اسم العنصر في نموذج HTML. يتم استخدام الفهرس عندما تحتوي المعلمة على أكثر من قيمة واحدة (على سبيل المثال، عند استخدام سمة MULTIPLE في <SELECT>). عندما تحتوي المعلمة على قيم متعددة، يحدد Count عدد القيم المتعددة.
Request.QueryString(Varible)[(Index).Count]
مجموعة كافة قيم سلسلة الاستعلام. المتغير هو اسم المتغير في سلسلة الاستعلام. يتم استخدام الفهرس عندما يكون للمتغير أكثر من قيمة واحدة. عندما تحتوي المعلمة على قيم متعددة، يحدد Count عدد القيم.
Request.ServerVaribles (متغير بيئة الخادم)
مجموعة من متغيرات البيئة. يسمح بقراءة رؤوس HTTP. يمكنك قراءة أي معلومات رأسية باستخدام بادئة HTTP_. على سبيل المثال، يقبل HTTP_USER_AGENT رأس Client-Agent HTTP (نوع المتصفح). وبخلاف ذلك، يمكنك الحصول على أي معلومات عن البيئة باستخدام المتغيرات الموضحة في الجدول أدناه.
ALL_HTTP
جميع رؤوس HTTP التي يرسلها العميل ونتائجها مسبوقة بـ HTTP_.
ALL_RAW
جميع رؤوس HTTP التي يرسلها العميل لها نفس النتيجة عندما يرسلها العميل، بدون البادئة HTTP_
APPL_MD_PATH
مسار قاعدة تعريف التطبيق.
APPL_PHYSICAL_PATH
المسار الفعلي المطابق لمسار قاعدة تعريف التطبيق.
AUTH_PASSWORD
كلمة المرور التي أدخلها العميل في مربع حوار كلمة المرور عند استخدام وضع المصادقة الأساسي.
AUTH_TYPE
هذه هي طريقة المصادقة التي يستخدمها الخادم للتحقق من المستخدمين عند وصولهم إلى البرامج النصية المحمية.
AUTH_USER
اسم المستخدم للتحقق.
CERT_COOKIE
رقم معرف شهادة العميل الفريد.
CERT_FLAG
علامة شهادة العميل إذا كانت هناك شهادة عميل، فإن البت0 هو 0. إذا كان التحقق من شهادة العميل غير صالح، فسيتم تعيين البت 1 على 1.
CERT_ISSUER
حقل المُصدر في شهادة المستخدم.
CERT_KEYSIZE
عدد بتات الكلمة الأساسية لاتصال طبقة المقابس الآمنة، مثل 128.
CERT_SECRETKEYSIZE
عدد الأرقام الموجودة في المفتاح الخاص الذي يتحقق منه الخادم. مثل 1024
CERT_SERIALNUMBER
حقل الرقم التسلسلي لشهادة العميل.
CERT_SERVER_ISSUER
حقل مُصدر شهادة الخادم
CERT_SERVER_SUBJECT
حقل موضوع شهادة الخادم.
CERT_SUBJECT
حقل موضوع شهادة العميل.
CONTENT_LENGTH
طول المحتوى الذي يرسله العميل.
CONTENT_TYPE
محتوى النموذج الذي أرسله العميل أو نوع بيانات HTTP PUT.
بوابة_الواجهة
واجهة البوابة التي يستخدمها الخادم.
HTTPS
يتم إرجاعه إذا مر الطلب عبر قناة آمنة (SSL). إذا كان الطلب يأتي من قناة غير آمنة، قم بإرجاع OFF.
HTTPS_KEYSIZE
عدد بتات الكلمة الأساسية لاتصال طبقة المقابس الآمنة، مثل 128.
HTTPS_SECRETKEYSIZE
عدد الأرقام الموجودة في المفتاح الخاص الذي يتحقق منه الخادم. مثل 1024
HTTPS_SERVER_ISSUER
الحقل المُصدر لشهادة الخادم.
HTTPS_SERVER_SUBJECT
حقل موضوع شهادة الخادم.
INSTANCE_ID
رقم المعرف لمثيل IIS.
INSTANCE_META_PATH
مسار قاعدة التعريف لمثيل IIS الذي استجاب للطلب.
LOCAL_ADDR
إرجاع عنوان الخادم الذي قبل الطلب.
LOGON_USER
يقوم المستخدم بتسجيل الدخول إلى Windows NT باستخدام الحساب
PATH_INFO
معلومات المسار المقدمة من قبل العميل.
PATH_TRANSLATED
المسار الذي تم الحصول عليه عن طريق التعيين من الظاهري إلى المادي.
QUERY_STRING
محتوى سلسلة الاستعلام.
REMOTE_ADDR
عنوان IP للمضيف البعيد الذي يقوم بالطلب.
REMOTE_HOST
اسم المضيف البعيد الذي تم تقديم الطلب منه.
REQUEST_METHOD
طريقة تقديم الطلب . مثل GET وHEAD وPOST وما إلى ذلك.
SCRIPT_NAME
اسم البرنامج النصي الذي تم تنفيذه.
SERVER_NAME
اسم المضيف أو عنوان DNS أو عنوان IP الخاص بالخادم.
SERVER_PORT
رقم منفذ الخادم الذي يقبل الطلبات.
SERVER_PORT_SECURE
إذا كان منفذ الخادم الذي يقبل الطلب هو منفذ آمن، فهو 1، وإلا فهو 0.
SERVER_PROTOCOL
اسم وإصدار البروتوكول الذي يستخدمه الخادم.
SERVER_SOFTWARE
اسم وإصدار برنامج الخادم الذي يجيب على الطلبات ويقوم بتشغيل البوابة.
عنوان URL
قم بتوفير الجزء الأساسي من عنوان URL.
الأسلوب
Request.BinaryRead(Count)
المحتوى غير المعالج لنموذج HTML. عند استدعاء هذه الطريقة، يشير العدد إلى عدد البايتات التي سيتم تلقيها. بعد استدعاء هذه الطريقة، يشير العدد إلى عدد البايتات التي تم تلقيها بالفعل.
طلب
الخاصية
.TotalBytes طول نص الاستعلام بالبايت
كائن الاستجابة
يتم استخدام كائن الاستجابة لإرسال البيانات إلى متصفح العميل. يمكن للمستخدمين استخدام هذا الكائن لإرسال بيانات الخادم إلى متصفح العميل بتنسيق HTML أساس لتحقيق الديناميات. يتم عرض خصائصه وطرقه شائعة الاستخدام أدناه.
1. سمة المخزن المؤقت يتم استخدام هذه السمة لتحديد ما إذا كان يجب استخدام المخزن المؤقت عند إخراج الصفحة أم لا. القيمة الافتراضية هي خطأ. عندما يكون صحيحًا، لن يتم إخراج النتائج إلى المتصفح حتى يتم تنفيذ صفحة الخادم النشطة بالكامل. يحب:
<%Response.Buffer=True%>
<أتش تي أم أل>
<الرأس>
<title>مثال المخزن المؤقت</title>
</الرأس>
<الجسم>
<%
لأني = 1 إلى 500
استجابة.كتابة (أنا & "<br>")
التالي
%>
</الجسم>
</html>
عند تنفيذ هذه الصفحة، سيتم عرض جميع محتويات الصفحة الرئيسية بأكملها على المتصفح في نفس الوقت، وسيتم تخزين الصفحة الرئيسية في ذاكرة التخزين المؤقت حتى اكتمال تنفيذ البرنامج النصي.
2. سمة انتهاء الصلاحية يتم استخدام هذه السمة لتعيين طول الوقت (بالدقائق) الذي يقوم المتصفح بتخزين الصفحة فيه مؤقتًا، ويجب تحديثه من جانب الخادم. مع الإعدادات التالية:
<%Response.Expires=0%>
من خلال إضافة هذا السطر من التعليمات البرمجية إلى ملف ASP، يلزم كل طلب لتحديث الصفحة، لأن الصفحة ستنتهي بمجرد تلقي الاستجابة.
3. طريقة الكتابة تقوم هذه الطريقة بإرسال البيانات إلى متصفح العميل، مثل:
<%Response.write "مرحبًا بالعالم!"%>
4. طريقة إعادة التوجيه تسمح هذه الطريقة للمتصفح بالانتقال إلى عنوان URL آخر، وبهذه الطريقة، عندما يقوم العميل بتقديم طلب ويب، يتم تحديد نوع متصفح العميل ويتم نقل العميل إلى الصفحة المقابلة. يحب:
<أتش تي أم أل>
<الرأس>
<title>مثال لإعادة التوجيه</title>
</الرأس>
<الجسم>
<form aciton="formjump.asp"method="post">
<اختر اسم = "أين تذهب">
<option Selected value="fun">المرح</option>
<option value="news">الأخبار</option>
<option value="sample">نموذج</option>
</حدد>
<نوع الإدخال = إرسال الاسم = "القفز" القيمة = "القفز">
</النموذج>
</الجسم>
</html>
ما ورد أعلاه هو النموذج الذي تم إرساله، وما يلي هو الملف formjump.asp الذي يعالج النموذج:
<%response.buff=true%>
<أتش تي أم أل>
<الرأس>
<title>مثال لإعادة التوجيه</title>
</الرأس>
<الجسم>
<%
thisurl=" http://www.tinyu.com/ ";
حيث=Request.form("إلى أين تذهب")
حدد الحالة حيث
حالة "متعة"
Response.redirect هذا الرابط & "/fun/default.asp"
قضية "الأخبار"
Response.redirect هذا الرابط & "/news/default.asp"
حالة "عينة"
استجابة. إعادة توجيه عنوان URL هذا و"/sample/default.asp"
إنهاء التحديد
%>
</الجسم>
<أتش تي أم أل>
في هذا المثال، عندما يقوم المستخدم بإجراء تحديد، فإنه يضغط على الزر "انتقال" لإرسال النموذج. بعد تلقي التطبيق، يستدعي الخادم formjump.asp لتحديد عنوان URL المطابق وتحديد موقعه. ومع ذلك، هناك شيء واحد يجب ملاحظته هنا وهو أنه تمت كتابة رأس HTTP في متصفح العميل. ويجب إجراء أي تعديل على رأس HTTP قبل كتابة محتوى الصفحة، ويمكنك القيام بما يلي:
في بداية الملف بعد <@ Language=..> اكتب:
Response.Buffer = صحيح
قرر في النهاية:
الاستجابة. فلوش
التدفق هنا هو أسلوب استجابة، والذي يمكن استخدامه فقط عند تعيين خاصية Buffer على True، وإلا سيتم إنشاء خطأ في وضع التشغيل. يتم أيضًا استخدام طريقة Clear أخرى لمسح الصفحات المخزنة مؤقتًا، ويمكن استخدامها أيضًا عند تعيين خاصية Buffer على True.
5. طريقة النهاية يتم استخدام هذه الطريقة لإخبار Active Server بالتوقف عن معالجة ملفات ASP عند مواجهة هذه الطريقة. إذا تم تعيين خاصية Buffer لكائن الاستجابة على True، فستقوم طريقة End بإرسال محتويات ذاكرة التخزين المؤقت إلى العميل ومسح المخزن المؤقت. ولذلك، لإلغاء كافة المخرجات للعملاء، يمكنك أولاً مسح المخزن المؤقت ثم استخدام الأسلوب End. يحب:
<%
Response.buffer=صحيح
على خطأ استئناف المقبل
خطأ. واضح
إذا Err.number<>0 ثم
الاستجابة.واضحة
الاستجابة.النهاية
نهاية إذا
%>
كائن الخادم:
يوفر كائن الخادم الوصول إلى الأساليب والخصائص الموجودة على الخادم. تعمل معظم هذه الأساليب والخصائص كوظائف فائدة.
بناء الجملة
Server.property|
خاصية
الأسلوبScriptTimeout:
تحدد الخاصية ScriptTimeout الحد الأقصى للوقت الذي يمكن تشغيل البرنامج النصي فيه قبل الانتهاء. عند العمل مع مكونات الخادم، لن يصبح حد المهلة ساري المفعول.
Syntax Server.ScriptTimeout = NumSeconds
Parameter NumSeconds
يحدد الحد الأقصى لعدد الثواني التي يمكن تشغيل البرنامج النصي فيها قبل أن يتم إنهاؤه بواسطة الخادم. القيمة الافتراضية هي 90 ثانية.
ملاحظة يمكنك تعيين قيمة ScriptTimeout افتراضية لخدمة ويب أو خادم ويب باستخدام خاصية AspScriptTimeout في قاعدة التعريف. لا يمكن تعيين الخاصية ScriptTimeout أقل من القيمة المحددة في قاعدة التعريف. على سبيل المثال، إذا تم تعيين NumSeconds على 10 وكان إعداد قاعدة التعريف يحتوي على القيمة الافتراضية 90 ثانية، فستنتهي مهلة البرنامج النصي بعد 90 ثانية. ولكن إذا تم تعيين NumSeconds على 100، فستنتهي مهلة البرنامج النصي بعد 100 ثانية.
لمزيد من المعلومات حول استخدام قاعدة التعريف، راجع حول قاعدة التعريف.
مثال تنتهي مهلة المثال التالي إذا استغرق الخادم أكثر من 100 ثانية لمعالجة البرنامج النصي.
<% Server.ScriptTimeout = 100 %>
يحصل المثال التالي على القيمة الحالية لخاصية ScriptTimeout ويخزنها في المتغير TimeOut.
<% TimeOut = Server.ScriptTimeout %>
أسلوب
CreateObject
يقوم الأسلوب CreateObject بإنشاء مثيل لمكون الخادم. إذا قام المكون بتنفيذ طريقتي OnStartPage وOnEndPage، فسيتم استدعاء أسلوب OnStartPage في هذا الوقت. لمزيد من المعلومات حول مكونات الخادم، راجع مكونات ASP القابلة للتثبيت.
بناء الجملة Server.CreateObject( progID )
تحدد المعلمة progID نوع الكائن الذي سيتم إنشاؤه. تنسيق progID هو مكون [Vendor.] [.Version].
ملاحظة بشكل افتراضي، يكون للكائنات التي تم إنشاؤها بواسطة الأسلوب Server.CreateObject نطاق الصفحة. وهذا يعني أن الخادم سيقوم تلقائيًا بتدمير هذه الكائنات بعد معالجة صفحة ASP الحالية. لإنشاء جلسة أو كائن نطاق تطبيق، يمكنك استخدام العلامة <OBJECT> وتعيين سمة SCOPE للجلسة أو التطبيق، أو يمكنك تخزين الكائن في متغيرات الجلسة والتطبيق.
على سبيل المثال، في البرنامج النصي الموضح أدناه، عندما يتم إتلاف كائن الجلسة، أي عند انتهاء مهلة المحادثة أو استدعاء أسلوب التخلي، سيتم أيضًا إتلاف الكائنات المخزنة في متغيرات الجلسة.
<% تعيين الجلسة("ad") = Server.CreateObject("MSWC.AdRotator")%>
يمكنك تدمير كائن عن طريق تعيين المتغير على لا شيء أو قيمة جديدة، كما هو موضح أدناه. يقوم المثال الأول بإصدار كائن الإعلان، بينما يستبدل المثال الثاني الإعلان بسلسلة.
<% الجلسة ("إعلان") = لا شيء %>
<% جلسة ("إعلان") = "قيمة أخرى" %>
لا يمكن إنشاء مثيل كائن بنفس اسم الكائن المضمن. على سبيل المثال، سيعود البرنامج النصي التالي خطأ.
<% تعيين الاستجابة = Server.CreateObject("Response") %>
مثال <% Set MyAd = Server.CreateObject("MSWC.AdRotator") %>
يقوم المثال أعلاه بإنشاء مكون خادم MSWC.AdRotator المسمى MyAd. يمكن استخدام مكون MSWC.AdRotator لتدوير الإعلانات تلقائيًا على صفحات الويب.
لمزيد من المعلومات حول مكونات الخادم، راجع إنشاء مكونات لـ ASP.
HTMLEncode يطبق الأسلوب HTMLEncode ترميز HTML على السلسلة المحددة.
بناء الجملة Server.HTMLEncode(string)
تحدد سلسلة المعلمة السلسلة المراد ترميزها.
نموذج البرنامج النصي <%= Server.HTMLEncode("علامة الفقرة: <P>") %>
إخراج علامة الفقرة: <P>
لاحظ أنه سيتم عرض الإخراج أعلاه بواسطة متصفح الويب كعلامة الفقرة: <P>If تنظر إلى الملف المصدر أو تفتح صفحة ويب في الوضع النصي ويمكنك رؤية HTML المشفر.
MapPath
يقوم أسلوب MapPath بتعيين المسار النسبي أو الظاهري المحدد إلى الدليل الفعلي المقابل على الخادم.
قواعد اللغة
معلمة
Server.MapPath(المسار).
طريق
حدد مسارًا نسبيًا أو ظاهريًا للدليل الفعلي المراد تعيينه. إذا كان المسار يبدأ بشرطة مائلة للأمام (/) أو شرطة مائلة للخلف ()، فإن أسلوب MapPath يعامل المسار كمسار افتراضي كامل عند إرجاع المسار. إذا لم يبدأ المسار بشرطة مائلة، يقوم الأسلوب MapPath بإرجاع مسار نسبة إلى مسار موجود في ملف .asp.
تعليق
لا يدعم أسلوب MapPath بناء جملة المسار النسبي (.) أو (..). على سبيل المثال، المسار النسبي التالي ../MyDir/MyFile.txt يُرجع خطأ.
لا تتحقق طريقة MapPath مما إذا كان المسار الذي تم إرجاعه صحيحًا أو موجودًا على الخادم.
نظرًا لأن الأسلوب MapPath يقوم بتعيين المسارات فقط بغض النظر عما إذا كان الدليل المحدد موجودًا أم لا، يمكنك أولاً استخدام الأسلوب MapPath لتعيين المسار إلى بنية الدليل الفعلي ثم تمريره إلى المكون الذي يقوم بإنشاء الدليل أو الملف المحدد على الخادم.
مثال بالنسبة للمثال التالي، يوجد الملف data.txt والملف test.asp الذي يحتوي على البرنامج النصي التالي في الدليل C:InetpubWwwrootScript. يتم تعيين الدليل C:InetpubWwwroot كدليل رئيسي للخادم.
يستخدم المثال التالي متغير الخادم PATH_INFO لتعيين المسار الفعلي للملف الحالي. البرنامج النصي
<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
الإخراج
c:inetpubwwwrootscripttest.asp<BR>
نظرًا لأن معلمات المسار في الأمثلة التالية لا تبدأ بحرف مائل، فقد تم تعيينها نسبيًا إلى الدليل الحالي، في هذه الحالة C:InetpubWwwroot البرنامج النصي . البرنامج النصي
<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
الإخراج
c:inetpubwwwrootscriptdata.txt<BR>
c:inetpubwwwrootscriptscriptdata.txt<BR>
يستخدم المثالان التاليان حرف الشرطة المائلة لتحديد أنه يجب التعامل مع المسار الذي تم إرجاعه على أنه المسار الظاهري الكامل على الخادم. البرنامج النصي
<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("script")%><BR>
الإخراج
c:inetpubscriptdata.txt<BR>
c:inetpubscript<BR>
يوضح المثال التالي كيفية استخدام الشرطة المائلة للأمام (/) أو الشرطة المائلة العكسية () لإرجاع المسار الفعلي للدليل المضيف. البرنامج النصي
<%= server.mappath("/")%><BR>
<%= server.mappath("")%><BR>
الإخراج
ج:inetpubwwwroot<BR>
ج:inetpubwwwroot<BR>
URLEncode
يطبق الأسلوب URLEncode قواعد ترميز URL، بما في ذلك أحرف الهروب، على السلسلة المحددة.
قواعد اللغة
Server.URLEncode(سلسلة)
المعلمة
تحدد السلسلة السلسلة المراد تشفيرها.
نموذج البرنامج النصي <%Response.Write(Server.URLEncode(" http://www.tinyu.com ";)) %>
إخراج http%3A%2F%2Fwww%2Etinyu%2Ecom
كائن الجلسة
في الواقع إلى الفترة الزمنية منذ وصول الزائر إلى صفحة رئيسية معينة وحتى مغادرته. سيحصل كل زائر على جلسة منفصلة. في تطبيق الويب، عندما يصل المستخدم إلى التطبيق، يمكن للمستخدم استخدام متغيرات نوع الجلسة لمشاركة البيانات في جميع صفحات تطبيق الويب؛ إذا وصل مستخدم آخر أيضًا إلى تطبيق الويب في نفس الوقت، فسيكون لديه أيضًا متغيرات خاصة به متغيرات الجلسة، ولكن لا يمكن مشاركة المعلومات بين مستخدمين من خلال متغيرات الجلسة، بينما يمكن لتغييرات نوع التطبيق مشاركة المعلومات في جميع الصفحات بين عدة مستخدمين للموقع.
1. سمة معرف الجلسة تقوم هذه السمة بإرجاع المعرف الفريد للجلسة الحالية وتخصيص رقم مختلف لكل جلسة.
لقد واجهت ذات مرة مشكلة تحكم المستخدم أثناء عملية التطوير. الوظيفة التي تريد تحقيقها هي أنه بالنسبة لوحدة نمطية لموقع ويب معين، عندما يشاهد أحد الأعضاء هذه الوحدة بعد تسجيل الدخول، ويقوم شخص آخر بتسجيل الدخول بنفس اسم العضو، فلا يمكنه تصفح هذه الوحدة. بمعنى آخر، يمكن لشخص واحد فقط يحمل اسم عضو واحد تصفح هذه الوحدة في نفس الوقت. لقد قمت بتنفيذ عنصر التحكم باستخدام اسم العضو (من المفترض أن يكون معرف المستخدم، فريدًا) ومعرف الجلسة. عندما يقوم أحد الأعضاء بتسجيل الدخول، امنح العضو جلسة لتسجيل حالة تسجيل الدخول، مثل: Session("Status")="Logged"، واكتب Session.SessionID الخاص بالعضو في قاعدة البيانات. عندما يريد تصفح هذه الوحدة، فإنه يحدد أولاً ما إذا كان قد قام بتسجيل الدخول أم لا. وإذا كان قد قام بتسجيل الدخول بالفعل، فإنه يحدد ما إذا كان معرف الجلسة الخاص به هو نفسه المسجل في قاعدة البيانات أم لا، وإذا كان مختلفًا، فلن يتمكن من الوصول إليه. بهذه الطريقة، عندما يقوم مستخدم آخر بتسجيل الدخول بنفس اسم العضو، يتم تسجيل معرف الجلسة الجديد في قاعدة البيانات، ولا يمكن للمستخدم الأول اجتياز الاختبار عند الوصول إلى هذه الوحدة. يتيح ذلك لشخص واحد فقط له اسم عضو واحد تصفح وحدة نمطية معينة في نفس الوقت. هذه الوظيفة لها تأثير خاص على بعض المواقع المدفوعة، فهي تمنع مشكلة تصفح اسم عضو واحد من قبل عدة أشخاص وتحمي مصالح الشركة.
2. سمة TimeOut يتم استخدام هذه السمة لتحديد الحد الزمني لكائن جلسة المستخدم. إذا لم يقم المستخدم بتحديث صفحة الويب خلال الوقت المحدد، فسيتم إنهاء كائن الجلسة. الافتراضي العام هو 20 دقيقة.
3. طريقة التخلي هذه الطريقة هي الطريقة الوحيدة لكائن الجلسة، حيث يمكنها مسح كائن الجلسة وتستخدم للتخلص من كائن الجلسة الخاص بالمستخدم وتحرير الموارد التي يشغلها. على سبيل المثال: <% Session.Abandon %>
4. أحداث Session_OnStart وSession_OnEnd هي نفسها أحداث Application. يتم تشغيل حدث Session_OnStart في كل مرة يتم فيها تشغيل روتين الكائن، ثم يتم تشغيل معالجة حدث Session_Onstart. أي أنه عندما يتلقى الخادم طلب HTTP لعنوان URL في التطبيق، يتم تشغيل هذا الحدث ويتم إنشاء كائن الجلسة. بنفس الطريقة، يجب أيضًا تعيين هذا الحدث في الملف Global.asa.
عند استدعاء الأسلوب Session.Abandon أو عدم وجود تحديث خلال وقت TimeOut، سيؤدي ذلك إلى تشغيل الحدث Session_OnEnd ثم تنفيذ البرنامج النصي بالداخل. ترتبط متغيرات الجلسة بمستخدمين محددين، وتكون متغيرات الجلسة المخصصة لمستخدم معين مستقلة تمامًا عن متغيرات الجلسة للمستخدمين الآخرين ولن تؤثر على بعضها البعض.
تطبق الجلسة عمودًا:
مثل التطبيق، يمكن للمصفوفة المحددة كنوع جلسة التعامل مع المصفوفة بأكملها ككائن فقط، ولا يمكن للمستخدمين تغيير قيمة عنصر في مصفوفة الجلسة مباشرة. لإنشاء مصفوفة جلسة، عليك أولاً تعريف مصفوفة عادية، وتعيين قيمة أولية لكل عنصر فيها، وأخيرًا تعريفها كمصفوفة جلسة. يحب:
<%
ديماراي ()
المصفوفة=المصفوفة("李"،"明"،"男")
جلسة("معلومات")=صفيف
جلسة الاستجابة.كتابة("معلومات")(0) &"-"
جلسة الاستجابة.كتابة("معلومات")(1) &"-"
جلسة الاستجابة.كتابة("معلومات")(2) &"<br>"
%>
<ساعة>
<%
الصفيف (0) = "اليوم"
المصفوفة (1) = "يو"
المصفوفة (2) = "ذكر"
جلسة("معلومات")=صفيف
جلسة الاستجابة.كتابة ("معلومات") (0) و "-"
جلسة الاستجابة.كتابة ("معلومات") (1) و "-"
جلسة الاستجابة.كتابة("معلومات")(2) و"<br>"
%>