למבינים ב JSP..

DarkSwell

New member
למבינים ב JSP..

שלום, אני מפתח מערכת אינטרנט פשוטה ב JSP, השרת יושב על מחשב מסויים בביתי, אני מריץ את דפי ה JSP ממחשב אחר בביתי שמחובר לשרת, מחשב זה הוא הגישה היחידה לשרת. כתבתי כמה מחלקות ב Java שיושבות על השרת ואני יוצר מהם אובייקטים בדפי ה JSP. נוכחתי לדעת שכאשר אני יוצר אובייקט ממחלקה מסויימת אשר הוגדר בה משתנה סטטי כל שהוא. אז כאשר אני מריץ דף JSP אחר או טוען את אותו דף שוב אז בעצם אותו אובייקט מאותחל מחדש בדפים השונים(או באותו דף) אך ערכו של המשתנה הסטטי אינו מאותחל, וכל שינוי שמתבצע עליו תקף בדפי JSP אחרים או בטעינה חוזרת של אותו דף JSP, רק במידה ויבוצע איתחול לשרת אז ערכו של המשתנה הסטטי יאותחל החל מהמופע הראשון. מה שאני רוצה לדעת הוא האם זה כך מפני שאני מריץ את דפי ה JSP ממחשב לקוח אחד, או שגם ממחשב לקוח אחר יהיה לאותו משתנה סטטי ערך זהה..? דוגמא נניח שאני טוען דף שמקדם את המשתנה הסטטי הזה וערכו כרגע 3, עכשיו אתה טוען דף אחר(או אותו דף) שמקדם את ערכו של משתנה הסטטי וערכו יהיה 4, אז כאשר אני יטען שוב את הדף זה או אחר, האם ערכו יהיה עבורי 4..? או 3..? האם בעצם אותו משתנה סטטי של מחלקה מסוימת מתנהג כמו Application..? תודה מראש לכל מי שעיין בהודעה.
 

codec

New member
stateless

השרת אינו יודע שאתה עובד רק ממחשב אחד. אלא אם כן אתה שומר SESSION על השרת, הוא מתייחס לכל כניסה באופן בלתי תלוי בקודמות, בלי קשר למחשב ממנו מבוצעת הכניסה. יש לזה יתרונות ויש לזה חסרונות, תלוי מה אתה רוצה לעשות.
 

DarkSwell

New member
מ..

האם זה אומר שאני יכול להתיחס לכך שאותו משתנה סטטי יהיה בעל ערך זהה מכל לקוח..? אם כך אז בעצם למה צריך אובייקט Application. תודה בכל אופן.
 
זה עניין של Context

בקונטיינרים כמו Tomcat יש Context (הקשר) לתהליכים. מחזור החיים של אוביקטים והחלוקה ל name-spaceים קצת שונים מאפליקציה רגילה. אם אתה רוצה לשתף מידע בין Servletים ובין Sessionים אתה יכול להשתמש ב ServletContext.setAttribute. אם אתה רוצה לשתף מידע בין תהליכים שרצים מול Session מסוים תשתמש ב HttpSession.setAttribute.
 
אגב, פורום לינוקס ../images/Emo13.gif

כפי שאתה רואה, אין שם יותר מדי אנשים שמתעסקים בזה, ואלו שכן נמצאים גם כאן, אז חבל על ההודעות הכפולות שלך
 

DarkSwell

New member
אז..

לגבי Servletים אני יודע, אך אינני רוצה להשתמש ב Servletים עבור מערכת זו. זה אומר שאני יכול להתיחס למשתנה סטטי במחלקה מסוימת כבעל ערך זהה לכל ה Clientים שפונים לשרת, ואורך זמן המחיה שלו הוא כל עוד השרת פועל..? אני צריך תשובה ודאית, אם היה לי עוד מחשב מחובר לשרת אז הייתי בודק זאת בעצמי, אך אין לי לכן אני פונה לפורום, במטרה לקבל תשובה מקצועית מבעל נסיון. תודה.
 

DarkSwell

New member
מה זאת אומרת מאותו Context..

הרי יש לי רק שרת אחד אליו הם פונים.
 

DarkSwell

New member
מה זאת אומרת מאותו Context..

הרי יש לי רק שרת אחד אליו הם פונים.
 
למעלה