شروع کار باASP
یک فایل ASP مى تواند حاوى متون، Tagهاى HTML و اسکریپت ها باشد.
اسکریپت ها در یک فایل ASP بر روى سرور اجرا مى شوند.
به عنوان پیش نیاز چه چیزى را باید بدانید؟
قبل از شروع، باید با مسائل زیر را تا حدودى آشنا باشید
WWW و HTML و مسائل اولیه ساخت صفحات Web
یک زبان اسکریپت نویسى همچون JavaScript یا VBScript
ASP چیست؟
• ASP حروف اختصارى Active Server Pages است.
• ASP برنامه اى است که درون IIS اجرا مى شود.
• IIS حروف اختصارى Internet Information Services است.
• IIS به عنوان یک مولفه رایگان با ویندوز 2000 عرضه مى شود.
• IIS همچنین به عنوان جزئى از Windows NT 4.0 Option Pack است.
• Option Pack مى تواند از سایت مایکروسافت دانلود شود.
• PWS نسخه کوچکتر- ولى کاملا عمل کننده - از IIS است.
• PWS را مى توانید در سى دى ویندوز 95 یا 98 خود پیدا کنید.
سازگارىASP
• ASP تکنولوژى مایکروسافت است.
• براى اجراى IIS باید ویندوز NT نسخه 4.0 یا بالاتر را داشته باشید.
• براى اجراى PWS باید ویندوز 95 یا بالاتر را داشته باشید.
• ChiliASP تکنولوژى است که ASP را بدون نیاز سیستم عامل ویندوز اجرا مى کند.
• InstantASP تکنولوژى دیگرى است که ASP را بدون نیاز به سیستم عامل ویندوز اجرا مى کند.
یک فایل ASP چیست؟
• یک فایل ASP تقریبا شبیه به یک فایل HTML است.
• یک فایل ASP مى تواند حاوى متن، XML ،HTML و اسکریپت باشد.
• اسکریپت هاى درون یک فایل ASP بر روى Server اجرا مى شود.
• یک فایل ASP پسوند asp.
دارد.
فرق ASP با HTML چیست؟
• وقتى که Browser)کاوشگر اینترنت) درخواست یک فایل HTML را بکند،Server آن فایل را بر مى گرداند.
• وقتى که Browser درخواست یک فایل ASP را بکند، IIS درخواست مربوطه را به موتور هستهاى که وظیفه اصلى را بازى مى کند ASP ارجاع مى دهد.
موتور ASP فایل ASP را خط به خط مى خواند، و اسکریپت هاى درون فایل را اجرا مى کند.
در نهایت فایل ASP به عنوان یک فایل HTML ساده به Browser برگردانده مى شود.
ASP چه کارى مى تواند براى شما انجام دهد؟
• به طور دینامیکى محتویات یک Web page را ویرایش یا اضافه کند.
• به درخواست هاى کاربر که از فرم هاى HTML ارسال شده اند پاسخ دهد.
• به هر گونه اطلاعات با بانک اطلاعاتى دسترسى پیدا کرده و نتایج را به Browser برگرداند.
• سفارشى نمودن (Customize) یک Web page تا براى کاربران مختلف مفیدتر باشد.
• مزایاى استفاده از ASP به جاى CGI و Perl سرعت و سادگى است.
• فراهم کردن امنیت بیشتر به گونه اى که کد ASP شما از طریق Browser قابل مشاهده نیست.
• از آن جایى که فایلهاى ASP به شکل HTML برگردانده مى شوند، میتوانند بوسیله هر Browserى مشاهده گردند.
• برنامه نویسى درست ASP مى تواند ترافیک شبکه را به حداقل برساند.
راه اندازی ASP
شما می توانید ASP را بدون نیاز به یک سرور خارجی اجرا کنید.
برای انجام این کار شما باید Microsoft's Personal Web Server (PWS) یا Internet Information Server (IIS) را در رایانه خود نصب کنید.
چگونه ASP را در رایانه خود اجرا کنید؟
شما می توانید ASP را بدون سرور خارجی در رایانه شخصی خود اجرا کنید.
برای انجام این کار باید Microsoft's Personal Web Server (PWS) یا Internet Information Server (IIS) را در رایانه خود
نصب کنید.
اگر در مورد اجرای ASP جدی هستید، باید حداقل ویندوز 98، نسخه دوم (Second Edition) داشته باشید.
اگر در مورد اجرای ASP بسیار جدی هستید، باید از ویندوز 2000 استفاده کنید.
چگونه PWS را در ویندوز 95 نصب کنید و ASP اجرا کنید؟
Personal Web Server (PWS) همراه ویندوز 95 نیست!!
برای اجرای ASP بر روی ویندوز95، شما باید Windows NT 4.0 Option Pack را از مایکروسافت دانلود کنید.
(دانلود Windows NT 4.0 Option Pack)
چگونه PWS را در ویندوز NT نصب کنید و ASP اجرا کنید؟
Personal Web Server (PWS) همراه ویندوز NT نیست!!
برای اجرای ASP بر روی ویندوز95، شما بایدWindows NT 4.0 Option Pack را از مایکروسافت دانلود کنید.
(دانلود Windows NT 4.0 Option Pack)
چگونه PWS را در ویندوز 98 نصب کنید و ASP اجرا کنید؟
1.
شاخه Add-ons را در سی دی ویندوز 98 خود باز کنید، شاخه PWS را پیدا کرده و فایل setup.exe را اجرا کنید.
2.
یک شاخهInetpub در هارد شما ایجاد خواهد شد.
آن را باز کنید و شاخهwwwroot را پیدا کنید.
3.
یک شاخه جدید درست کنید و نام آن را چیزی شبیه به MyWeb بگذارید.
4.
از یک ویرایشگر متن استفاده کنید و کدهای ASPی را بنویسید، فایل را به نام test1.asp را در شاخه MyWeb ضبط کنید.
5.
مطمئن شوید که وب سرور شما در حال اجرا است - برنامه نصب یک آیکن جدید در
Task Bar شما اضافه کرده است (این نشانه PWS است).
بر روی آن کلیک کنید و دکمه Start را در پنجره ای که آمده بزنید.
6.
Browser خود را باز کنید و تایپ کنید http://localhost/MyWeb/test1.asp، تا اولین صفحه ASP خود را ببینید.
6.
Browser خود را باز کنید و تایپ کنید "http://localhost/MyWeb/test1.asp"، تا اولین صفحه ASP خود را ببینید.
چگونه PWS را در ویندوز Me نصب کنید و ASP اجرا کنید؟
Personal Web Server (PWS) در ویندوز Me وجود ندارد !!
مقاله مربوطه را در سایت مایکروسافت بخوانید.
چگونه IIS را در ویندوز 2000 نصب کنید و ASP اجرا کنید؟
1.
از دکمه Start به Settings و سپس Control Panel بروید.
2.
در پنجره Control Panel آیکن Add/Remove Programs را انتخاب کنید.
3.
در پنجره Add/Remove Programs گزینه Add/Removes Windows Components را انتخاب کنید.
4.
در پنجره جدید گزینه Internet Information Services را انتخاب کرده،OK را بزنید.
5.
آن را باز کنید و شاخه wwwroot را پیدا کنید.
6.
یک شاخه جدید درست کنید و نام آن را چیزی شبیه به "MyWeb" بگذارید.
7.
از یک ویرایشگر متن استفاده کنید و کدهای ASPی را بنویسید، فایل را به نام "test1.asp" را در شاخه "MyWeb" ضبط کنید.
8.
مطمئن شوید که وب سرور شما اجرا است - برنامه نصب یک آیکن جدید در Task Bar شما اضافه کرده است (این نشانه IIS است) بر روی آن کلیک کنید و دکمه Start را در پنجره ای که آمده بزنید.
9.
چگونه IIS را در ویندوز XP نصب کنید و ASP اجرا کنید؟
نکته : شما نمی توانید ASP را روی ویندوز XP نسخه خانگی (Home Edition) اجرا کنید.
در پنجره جدید گزینه Internet Information Services را انتخاب کرده، OK را بزنید.
یک شاخه Inetpub در هارد شما ایجاد خواهد شد.
آبجکت Response در ASP شما نمی توانید سورس کدهای ASP را بوسیله انتخاب گزینه View Source در Browser مشاهده کنید، شما فقط خروجی فایل ASP را مشاهده مىکنید که HTML ساده است.
زیرا که اسکریپت ها قبل از این که نتایج به Browser فرستاده شود بر روی سرور اجرا مىگردد.
قواعد اساسی نحو یک فایل ASP به طور عادی دقیقا همانند HTML حاوی Tagهای HTML است.
اگر چه، یک فایل ASP می تواند همچنین حاوی Scriptها نیز باشد.
این اسکریپت ها به وسیله علامت های %> و آبجکت Response متد Write مربوط به آبجکت Response برای فرستادن محتویات به Browser استفاده می شود به عنوان مثال، دستورات زیر برای فرستادن متن "سلام دنیا!" به Browser استفاده مىشود.
VBScript این امکان وجود دارد که از که از زبان های مختلف اسکریپت نویسی در فایلهای ASP استفاده کنید.
اگرچه زبان پیش فرض، VBScript است.
مثال بالا "سلام دنیا!" را در قسمت body متن می نویسد.
JavaScript برای این که JavaScript را به عنوان زبان پیش فرض برای یک صفحه خاص مشخص کنید می بایست از راهنماهای زبانی در ابتدای صفحه خود استفاده کنید: نکته:JavaScript برعکس VBScript به بزرگ یا کوچک بودن حروف حساس است.
شما مجبور خواهید بود که وقتی زبان احتیاج دارد، کد ASP خود را با حروف بزرگ یا کوچک بنویسید.
سایر زبان های اسکریپ نویسی ASP همراه با VBScript و JScript (پیاده سازی مایکروسافت از JavaScript) عرضه می شود.
اگر شما می خواهید که با زبان دیگری همچون PERL - REXX یا Phyton کد بنویسید، مجبور خواهید بود که موتور Script مربوط به آنها را نصب کنید.
مهم: به خاطر این که اسکریپت ها بر روی سرور اجرا می شوند، به هیچ وجه لازم نیست Browserی که فایل ASP را نشان می دهد از Scripting پشتیبانی کند!
طرز ساخت کوکی ها Cookie اغلب براى شناسائى کاربر استفاده مىشود.
مثالها : Cookie خوشآمدگویى چگونه یک Cookie خوشآمدگویى درست کنیم.
یک Cookie چیست؟
یک Cookie اغلب براى شناساندن کاربر استفاده مىشود.
یک Cookie یک فایل کوچک است که سرور آن را در کامپیوتر کاربر جاسازى مىکند.
هر بار که همان کامپیوتر یک صفحه را درخواست مىکند، Cookie نیز فرستاده مىشود.
با ASP شما مىتوانید هم مقادیر Cookie را بسازید و هم آنها را استخراج نمایید.
چگونه یک Cookie بسازید؟
Response.Cookie براى ساختن Cookie استفاده مىشود.
توجه: Response.Cookie باید قبل از تگ درج شود.
در مثال زیر، ما یک Cookie درست خواهید کردم و اسم آن را "firstname" مىگذاریم و مقدار "Alex" را به آن مىدهیم: همچنین امکان دارد که خصوصیاتى را مثل تاریخ انقضاى cookie را به آن بدهید.
چگونه مقدار cookieها را استخراج کنیم؟
دستور "Request.Cookies" براى استخراج اطلاعات از cookieها استفاده مىشود.
در مثال زیر، ما مقدار cookieى با نام "firstname" را استخراج کرده و در صفحه نشان دادیم: خروجى: Firstname=Alex یک Cookie با کلید اگر یک cookie حاوى مجموعهاى از مقادیر باشد، مىگوییم آن cookie دارى کلیدهایى است.
در مثال زیر، ما یک مجموعه cookie با نام "user" درست مىکنیم.
cookie به نام "user" داراى کلیدهایى است که حاوى اطلاعاتى راجع به کاربر است.
Response.Cookies("user")("firstname")="John" Response.Cookies("user")("lastname")="Smith" Response.Cookies("user")("country")="" Response.Cookies("user")("age")="25" %> خواندن همه Cookieها به کد زیر نگاه کنید: Response.Cookies("firstname")="Alex" Response.Cookies("user")("firstname")="John" Response.Cookies("user")("lastname")="Smith" Response.Cookies("user")("country")="" Response.Cookies("user")("age")="25" %> فرض کنیم که سرور شما همه cookieهاى بالا را به کاربر فرستاده است.
حالا ما مىخواهیم تمام cookieها را که به کاربر فرستاده شده است را بخوانیم.
مثال زیر نشان مىدهد که چگونه این کار را انجام دهیم (توجه داشته باشید که در مثال پایین با استفاده از HasKeys چک مىکند که آیا cookie کلید دارد یا نه؟
dim x,y for each x in Request.Cookies response.write("") if Request.Cookies(x).HasKeys then (for each y in Request.Cookies(x (response.write(x & ":" & y & "=" & Request.Cookies(x)(y)) response.write("") next else Response.Write(x) & "=" & Request.Cookies(x) & "") end if response.write "" next %> خروجى: firstname=Alex user:firstname=John user:lastname=Smith user: country= user: age=25 اگر Browser داراى پشتیبانى Cookie نباشد چه اتفاقی مىافتد؟
اگر برنامه شما با Browserى سر و کار داشته باشد که cookie را پشتیبانى نمىکند، باید از روشهاى دیگرى براى انتقال اطلاعات از یک صفحه به صفحات دیگر در برنامه خود استفاده کنید دو راه براى انجام این کار هست: 1- اضافه کردن پارامترها به URL شما مىتوانید پارامترها را به URL اضافه کنید: Go to Welcome Page و مقادیر موجود در "welcome.asp" را همچون مثال زیر استخراج کنید: 2- استفاده از form شما مىتوانید از فرمها استفاده کنید.
وقتى که کاربر روى دکمه Submit کلیک کند فرم ورودىهاى کاربر را به "welcome.asp" رد مىکند: First Name: Last Name: مقادیر موجود در "welcome.asp" را همچون این مثال استخراج کنید: fname=Request.form("fname") lname=Request.form("lname") response.write("Hello " & fname & " " & lname & "!") response.write ("Welcome to my Web site!") %> فرم ها در ASP مثالها : یک فرم با متد "get" چگونه با استفاده از دستور Request.QueryString به کاربر عکسالعمل نشان دهید.
یک فرم با متد "post" چگونه با استفاده از دستور Request.Form به کاربر عکسالعمل نشان دهید.
یک فرم با Radio Buttonها چگونه با استفاده از دستور Request.Form و از طریق Radio Buttonها به کاربر عکسالعمل نشان دهید.
ورودى کاربر آبجکت Request مىتواند براى گرفتن اطلاعات از کاربر از فرمها استفاده گردد.
First Name: Last Name: ورودىهاى کاربر مىتوانند از دو طریق استفاده گردد: با Request.QueryString یا Request.Form Request.QueryString دستورRequest.QueryString براى جمع کردن مقادیر موجود در یک فرم با متد "get" استفاده میشود.
اطلاعات فرستاده شده از فرمى با متد "get" برای هر کسى قابل مشاهده است(این اطلاعات در قسمت آدرس Browser نشان داده می شود)و در مورد مقدار اطلاعات محدودیت دارد.
اگر کاربر در فرمى با متد "get" مقدار "Bill" و "Gates" را وارد کنید، URLى که به سرور فرستاده مىشود شبیه به این خواهد بود: http://www.irandevelopers.com/simpleform.asp?fname=Bill&lname=Gates فرض کنید فایل "simpleform.asp" حاوى اسکریپت زیر است: Welcome response.write(request.querystring("fname")) response.write(" " & request.querystring("lname")) %> Browser خط زیر در قسمت Body سند نشان خواهد داد: Welcome Bill Gates Request.Form دستور Request.Form برای جمع کردن اطلاعات از یک فرم با متد "post" استفاده مىشود اطلاعات فرستاده شده از فرمى با متد POST برای بقیه غیرقابل مشاهده است و هیچ محدودیتى در مقدار اطلاعات فرستاده شده ندارد.
اگر کاربر در فرمى با متد "post" کلمه "Bill" و "Gates" را تایپ کند، URLى که به سرور فرستاده مىشود شبیه به این خواهد بود: http://www.w3schools.com/simpleform.asp فرض کنید که فایل "simpleform.asp" حاوى اسکریپت زیر باشد: Welcome response.write(request.form("fname")) response.write(" " & request.form("lname")) %> Browser خط زیر در قسمت Body سند نشان خواهد داد: Welcome Bill Gates تصدیق فرم یا تست معتبر بودن (درست بودن) مقادیر ورودى ورودى کاربر باید در Browser در هر جایى که امکان داشت (با استفاده از اسکریپتهاى client) تصدیق گردد.
تصدیق Browserى سریعتر است و زمان load شدن سرور را نیز کاهش مىدهد در صورتى که مقادیر ورودى کاربر وارد Database مىشود لازم است که معتبرسازى یا تصدیق ورودىهاى کاربر بر روى سرور انجام شود.
یک راه خوب براى تصدیق ورودىهاى کاربر، به جاى فرستادن اطلاعات به یک صفحه دیگر، پست کردن آنها به خود فایل است.
در آن صورت کاربر مىتواند خطاها را در خود صفحهاى که فرم در آن قرار دارد مشاهده نماید.
این پیدا کردن خطا را براى وى سادهتر مىکند.
برنامه کاربردی تحت وب چیست؟
یک برنامه کاربردی تحت وب بایک وب سایت تفاوت دارد.
یک وب سایت شامل اطلاعات ثابتی است که از پیش آماده شده و به صورت فایل های HTML ذخیره شده اند.
ر این حالت جهت حرکت اطلاعات از سرویس دهنده به سرویس گیرنده می باشد.
در واقع وب سایت اطلاعات را به کاربر ارائه می دهد.
بین درخواست ها، سرویس دهنده از عملکرد سرویس گیرنده اطلاعی ندارد.
سرویس گیرنده می تواند از یک محل به محل دیگر بپرد و این کار روی وب سایت اولیه هیچ تاثیری ندارد، چون هر یک از صفحات به صورت یک واحد کاملا جدا می باشند.
در واقع وب سایت شامل گروهی از فایل های HTML از هم جدا می باشد.
در مقابل، یک برنامه کاربردی تحت وب، اطلاعات را برای یک کاربر یا گروهی از کاربران به شکلی خاص فرمت کرده و ارائه می دهد.
در این حالت، جهت حرکت اطلاعات دو طرفه می باشد؛ محتویاتی که توسط مرور گر نمایش داده می شوند، بر حسب اطلاعات ورودی کاربر یا هویت وی تعیین می گردند.
بنابراین یک برنامه کاربردی تحت وب، اطلاعات را به صورت دینامیکی ارائه می دهد نه به صورت فایل های HTML ثابت.
در واقع وظیفه برنامه، فراهم کردن اطلاعات بر حسب شرایط است که این اطلاعات معمولا از پایگاه داده (Database) بدست می آید.
برنامه کاربردی نه تنها اطلاعات می دهد، بلکه می تواند از کاربر اطلاعات بگیرد و به کارهای مختلف پاسخ مناسب دهد.
به عبارت دیگر، یک برنامه کاربردی، عملکرد کاربر را از یک درخواست به درخواست دیگر ردیابی می کند.
بنابراین کاربر می تواند آن گونه که در یک وب سایت به جستجو و گردش می پردازد، به شکل دلخواه تمام صفحات یک برنامه کاربردی را بررسی و مشاهده کند.
بلکه این برنامه کاربردی است که صفحات مناسب را در شرایط مقتضی به طور دینامیکی تولید کرده و به کاربر ارائه می دهد.
برای نوشتن برنامه های کاربردی تحت وب از زبان های مختلفی می توان استفاده کرد، مثل : Perl , Python , Java , C , C ++ , Visual Basic حتی Quick Basic یا Script های Unix.
در هر صورت مواردی که در زیر به آنها اشاره می شود جزء ضروریات یک برنامه کاربردی هستند : - ارتباط با یک پایگاه داده - سرعت - کار با رشته ها - امنیت ( Security ) - تراکنش ها ( Tranaactions ) تراکنش چیست ؟
یک برنامه کاربردی تحت وب اغلب باید کارهای مختلفی انجام دهد که هر یک از آنها برای تداوم اعتبار اطلاعات باید به طور کامل انجام شوند.
هنگام کار با یک پایگاه داده، معمولا این کارها را بصورت یک تراکنش در نظر می گیریم.
یک تراکنش قراردادی است که موفقیت یا عدم موفقیت مجموعه ای از عملیات را تضمین می کند که در صورت عدم موفقیت، اطلاعات باید دست نخورده باقی بمانند.
به عنوان یک نمونه کلاسیک، می توانیم یک حساب چک (Checking Account) را در نظر بگیریم.
هنگامی که یک چک را به حساب خود می گذارید، بانک مبلغ مشخص شده را از حساب مربوطه برداشته و به حساب شما واریز می کند.
کل این عملیات در صورتی موفقیت آمیز خواهد بود که برداشت و واریز پول به طور کامل انجام شود.
در این حالت عمل دو گانه برداشت از یک حساب و واریز به یک حساب دیگر را یک تراکنش می گوییم.
تفاوت میان برنامه های IIS و DHTML برنامه های IIS ، برنامه هایی هستند که برروی سرویس دهنده و تحت Microsoft Internet Information Server اجرا می شوند.
در مقابل، برنامه های DHTML برنامه Microsoft Internet Explorer استفاده می کنند و به این ترتیب به ورودی های کاربر پاسخ سریع می دهند.
این برنامه ها برای نوشتن بازی ها و شبیه سازی محیط و گرفتن اطلاعات از کاربر مناسب هستند .
متاسفانه این نوع برنامه ها به نسخه چهارم IE یا نسخه های بالاتر آن نیاز دارند.
با توجه به این که در این کتاب به تفصیل در مورد ASP و مسائل حاشیه ای آن بحث خواهیم کرد، بد نیست کمی بیشتر در مورد برنامه های IIS توضیح دهیم.
چون هدف از یادگیری ASP، نوشتن برنامه های IIS می باشد که بر روی سرویس دهنده اجرا می شوند.
برنامه های IIS با چندین مرورگر مختلف و نسخه های متفاوت آنها سازگاری دارند.
همچنین در محیط های مختلف Mak یا Unix نیز اجرا می شوند.
بنابر این این نوع برنامه ها برای نوشتن برنامه های تجاری که مخاطبین زیادی دارند مناسب هستند؛ چون دلیلی ندارد همه کاربران از ویندوز استفاده کرده و یا نسخه IE را در اختیار داشته باشند.
با توجه به این که برنامه های IIS برروی سرویس دهنده اجرا می شوند، برای به روز در آوردن آنها تنها کافی است کد موجود بر روی سرویس دهنده را تغییر داد.
این نوع برنامه ها از هر محلی قابل دسترسی می باشند.
هنگامی که یک برنامه IIS برروی سرویس دهنده نصب شده و به اجرا در آمد، هر کامپیوتری که بتواند به آن سرویس دهنده متصل شود می تواند از آن برنامه استفاده کند.
شما می توانید برای شناسایی کاربران، به آنها نام و کلمه عبور اختصاص دهید و هنگام برقراری ارتباط با برنامه کاربردی، نام و کلمه عبور را در خواست کنید.
با توجه به این که تمام اطلاعات بر روی یک کامپیوتر ذخیره می شوند، هنگامی که کاربر برنامه کاربردی را ترک کند، هیچ نوع اطلاعاتی را از دست نمی دهد.
چگونگی در خواست فایل ها توسط مرورگر هنگامی که شما یک آدرس URL در فیلد آدرس مرورگر خود تایپ می کنید، چند چیز اتفاق می افتد.
مرورگر، آدرس وارد شده را تحلیل کرده و پیغامی به سرویس دهنده نام (Name Server) می فرستد تا نام مشخص شده (به عنوان مثال ، Microsoft .
com ) را به یک آدرس IP) Internet Protocol ) – (به عنوان مثال ، 207.84.25.32 ) ترجمه کند.
سپس مرورگر با استفاده از آن آدرس IP به سرویس دهنده مربوطه متصل شده و فایل را درخواست می کند.
سرویس دهنده فایل را می خواند و محتویات آن را به مرورگر بر می گرداند.
در این مرحله مرورگر، دستورات HTML آن فایل را تحلیل و فرمت فایل راتعیین می کند.
بیشتر فایل های HTML درون خود به تصاویر گرافیکی اشاره می کنند.
این اشاره ها به صورت رفرنس (Reference) بوده که هریک از آنها نیز بایک آدرس URL مشخص می شوند.
بنابراین کل این عملیات برای تک تک تصاویر و یا فایل های دیگری که با رفرنس به آنها اشاره شده است تکرار می شود.
به این ترتیب پروسه نمایش یک فایل HTML شامل تعدادی تراکنش کوچک بین سرویس گیرنده ( یعنی مرورگر ) و سرویس دهنده وب می باشد.
برنامه های IIS نیز تقریبا به همین صورت عمل می کنند.
ابتدا یک مرورگر یک صفحه را از سرویس دهنده درخواست می کند.
این درخواست همیشه برای یک فایل خاص می باشد.
پاسخ سرویس دهنده به نوع فایل درخواستی بستگی دارد.
اگر فایل مورد نظر از نوع HTML (با پسوند .htm یا .html) باشد، سرویس دهنده به سادگی محتویات فایل را می خواند و محتویات آن را به صورت یک رشته در آورده و براساس قوانین URL کد گذاری می کند و سپس رشته حاصله را به مرورگر برمی گرداند.
کل این پروسه، از درخواست تا پاسخ، یک تراکنش مابین سرویس گیرنده و سرویس دهنده تلقی می شود.
سرویس گیرنده همواره تراکنش را شروع می کند و سپس تا زمان رسیدن پاسخ از سوی سرویس دهنده منتظر می ماند که در این زمان تراکنش کامل شده و خاتمه می یابد.
درخواست فایل از سرویس دهنده وب مشابه هنگامی است که در Windows Explorer روی یک فایل شبکه ای (فایلی که برروی کامپیوتر سرویس دهنده قرار دارد) دوبار – کلیک می کنید؛ البته با دو تفاوت: - سرویس دهنده وب هیچگاه اجازه نمی دهد که برنامه محلی شما (یعنی مرورگر) فایل درخواستی را باز کرده یا درآن چیزی بنویسید؛ در عوض خودش فایل را باز می کند و محتویات آن را برمی گرداند.
- ارتباط ما بین سرویس گیرنده و سرویس دهنده گذرا (Transient) است.
برای برقراری ارتباط با سرویس دهنده وب نیازی به مشخص کردن نام درایوی که فایل بر روی آن قرار دارد نیست.
پس از این که سرویس دهنده وب به درخواست شما پاسخ داد، ارتباط را قطع می کند.
هنگامی که تراکنش کامل شد، سرویس دهنده وب، سرویس گیرنده را به طور کلی از یاد می برد.
اگر بلا فاصله کلید Refresh (موجود برروی نوار ابزار IE) را کلیک کنید.
سرویس دهنده وب، آن تراکنش را تکرار می کند و اصلا به خاطر نمی آورد که 5 ثانیه قبل این فایل توسط شما درخواست شده است.
اگر ارتباط بر اساس پروتکل استاندارد HTTP برقرارشود، بیشتر فایل ها به چندین تراکنش نیاز دارند، یکی برای فایل Html اصلی و بقیه برای یکایک فایل های گرافیکی که در فایل اصلی به آنها اشاره شده است.
بنابراین برای نمایش یک فایل که شامل 5 تصویر گرافیکی است، مرورگر درخواست جداگانه به سرویس دهنده وب می فرستد.
شی RESPONSE و استفاده از فایل های include برای پاسخ گویی به مرورگر ، از متدهای شیء Response استفاده می شود.
در واقع شیء Response راهی برای برقراری ارتباط با سرویس گیرنده است .
شیء Scripting Context : این شیء امکان دسترسی اشیاء ActiveX خارجی به اشیاء درونی ASP را فراهم می کند.
البته بهتر است به جای این شیء از شیء Object Context استفاده کنید.
برای گرفتن شیء Object Context نیز باید متد(Object Context ) را فراخوانی کنید.
شیء Scripting Context ، تمام اشیاء ASP را درون خود جمع می کند.
هنگامی که یک صفحه ASPکه شامل رفرنس هایی به اشیاء ActiveX می باشد اجراء میشود، ابتدا موتور ASP متد On Start Page هر یک از آن اشیاء ActiveX را فراخوانی کرده و شیء Scripting Context را به عنوان پارامتر به آن می فرستد.
اشیاء ActiveX با استفاده از این پارامتر می توانند اشاره گر هایی به اشیاء Server ، Application ، Request و Response به دست آورند.
در این جا لیستی از ویژگی های شیء Scripting Context را ملاحظه می کنید : • Server • Application • Session • Request • Response هر یک از این 5 ویژگی یک اشاره گر (Pointer) به یکی از اشیاء درونی ASP بر می گردانند.
توجه Microsoft : توصیه می کند که به جای استفاده از شیء Scripting Context از متد get Object Context اگر چه امکان استفاده از شیء Scripting Context کماکان وجود دارد، ولی باید بدانید که این شیء از رده خارج شده و در برنامه های جدید خود نباید از آن استفاده کنید .
شیء Object Context : شیء Object Context به عنوان پل ارتباطی با MTS ( Microsoft Transaction Server ) تلقی می شود.
با MTS شما می توانید کاری کنید که اشیاء ActiveX در تراکنش هایی که صفحه ASP آغاز شده اند شرکت کنند.
همچنین با استفاده از شیء Object Context در هنگام نوشتن اشیاء ActiveX می توانید به اشیاء درونی ASP دسترسی پیدا کنید .
آشنایی با ساختار یک برنامه ASP از نظر موتور ASP ، یک برنامه کاربردی عبارت است از مجموعه ای از تمام فایل و زیردایرکتوری های ( Subdirectory ) موجود در یک دایرکتوری که شامل فایل Global .
asa باشد.
بیشتر برنامه های کاربردی ASP شامل فایل های ASP و فایل های Include با پسوند( .inc ) هستند که هر دوی آنها می توانند ترکیبی از HTML ، کد و فایل های گرافیکی باشند.
البته شما می توانید فایل های ASP را با فایل های HTML یا هر فایل دیگری که برای سرویس دهنده قابل شناسایی باشد ترکیب کنید.
بالاترین دایرکتوری در این ساختار شامل فایل Global .
asa است.
این فایل دایرکتوری ریشه ( Root Directory ) برنامه کاربردی را مشخص می کند.
اولین باری که یک کاربر یکی از فایل های ASP موجود در یکی از دایرکتوری های برنامه را درخواست می کند، موتور ASP ساختار درختی درختی دایرکتوری ها را به سمت بالا طی میکند تا فایل Global .
asa را پیدا کند و یا به ریشه وب ( Root Web Directory ) برسد.
این نکته از اهمیت زیادی برخوردار است، چون اگر شما چند برنامه کاربردی را درون هم قرار دهید (که به آنها برنامه های کاربردی تودرتو – Nested Applications - می گویند)، فایل Global .
asa که برای هر درخواست کاربر اجرا می شود بستگی دارد به این که کاربر ابتدا کدام فایل را درخواست نماید.
چون نمی توان اولین درخواست کاربر را کنترل نمود، بهتر است برنامه های ASP را درون هم قرار ندهید؛ مگر این که دلیل موجهی برای این کار داشته باشید .
ساختن یک برنامه کاربردی وب تحت IIS 4.0 به یک مرحله دیگر نیز دارد : شما باید به IIS بگویید که دایرکتوری مجازی ( Virtual Directory ) در برگیرنده فایل Global .
asa ، دایرکتوری ریشه برنامه کاربردی است.
صرف نظر از این که کدام فایل درخواست شود، فایل Global .
asa همواره اولین فایلی خواهد بود که اجرا می شود.
بنابراین اگر در نظر دارید کاربر برنامه کاربردی شما را با صفحه خاصی که مورد نظر شماست آغاز کند، این فایل بهترین جایی است که می توانید مرورگر را به آن صفحه هدایت کنید.
برنامه کاربردی که درشکل قبل ملاحظه فرمودید، شامل چندین فایل ASP و دو زیردایرکتوری به نام های images و include می باشد.
البته از نظر تعیین ساختار دایرکتوری های یک برنامه کاربردی هیچ محدودیتی وجود ندارد؛ شما می توانید همه فایل ها را درون یک دایرکتوری قرار دهید.
ولی در عمل، بهتر است که فایل ها را بر اساس کارایی آنها دسته بندی کنید چون این کار ساختن و نگهداری برنامه را بسیار آسان تر می کند.
توجه : دایرکتوری ریشه وب و دایرکتوری ریشه برنامه ASP لزوما نباید یکسان باشند.
به عنوان مثال، می توانید برای چندبرنامه کاربردی ASP از یک فایل Global .
asa استفاده کنید.
در این شرایط می توانید فایل Global .
asa را درون یک دایرکتوری قرار داده و سپس هر یک از زیر دایرکتوری های درون آن را به عنوان یک دایرکتوری مجازی تعریف کنید که بر اساس برنامه کاربردی مربوطه نامگذاری شده اند.
ساختار دایرکتوری موجود در شکل زیر، شامل 4 برنامه کاربردی است : 401k ، Paycheck ، Retirement ، Timesheet .
بالاترین دایرکتوری، که HR Applications نام دارد، شامل فایل Global .
هر زمان که یک کاربر به یکی از 4 برنامه کاربردی موجود متصل شود، موتور ASP ساختار درختی دایرکتوری ها را بالا می رود تا به دایرکتوری HR Applications که در بر گیرنده فایل که Global .
asa است برسد.
یکی از دلایلی که می توان برای مرتب کردن برنامه ها به این شکل در نظر گرفت، این است که ممکن است هر چهار برنامه از یک روش امنیتی استفاده کنند و یا ممکن است تمام برنامه ها از یک نوع روش برای برقرای ارتباط با پایگاه داده و یا از یک پایگاه داده مشترک استفاده کنند و شما بخواهید اطلاعات اولیه را در فایل Global .
asa تنظیم کنید .
استفاده از فایل های Include برای جلوگیری از تکرار کد یا دستورات HTML در صفحات ASP ، می توانید از فایل های خارجی استفاده کرده و آنها را در صفحات ASP خود بگنجانید.
یک فایل Include در یک فایل ASP از دستور INCLUDE استفاده می شود.
دستور INCLUDE مشابه این است که محتویات فایل include مورد نظر را درون یک صفحه دیگر قرار دهید.
در این جا مثالی از یک دستور INCLUDE را مشاهده می کنید : این دستور سبب می شود که سرویس دهنده آن را با محتویات فایل مشخص شده جایگزین کند.
دو نوع دستور INCLUDE موجود است : یکی # INCLUDE FILE و دیگری # INCLUDE VIRTUAL .
نوع اول برای مشخص کردن فایل به یک آدرس فیزیکی نیاز دارد در حالی که نوع دوم به آدرس مجازی به فایل اشاره می کند.
به هر حال از هر روشی که استفاده کنید، موتور ASP قبل از شروع پردازش دستورات، آن را با محتویات فایل مورد نظر جایگزین می کند.
بنابراین برای گنجانیدن یک فایل نمی توانید از دستورات شرطی استفاده کنید.
به عنوان مثال، کد زیر به گونه ای که انتظار می رود عمل نخواهد کرد؛ موتور ASP هر دو فایل را خواهد گنجاند : هنگامی که موتور ASP این فایل را تحلیل می کند، دو دستور INCLUDE را با فایل های نامبرده جایگزین می کند و این کار را قبل از اجرای دستور if…end if انجام می دهد.
پس باز هم تاکید می کنم : شما با استفاده از کد نمی توانید برای موتور ASP تعیین کنید که کدام فایل را بگنجاند و یا این که اصلا یک فایل را بگنجاند یا خیر.