|
صفحة: 100
אכן מתרחש דבר-מה מוזר : בפעם הראשונה שמפעילים את המשחק , בעת שהשרת מציג את הוראות המשחק , הוא כבר מגריל שלושה מספרים ומציג את הניקוד שקיבל המשתמש . ההתנהגות הזאת אינה תקינה משום שהמשתמש עדיין לא ביקש להגריל מספרים וכבר קיבל ניקוד . מהי הסיבה לכך ? בגרסה 2 של משחק ' מכונת המזל ' אנחנו משתמשים בקובץ jsp אחד , ללא קובץ html שמציג דף פתיחה . בפעם הראשונה שבה המשתמש מבקש את הקובץ , השרת צריך לשלוח בתגובה את דף הפתיחה ( דף ( HTML שמציג את כללי המשחק . אבל בשלב הזה השרת אינו צריך לערוך הגרלה . רק לאחר שהמשתמש מבקש לנסות את מזלו במשחק , יש צורך לערוך הגרלה ואז להציג את הניקוד שהתקבל . אבל כאן מתעוררת בעיה : כיצד תדע תוכנת השרת שזו הפעם הראשונה שהמשתמש ניגש לדף ה ? jsp- כיצד יודעים שדף נטען בפעם הראשונה ? כדי לדעת אם דף נטען בפעם הראשונה , בודקים אם כפתור השליחה נלחץ ; הכפתור הזה נקרא . send כאשר המשתמש נכנס לאתר המשחק בפעם הראשונה , הוא מכניס את הURL- של המשחק , אבל הוא אינו לוחץ על כפתור השליחה , ולכן הערך של כפתור send הוא . null לכן , במצב הזה יש להציג רק את הוראות המשחק ואין להגריל מספרים . לעומת זאת , אם נלחץ כפתור השליחה , send ברור כי הדף כבר הוצג בפני המשתמש וכי הוא לחץ על הכפתור send כדי לשחק במשחק . כדי לוודא שהמשתמש אכן לחץ על כפתור השליחה , נקרא את הערך שנשלח עבור השדה send ונבדוק שערך זה שונה מערך . null פעולה זו נגדיר כחלק מתסריט שנכתב בחלק הביצועי if ( request . getParameter ( "send" ) ! = null )) { בצע את הלוגיקה של המשחק } // ההשוואה מחזירה ערך בוליאני ( הערך יהיה true רק כאשר נלחץ הכפתור השליחה . ( בפעם הראשונה , לפני שנלחץ על כפתור השליחה , ערך התנאי במשפט ה- if יהיה , false וכך נוכל לדעת שהדף מוצג לראשונה ואין צורך לערוך הגרלה .
|
|