ورود

View Full Version : شمارنده سایت با jsp



diosa000
دوشنبه 11 دی 1385, 16:52 عصر
سلام...من برای گذاشتن شمارنده اعضای online در سایت ,در سرولتی که کار loginرو چک میکنه به ازای هر sessionایجاد شده یک شمارنده رو اضافه میکنم(با servletcontext,یک کلاس دیگه)
و بر عکس این عمل رو در logout انجام میدم....ولی نمیدونم چرا nullبرمیگردونه؟؟؟ آیا روش
کارم نادرسته ؟ ممنون میشم راهنمایی ام کنید .

pooyanm
سه شنبه 12 دی 1385, 00:00 صبح
روش کار همینه. فقط بعضی کاربران پس از یک بازه زمانی خود به خود logout محسوب می شن که با Listener قبل از از بین رفتن یک جلسه کاری به اون دسترسی دارید. شما توی چه دستوری null دریافت می کنی؟

diosa000
سه شنبه 12 دی 1385, 11:53 صبح
اگر کاربر تایید شد کد زیر اجرا میشه :


(if((getServletContext().getAttribute("userscounter"))==null
(() getServletContext().setAttribute("userscounter",new Monitor
} else
(" Monitor m=(Monitor)getServletContext().getAttribute( "userscounter
()m.incCount
(() request.getSession().setAttribute("onlines",m.getCount

و در صفحه اصلی
این session چاپ میشه که null برمیگردونه!
کلاس monitorهم عملیاتها و بازیابی روی متغیر count را انجام میده...


else//{

diosa000
سه شنبه 12 دی 1385, 11:55 صبح
البته ببخشید که فرمتش کمی به هم ریخت ....

pooyanm
سه شنبه 12 دی 1385, 16:29 عصر
ServletContext تنها شیئی هست که در طول فعالیت وب سرور از بین نمیره. و شما باید مشخصه onlines را درون همین شئ نگه داری :



if ((getServletContext().getAttribute("onlines"))==null) {
getServletContext().setAttribute("onlines",new Monitor());
}
else {
Monitor m = (Monitor)getServletContext().getAttribute("onlines");
m.incCount();
}


اگه سوال دیگه ای بود من در حد توانم در خدمتم.