بخشی از مقاله
فروشگاه اينترنتي
كار كردن با آبجكتها :
يككلمه اسرارآميزمعروفدربرنامهنويسي object-oriented programin در اين قسمت در مورد عناوين زير توضيح خواهيم داد.
اشيا چه هستند ؟
اجزا تشكيل دهنده اشيا چيست ؟
عملياتي كه ميتوان بر روي اشيا انجام داد چگونه است ؟
اشيا پيش ساخته قابل دسترس asp چيست ؟
يك مجموعه چيست ؟
اشيا چه هستند ؟
در مورد ماشين خود فكر كنيد يك آبجكت يك تكه نرمافزار قابل استفاده مكرر ميباشد كه شامل اطلاعات و توابع وابستهاي باشد كه چيزهاي حقيقي را مهيا كنند.
چرا آبجكتها ميتوانند در صفحههايي كه مينويسيد مفيد باشند ؟
آبجكتها به افزايش سطح تجرد در صفحههايتان كمك مينمايند. به شما گفته ميشود كه به صورت تصادفي يك پرچم انتخابي را نمايش دهيد. ميتوانيد در ميان ليست پرچمها يكي را انتخاب كنيد به اين صورت كه تابع random كه اعداد تصادفي توليد ميكند را اجرا كرده و سپس كدي را براي <ImG SRC = …> بنويسيد.
ميتوانيد تمام اين كارها را هر زمان كه ميخواهيد يك پرچم را نمايش دهيد انجام دهيد. امّا سادهتر آن است كه تمام كارهايي را كه ميخواهيد انجام شود در داخل يك آبجكت كه يك پرچم را به صورت تصادفي نمايش ميدهد بنويسيد.
بعد از اين كار احتياج داريد به اينكه فقط چيزي مانند RANDOM BANER را بنويسيد پس از آن اگر بخواهيد به سيستم نمايش پرچم خود چيزي را اضافه يا تغييري دهيد فقط احتياج داريد كه يك تكه از كد را تغيير دهيد.
و حتّي بهتر آن است كه به دنبال آبجكتهايي بگرديد كه اشخاص ديگر آنها را نوشتهاند و شما نيز ميتوانيد در برنامة خود از آنها استفاده كنيد.
استفاده از توابع در سادهتر كردن و خواناتر كردن كدهايتان كمك ميكند و آبجكتها نيز كه در سطح بعدي قرار دارند همين مزايا را دارند.
ساختن بلاكهايي از آبجكتها :
آبجكتهاي برنامهنويسي از چيزهايي تشكيل شدهاند كه آبجكتها را توصيف ميكنند و چيزهايي كه آبجكتها با آنها ميتوانند كارهايي را انجام دهند. چيزهايي كه آبجكت را توصيف ميكنند PROPERTIES ناميده ميشوند.
خصوصيّات PROPERTIES :
خصوصيّات يك آبجكت را توصيف ميكنند.
اگر يك آبجكت داشتيد كه پرچمها را به صورت تصادفي نمايش ميدهد ممكن است كه خصوصيّاتي براي نمايش چيزهايي مثل URL يك كاربر وقتي كه پرچم در حال نمايش است را داشته باشيد كه ممكن است براي پرچمهاي مختلف تغيير كنيد همچنين ميتوانيد خصوصيّاتي براي نمايش طول و عرض تصوير داشته باشيد كه ممكن است براي تمامي پرچمها يكسان باشد.
در برنامهنويسي خصوصيّات همانند متغيرها كار ميكنند ميتوانيد به خصوصيّات يك آبجكت به روش زير دسترسي پيدا نماييد :
ObjectvariableName.property
پس اگر متغير از نوع آبجكت به نام objlesson با يك خصوصيّت به نام Name داشتيد ميتوانيد مقدار خصوصيّت Name را به روش زير تنظيم نماييد :
<%objlesson.Name = "joe" %>
و ميتوانيد مقدار خصوصيّت Name را به صورت زير چاپ كنيد :
< %Response.write(objlesson.Name) = %>
بعضي از خصوصيّات پنهان ميباشند. خيلي چيزهاي را كه در ساختن بيشتر آبجكتها به كار رفته است را نخواهيد دانست. برخي خصوصيّات ممكن است براي شما پنهان باشد اين مسئله اهميّتي ندارد از آنجا كه شما از مستندسازي استفاده ميكنيد احتياجي به ديدن همه چيزها نداريد.
متدها :
متد عبارت است كارهايي كه ميتوانيد با يك آبجكت انجام دهيد. متدهاي مرتبط با برنامهنويسي با آبجكتها نيز احتياج به اطلاعات دارند. توابع و سابروتينها اين اطلاعات را از طريق آرگومانها دريافت ميكنند. بنابراين متدها نيز همين كار را انجام ميدهند. متدها مانند توابع ممكن است صفر يك يا تعداد بيشتري آرگومان داشته باشند. متدها از مقادير دريافت شده خصوصيّات استفاده مينمايند همچنين متدها مقادير خصوصيّات را ميگويند. آنها اين كار را به وسيلة برگرداندن مقادير به همان صورت كه توابع مقادير را برگشت ميدهند انجام ميدهند. متدها ميتوانند به صورت زير مورد دسترسي قرار گيرند :
objectvariableName.method
بيشتر متدها رفتاري دارند شبيه به توابع و سابروتينها. اگر يك متد به نام GO را در آبجكتي به نام objlesson فراخواني نماييد و آن يك مقدار را برگرداند ميتوانيد مقدار را در يك متغير مانند زير ذخيره نماييد :
Myvariable = objlesson .GO
يا مقدار مزبور را بر روي مرورگرتان به صورت زير نمايش دهيد.
Response.write(objlesson.GO)
اگر متد ديگري به نام compute كه يك سري آرگونهاي عددي را ميگيرد ميتوانيد نتيجه به دست آمده را بر روي صفحه به صورت زير بنويسيد :
Response.write (objlesson.compute(4.5))
يا
Response.write (objlesson.compute(sngmyNumber))
پس همان طوري كه مشاهده ميكنيد فرق زيادي بين يك متد آبجكت و يك تابع وجود ندارد مانند خصوصيّات متدها نيز ممكن است مخفي باشند.
آبجكتهاي پيش ساخته ASP :
• آبجكت Response :
Response براي فرستادن مقدار به خروجي مورد استفاده قرار ميگيرد. متد write خروجي را به مرورگر كاربران وب ارسال مينمايد. آبجكت Response همچنين ميتواند كنترل كند كه چه طور و كي اطلاعات فرستاده شوند و كوكيها به عنوان اطلاعات ذخيرهاي نوشته شوند.
• آبجكت Resquest :
اين آبجكت براي گرفتن اطلاعات از client مورد استفاده قرار ميگيرد وقتي كه مرورگر وب سرويس گيرنده تقاضاي يك صفحه ويژه را مينمايد اين آبجكت حجمي از اطلاعات را براي سرويس دهنده ارسال ميكند.
اين اطلاعات در داخل آبجكت Request بستهبندي ميشوند. مقداري از اين دادهها براي صفحه درخواست شده مفيد ميباشند و بقيه ممكن است مفيد نباشند آبجكت Request به صفحات اجازه ميدهد كه اطلاعات مورد نياز خود را دريافت نمايند.
• آبجكت Aplication :
آبجكت Application به منظور اشتراك اطلاعات بين چندين سرويس گيرنده كه از يك صفحه بازديد مينمايند مورد استفاده قرار ميگيرد. در ASP واژه Application به همة صفحات با پسوند asp اشاره دارد كه در يك دايركتوري قرار دارند و آنها زير دايركتوري آن دايركتوري ميباشند. تنها يك نمونه از آبجكت Application در هر Application ايجاد ميشود.
اين آبجكت بين همه سرويس گيرندههايي كه به Application دسترسي پيدا ميكنند به اشتراك گذارده ميشود.
• آبجكت Session :
يك session به دسترسي يك سرويس گيرنده به يك Application اشاره دارد. بنابراين يك نمونة جديد از آبجكت session براي هر session ايجاد ميگردد. Session براي حمل اطلاعات مفيد ميباشد و مثل يك سرويس گيرنده بين صفحات حركت ميكند. زيرا متغيرهاي آبجكت session براي تمام session ثابت باقي ميماند. يك صفحه ميتواند دادهها را در داخل مغير session ذخيره نمايد و آن داده ميتواند به وسيلة صفحات ديگر مورد دسترسي قرار بگيرند.
• آبجكت Server :
آبجكت Server چندين خصوصيّت پايه و متد را فراهم ميكند. احتمالاً مهمترين آنها متد createobject ميباشد. متد createobject براي ايجاد يك نمونه از اجزا server به كار ميرود. كامپوننتها بستههاي وابسته آبجكتها ميباشند كه شما ميتوانيد صفحههايتان از آنها استفاده نماييد. آنها كارهاي عادي ASP را سادهتر ميكنند و قدرت زيادي به صفحهها ميدهند. createobject در ارتباط با مجموعه عباراتي مثل زير مورد استفاده قرار ميگيرد :
< % set objInstance = Server.createobject("class.component")%>
خصوصيّت scriptTimeout ميتواند براي تعيين طول زماني كه اسكريپت قبل از ايجاد يك خطا اجازه اجرا شدن را دارد مورد استفاده قرار گيرد.
< % server.scriptTimeout = 90 % >
اين خصوصيّت معيّن ميكند كه اگر اسكريپت بعد از 90 ثانيه هنوز در حال اجرا شدن ميباشد بايد بسته شده و يك پيغام خطا ايجاد گردد.
HTMLEncode و URLEncode دو متدي ميباشند كه عمل كد كردن را به يك رشته انجام ميدهند.
HTMLEncode در طول رشته حركت ميكند و به جاي كاراكتر "<" كاراكتر "≪" و به جاي كاراكتر ">" كاراكتر "&g&;" را جايگزين مينمايد.
اين عمل سبب ميشود كه مرورگر وب به جاي اين كه tagهاي HTML را مورد تفسير قرار دهد آنها را كلمه به كلمه به صورت متن نمايش دهد. براي مثال :
< % server.HTMLEncode ("< P align = right >") % >
رشتة زير را برميگرداند.
"&1 t; P align = right & gt;"
كه مرورگر وب به جاي نمايش tag مربوط به < P align = right > عبارت مزبور را نمايش ميدهد. اين كار وقتي مفيد است كه شما بخواهيد سورس كد HTML مربوط به صفحة خود را مشاهده نماييد.
متد URLEncode عمل كد كردن را بر روي URL صورت ميدهد. اغلب شما قصد داريد كه يك مقدار داده را به صفحات ديگري از همان بخش از URL مورد استفادة كنوني عبور دهيد. اين عمل از طريق query string صورت ميگيرد.
كاراكترهاي ويژه ampersand (&) مانند معناي مخصوصي را در query string دارند و اگر از آنها در داخل اطلاعاتتان استفاده كنيد ايجاد اشكال مينمايد. با استفاده از متد URLEncode ميتوانيد دادههاي مورد نظر را كدگذاري كنيد تا دادهها به سلامت به عنوان بخشي از query string به جاهاي ديگر عبور داده شوند.
متد Mappath يك مسير مجازي را تبديل به يك مسير فيزيكي مينمايد بنابراين اگر اسكريپ در مسير :
C:\mypage\www\,server.Mappath("scripts\test.asp")
ميباشد مقدار برگشتي به صورت :
C:/mypage\www\scripts\test.asp
خواهد بود. آبجكتهاي متنوّعي مانند Filesystemobject ممكن است مسيرهاي مجازي نياز به مسيرهاي فيزيكي داشته باشند.
• آبجكت Objectcontext :
آبجكت objectcontext به منظور اتصال ASP و Microsoft transaction مورد استفاده قرار ميگيرد.
MTS به منظور ساختن سايتهاي وب اندازهپذير مورد استفاده قرار ميگيرد و كارايي ديگر اجزا را بالا ميبرد اين آبجكت يكي از ابزار پيشرفته ميباشد.
• آبجكت AspError :
آبجكت يك ويژگي جديد در ميباشد. اين آبجكت به شما اجازه ميدهد تا در مورد خطاهاي اسكريپت ايجاد شده در صفحههايتان اطلاعاتي را به دست آوريد.
طريقة استفاده از آبجكت Response :
آبجكت Response چيست ؟
آبجكت Response يكي از شش آبجكت پيش ساخته در ASP ميباشد. آبجكت Response به منظور ارسال خروجي به سرويس گيرنده مورد استفاده قرار ميگيرد. اين خروجي ممكن است متني نمايشي در پنجره مرورگر يا اينكه چگونگي فرستاده شدن صفحات به سرويس گيرنده و ذخيره شدن آن باشد.
تشريح آبجكت Response :
آبجكت Response به شما اجاه ميدهد كه اطلاعاتتان به مرورگر ارسال شده و چگونگي ارسال اطلاعات به مرورگر را كنترل مينمايد. اين آبجكت داراي چندين متد و خصوصيّت است.
ارسال HTML به مرورگر :
بيشترين كاربرد آبجكت Response ارسال داده به مرورگر وب سرويس گيرنده براي نمايش به عنوان بخشي از يك صفحة وب ميباشد.
اين آبجكت به دو روش اين كار را انجام ميدهد. اوّلين روش استفاده از متد write ميباشد. روش ديگر استفاده از ميانبر < % = … % > است.
Response.Write
بدون اين آبجكت ASP بدون استفاده ميباشد. اگر چه ما هميشه از پرانتزها با Response.write استفاده كردهايم امّا آنها در اصل اختياري ميباشند : عبارات Response.write (expression) و Response.write expression معادل هم ميباشند.
يكي از ويژگيهاي مهم استفاده از Response.write اين است كه رشتهاي كه در مقابل اين آبجكت نوشته ميشود نميتواند شامل " % > " باشد. اگر ميخواهيد رشتهاي كه شامل " % > " ميباشد را استفاده نماييد از " % \ > " استفاده كنيد از آن جايي كه از علامت % > براي نشان دادن پايان يك لاك از كد ASP استفاده ميكنيد گذاردن آن در داخل رشته باعث سردرگمي سيستم ميشود.
Response.write (" <HR WIDTH = 50% >" )
ايجاد خطا ميكند زيرا سرويس دهنده علامت " % > " را به عنوان بسته شدن بلاكي از كد ASPفرض ميكند.
Response.write (" <HR WIDTH = 50% \ > ")
عبارت :
" <HR WIDTH = 50% > "
را به كد HTML مينويسد.
فرمها چيستند ؟
وقتي كه شما يك صفحة وب را بازديد ميكنيد مرورگرتان بر روي client يك درخواست را براي سرويس دهنده وب براي درخواست يك صفحه وب به خصوص ارسال ميكند.
سرويس دهنده وب در جواب سند درخواست شده را براي سرويس گيرنده ارسال مينمايد. وقتي درخواست مربوط به يك صفحه ASP ميباشد سرويس دهندة وب ابتدا كدهاي موجود در صفحة ASP را قبل از ارسال صفحة وب به سرويس گيرندة مورد پردازش قرار ميدهد. حال اگر ما بخواهيم كه صفحة ASP ما بر پاية ورودي كاربر تصميمگيري نمايد نياز به استفاده از فرمها را داريم.
يك فرم دو وظيفه دارد: جمعآوري اطلاعات از كاربر و فرستادن آن اطلاعات به يك صفحة وب ديگر براي انجام عمل پردازش بر روي آنها.
بنابراين با استفاده از فرم يك صفحه ASP ميتواند وروديهاي كاربر را دريافت نمايد و تصميمهاي برنامهريزي شدهاي را بر روي آن وروديها اعمال نمايد.
فرمها يك مكانيزم عبور اطلاعات از يك صفحة وب به صفحة ديگر را فراهم نمايند. فرمها همچنين به كاربران اجازة وارد كردن جزئيات اطلاعات را با استفاده از متغيرهاي ورودي ميدهند.
ايجاد فرمها :
ايجاد يك فرم كاري ساده و راحت ميباشد. اين كار تنها نياز به دو خط از كد HTML دارد.
1 : <FROM METHOD = POST ACTION = "somepage .asp">
2 : </FROM >
• تگ METHOD :
تگ METHOD ميتواند به GET يا POST تنظيم گردد.
• تگ ACTION :
تگ ACTION تعيين ميكند كه قوتي فرم پر شد چه صفحهاي فراخواني شود. معمولاً در اين حالت يك صفحه فراخواني ميشود كه اطلاعات ورودي كاربر را پردازش مينمايد.
يك فرم وقتي SUBMIT شده است كه كاربر آن را به وسيلة خاتمه دادن به ورود اطلاعات به وسيلة كليد كردن بر روي دكمه تأييد نمايد. اگر تنها يك فيلد ورودي در داخل فرم موجود باشد همانند Text box كاربر ميتواند به سادگي با فشردن كليد Enter فرم را SUBMIT نمايد.
عمل Submit فرمها :
با استفاده از يك مرورگر وب استاندارد كاربر ميتواند در داخل صفحه وب كه ئاراي يك فرم ميباشد با وارد كردن اطلاعات به گشت و گذار بپردازد. وقتي كاربر اين كار را انجام ميدهد اطلاعاتي كه او در حال تايپ كردن ميباشد هنوز براي سرويس دهندة وب ارسال نشده است.
اين اطلاعات براي سرويس دهنده وب تا زماني كه كاربر به وسيلة كليك كردن بر روي دكمة submit فرم اطلاعات را تاييد ننمايد قابل دسترسي نميباشد. كارمان وقتي جالب ميشود كه قادر باشيم تا از روي اين اطلاعات ارسال شده به يك صفحة ASP تعيين نماييم كه كدام كاربر اطلاعات را داخل فرم وارد كرده و سپس بر روش اطلاعات پردازش را انجام دهيم. تگ <FROM> داراي دو خصوصيّت ميباشد كه به شما اجازه ميدهد تا بر روي اطلاعات فرستاده شده به خصوصيّت ACTION و خصوصيّت METHOD.
استفاده از خصوصيّت ACTION :
با خصوصيّت ACTION يك فرم ميتوان هر URL معتبري را تنظيم نمود. وقتي كاربر فرم را submit مينمايد URL تعيين شده در خصوصيّت ACTION فراخواني ميگردد و مقادير موجود در فيلدهاي فرم به آن URL ارسال ميگردند.
نكته : اجباري در اين كه خصوصيّت ACTION به يك صفحة ASP تنظيم شود وجود ندارد خصوصيّت ACTION ميتواند به هر نام صفحة وبي روي سرويس دهندة وب يا به يك اسكريپت بر روي سرويس دهندة ديگر تنظيم شود يا به صورت كامل حذف شود.
توجّه نماييد كه اگر شما خصوصيّت ACTION را براي يك فرم تعيين
نكنيد وقـتي يـك فـرم را submit ميكند صفحة فعلي دوباره بارگذاري
ميشود.