Server
אוספים (Collections)
תכונות (Properties)
ScriptTimeout
שיטות (Methods)
CreateObject
Execute
HTMLEncode
MapPath
Transfer
URLEncode
האובייקט Server מכיל אוסף פקודות, שלא תמיד קשורות לשרת, אך הן שימושיות מאוד.
Server.CreateObject
שיטה זו משמשת ליצירת מופעים של אובייקטי COM (כדוגמאת ActiveX Objects). טווח ההכרה (scope) של האובייקטים שנוצרים באמצעות השיטה, הוא לרוב אותו עמוד, כלומר, המופע יפסיק להתקיים ברגע שייסתיים עיבוד קובץ ה-ASP. לדוגמא:
קוד:
<%
Set conn = Server.CreateObject("ADODB.Connection")
%>
יוצר מופע של האובייקט connection (חיבור לבסיס נתונים) ומקשר אותו למשתנה conn. מכאן והלאה אנו יכולים, באמצעות המשתנה conn, לפנות לכל השיטות והמאפיינים של האובייקט. (למשל: conn.Open). בסוף השימוש באובייקט, "נהרוס" אותו ע"י המשפט:
קוד:
<%
Set conn = nothing
%>
Server.HTMLEncode
אם ננסה להציג ללקוח משפט כמו "<HTML> הוא התג שפותח כל דף HTML" מה שנראה בסופו של דבר יהיה "הוא התג שפותח כל דף HTML". זאת מכיוון שהתוים ">" "<" מפורשים ע"י הדפדפן לא כמו תווים רגילים. כדי להציג על המסך תווים מיוחדים (< > ...) עלינו להשתמש באחת משתי שיטות. החלפת התגים המיוחדים ב- escape code שלהם. לדוגמא:
שימוש ב:
קוד:
<% Server.HTMLEncode("<HTML>") %>
Server.URLEncode
אם נרצה לכתוב קישור כזה:
קוד:
<a href="http://www.site.co.il?name=Moshe Levy">
נקבל טעות כאשר נלחץ על הקישור, בגלל הרווח (IE בגרסאותיו האחרונות כבר תומך ברווחים בקישור, אך NS עדיין לא...) על מנת למנוע זאת, URLEncode מקבל מחרוזות, והופכת אותה ל-URL תקין.
קוד:
<a href="www.site.co.il?name=<%=Server.URLEncode("Moshe Levy")%>">
Server.MapPath
שיטה זו מספקת מידע על מיקום הקבצים. היא מתרגמת את המסלול היחסי או הוירטואלי המשמש את הדפדפן למסלול פיזי על השרת. השיטה אינה בודקת אם הערך המוחזר שלה אכן קיים על השרת, ואינה תומכת בתחביר של מסלול יחסי. למשל:
קוד:
<%=Server.MapPath("../user/file.asp")%>
יחזיר לנו נתיב כלשהו, אבל מכיוון שהשיטה לא בודקת אם הנתיב או הקובץ קיימים, היא תחזיר לנו נתיב לא קיים.
קוד:
<%=Server.mappath(Request.ServerVariables("PATH_INFO"))%>
Server.ScriptTimeout
מאפיין זה מציין את הזמן המקסימלי (בשניות) שהסקריפט יעובד לפני שיסתיים. ברירת המחדל היא 90 שניות. בקבצים קטנים אין סיבה לשנות ערך זה, אך אם ישנו קובץ הגדול, המבצע, למשל, חיפוש בבסיס נתונים גדול, או מבצע upload של קובץ גדול לשרת, אזי יש סיבה להגדיל את הערך.
Server.Execute
שיטה זו קוראת לקובץ ASP חדש ומעבדת אותו כאילו היה חלק מהסקריפט הנוכחי. בסיום עיבוד הקובץ החדש, השרת חוזר לעבד את הקובץ הנוכחי בדיוק באותה שורה בה הפסיק.
page1.asp:
קוד:
<%
Response.Write ("Hello ")
Server.Execute ("page2.asp")
Response.Write ("World!")
%
page2.asp:
קוד:
<%Response.Write ("Hello ")%>
פלט:
שיטה נוספת להכללת קובץ נוסף היא include דוגמא יכליל את הקובץ menu.htm בדף.
Server.Transfer
אם כאשר קראנו ל-Server.Execute, השרת חזר לעבד את הקובץ הנוכחי בדיוק באותה נקודה בה הפסיק, בקריאה ל- Server.Transfer אנו מפסיקים לחלוטין את עיבוד הקובץ הנוכחי, מעבירים את כל המידע שבו (אובייקטים, request, משתנים ) לקובץ החדש ומעבדים אותו. לאחר סיום עיבוד הקובץ החדש השרת איננו חוזר לבצע את הקובץ שקרא ל-Server.Transfer, וכל מה שהיה כתוב לאחר שורה זו, לא יתבצע.
השיטה נתמכת רק החל מ- IIS 5.0 , כלומר, נסיון להשתמש בשיטה על PWS יחולל שגיאה.
page1.asp:
קוד:
<%
Response.Write ("Hello ")
Server.Transfer ("page2.asp")
Response.Write ("World!")
Response.Write ("Hello ")
%>
page2.asp:
קוד:
<%Response.Write ("Hello ")%>
התוצאה תהיה:
פרק הבא בקרוב.
קרדיט לאתר www.webmaster.org.il .