וובמאסטר - תיכנות ובניית אתרים

מדריך ASP - האובייקט Server

entry/‏ 5 אוגוסט, 2003
F+
F-
Server
אוספים (Collections)תכונות (Properties)שיטות (Methods)
 ScriptTimeoutCreateObject
  Execute
  HTMLEncode
  MapPath
  Transfer
  URLEncode


האובייקט Server מכיל אוסף פקודות, שלא תמיד קשורות לשרת, אך הן שימושיות מאוד.

Server.CreateObject

שיטה זו משמשת ליצירת מופעים של אובייקטי COM (כדוגמאת ActiveX Objects). טווח ההכרה (scope) של האובייקטים שנוצרים באמצעות השיטה, הוא לרוב אותו עמוד, כלומר, המופע יפסיק להתקיים ברגע שייסתיים עיבוד קובץ ה-ASP. לדוגמא:

VBScriptJScript
	<%
	Set conn = Server.CreateObject("ADODB.Connection")
	%> 
	
יוצר מופע של האובייקט connection (חיבור לבסיס נתונים) ומקשר אותו למשתנה conn. מכאן והלאה אנו יכולים, באמצעות המשתנה conn, לפנות לכל השיטות והמאפיינים של האובייקט. (למשל: conn.Open). בסוף השימוש באובייקט, "נהרוס" אותו ע"י המשפט:

VBScriptJScript
	<%
	Set conn = nothing
	%>
	
(בנושא העבודה מול בסיסי נתונים נדון בפרק נפרד).

Server.HTMLEncode

אם ננסה להציג ללקוח משפט כמו "<HTML> הוא התג שפותח כל דף HTML" מה שנראה בסופו של דבר יהיה "הוא התג שפותח כל דף HTML". זאת מכיוון שהתוים ">" "<" מפורשים ע"י הדפדפן לא כמו תווים רגילים. כדי להציג על המסך תווים מיוחדים (< > ...) עלינו להשתמש באחת משתי שיטות. החלפת התגים המיוחדים ב- escape code שלהם. לדוגמא:

&lt;HTML&gt;
שימוש ב:

<% 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"))%> 
יתן את התוצאה:

D:\hshome\weborgil\webmaster.org.il\guide.asp

Server.ScriptTimeout

מאפיין זה מציין את הזמן המקסימלי (בשניות) שהסקריפט יעובד לפני שיסתיים. ברירת המחדל היא 90 שניות. בקבצים קטנים אין סיבה לשנות ערך זה, אך אם ישנו קובץ הגדול, המבצע, למשל, חיפוש בבסיס נתונים גדול, או מבצע upload של קובץ גדול לשרת, אזי יש סיבה להגדיל את הערך.

Server.Execute

שיטה זו קוראת לקובץ ASP חדש ומעבדת אותו כאילו היה חלק מהסקריפט הנוכחי. בסיום עיבוד הקובץ החדש, השרת חוזר לעבד את הקובץ הנוכחי בדיוק באותה שורה בה הפסיק.
page1.asp:
<%
    Response.Write ("Hello ")
    Server.Execute ("page2.asp")
    Response.Write ("World!")
%>
page2.asp:
<%Response.Write ("Hello ")%>
Hello Hello World!

שיטה נוספת להכללת קובץ נוסף היא 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 ")%> 
התוצאה תהיה:

Hello Hello

entry

סטודיו לבניית אתרים שהוקם בינואר 2005
אתר: http://www.entry.co.il
תגיות: ASP‏  /  מדריך‏  /  Server‏  /  CreateObject‏  /  MapPath‏  /  Execute‏  

תגובות בפייסבוק

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות