120 likes | 328 Views
אובייקט Session. שמירת נתונים על הלקוח. הפנייה לדף אחר. response.sendRedirect (“fileName.jsp”) הפעולה מפנה את הביצוע לדף fileName . בניגוד להפנייה ע"י קישור, שבה המשתמש בוחר ללחוץ על הקישור, ההפנייה תתבצע בדרך כלל בעת קיום תנאי לוגי מסויים. תכנות חסר מצב stateless programing.
E N D
אובייקט Session שמירת נתונים על הלקוח
הפנייה לדף אחר response.sendRedirect (“fileName.jsp”) • הפעולה מפנה את הביצוע לדף fileName. • בניגוד להפנייה ע"י קישור, שבה המשתמש בוחר ללחוץ על הקישור, ההפנייה תתבצע בדרך כלל בעת קיום תנאי לוגי מסויים.
תכנות חסר מצב stateless programing • חוסר מצב – השרת אינו שומר את הנתונים על ההתקשרות עם הלקוח. • לאחר שהשרת מטפל בבקשת http של הלקוח ושולח לו תגובה, מתנתקת ההתקשרות. אין שמירה של המידע ששלח הלקוח לשרת.
תכנות חסר מצב stateless programing • בעיה: במעבר בין דפים או בטעינה חוזרת של הדף, נמחק המידע השמור במשתנים.מה קורה כאשר מעוניינים להעביר מידע בין דפים שונים ?? • הפתרון: אובייקט session מטיפוס המחלקה HttpSession.לכל משתמש, המזוהה ע"י המחשב שבו הוא גולש, מוקצה עצם מסוג Session אשר זמין עבורו כל עוד הוא פעיל באתר. האובייקט שומר מידע על הגולש.
תכנות חסר מצב stateless programing • העצם נוצר בעקבות בקשת http ונהרס כאשר: • המשתמש סוגר את הדפדפן, • עובר לאתר אחר, • אינו פעיל באתר במשך פרק זמן מסוים (ברירת המחדל היא 20 דקות). • דוגמאות לשימוש באובייקט Session: • שמירת שם וסיסמת הגולש. • שמירת ניקוד במשחק • שמירת מידע על "עגלת קניות".
אחסון נתוני המשתמשאובייקט session • העצם session מנהל אוסף של זוגות במבנה: <ערך התכונה , שם התכונה> • שם התכונה - חייב להיות מחרוזת.ערך התכונה - עצם או טיפוס נתונים כלשהו (מחרוזת, מספר, משתנה, הפנייה לעצם אחר וכד').הערה: ערך התכונה חייב להיות עצם.Java מבצעת המרה אוטומטית בין טיפוס מספרי וטיפוס המחלקה העוטפת שלו.
אחסון נתוני המשתמשאובייקט session • כדי לאחסןנתון נשתמש בפעולה: (ערך , "שם-תכונה")session.setAttribute דוגמאות: session.setAttribute ("userName", name); משתנה: session.setAttribute ("userName", "Hila"); מחרוזת:
שליפת ערך של התכונהמאובייקט session • כדי לשלוף ערך של תכונה שבאובייקט, נשתמש בפעולה: ("שם-תכונה")session.getAttribute דוגמאות: out.print(session.getAttribute("userName") ); if (session.getAttribute ("points") > 9)response.sendRedirect("bonus.jsp");
ניהול אובייקט session • ערך ברירת המחדל לקיום של אובייקט session, אם לא התרחשה פעילות, הוא 20 דקות. • שינוי פרק זמן זה על ידי הפעולה: session.setMaxInactiveInterval (num*60); כאשר num מייצג את מספר הדקות הרצוי. הזמן נמדד בשניות. דוגמאות: session.setMaxInactiveInterval (60); // 1 min session.setMaxInactiveInterval (30); // 30 sec
ניהול אובייקט session • כדי להציג את פרק הזמן שנקבע, נשתמש בפעולה: session.getMaxInactiveInterval(); דוגמה: <%= “timeout “ + session.getMaxInactiveInterval() + “ sec” %>
ניהול אובייקט session • ניתן להרוס עצם מסוג session באופן יזום על ידי ההוראה: session.invalidate();