صفحة: 118

3 . 4 תכנות " חסר מצב " מהו תכנות ' חסר מצב ' ?( stateless programming ) בגרסת המשחק האחרונה שכתבנו , ( game 3 . jsp ) משתמש שזכה בניקוד גבוה הופנה לדף בונוס אשר הציג הודעה חגיגית . עם זאת , דף הבונוס לא הציג בפני המשתמש לא את מספר הנקודות שבהן זכה ואף לא את שמו . לפיכך , נרצה להציג למשתמש המגיע לדף הבונוס את שמו ואת הניקוד שבו זכה . נוסיף לדף bonus . jsp את המשפט : out . print ( name + " " + points ) ניסיון להציג דף זה בדפדפן יגרור שגיאה , שכן המשתנים name וpoints- הוגדרו בדף אחר , והדף bonus . jsp אינו מכיר אותם . יתרה מכך , גם הדף שבו הוגדרו הנתונים אינו זוכר את ערכם בזמן הטעינה מחדש . לדוגמה , אם נרצה לשנות את המשחק כך שהמשתמש יוכל לשחק כמה פעמים ולצבור את הניקוד שבו זכה , נזדקק למשתנה נוסף כדי לסכם את הזכיות . נכתוב אפוא דף בשם game 3 a . jsp הדומה לדף , game 3 . jsp ובו נגדיר משתנה שלם בשם sum וכן משפט לצבירת הניקוד ב : sum- sum += points ; בחלק התצוגה נציג את ערך המשתנה sum במקום את ערכו של : points + " " + name ); % > "נקודות " + sum + " זכית בהגרלה האחרונה < % out . print ( " צרו והריצו את הדף . game 3 a . jsp לחצו על הכפתור ' נסו מזלכם ' כמה פעמים ; בכל פעם הקלידו שם בתיבת הטקסט , כך שבכל לחיצה תזכו בשתי נקודות לכל הפחות . שאלה למחשבה האם הניקוד המצטבר מחושב נכון ? אם לא , מהי הסיבה לכך ? בעת הרצת הדף , המשתנה sum אינו צובר את הנקודות , אלא שומר אותן להגרלה הנוכחית בלבד , בדיוק כמו . points מדוע הדבר קורה ? כפי שהסברנו בפרק הראשון , יישומי Web מאופיינים ב ' חסר מצב . ' כלומר , השרת אינו שומר נתונים על ההתקשרות עם הלקוח : לאחר ששרת מטפל בבקשת , HTTP ושולח ללקוח

מטח : המרכז לטכנולוגיה חינוכית


 لمشاهدة موقع كوتار بأفضل صورة وباستمرار