0 امتیاز
قبل در برنامه نویسی توسط (308 امتیاز)
در servlet به ازای هر درخواست یک thread ساخته مي شود آیا آبجکت های که در servlet استفاده کردیم هم یک بار ساخته می شوند یا به ازای هر درخواست یک آبجکت جدید ساخته می شود

1 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

فکر کنم اگه چرخه عمر یک کلاس Servlet در یک Servlet Container رو براتون توضیح بدم جواب سوالتون رو می گیرین:

  1. بسته به تنظیمات یک شئ از یک servlet یا زمانی که servlet container شروع به کار می کند و یا در زمان رسیدن اولین درخواست ساخته می شود.
  2. در اولین مرحله متد init آن servlet فراخوانی می شود.
  3. در خواست هایی که توسط thread های مختلف برای آن servlet ارسال می شود فقط و تنها فقط توسط متد service همان یک شئ ساخته شده در مرحله اول جواب داده می شود.
  4. در زمان updeploy شدن web application نیز متد destroy آن servlet فراخوانی می شود.

حالا اگر شما درون متد service (همان doGet و ...) یک servlet شئ بسازید که در پایان رسیدگی به درخواست شئ ساخته شده از بین می رود، اگر هم متغییر در سطح کلاس تعریف کنید (که توصیه نمی شود) شئ درون آن متغییر بین تمام thread هایی که به آن servlet در خواست فرستاده اند مشترک است!

قبل توسط (308 امتیاز)
ممنون از جواب کاملتون فقط یک سوال اگر یک درخواست به سرولت فرستاده شود یک شی در سرولت ساخته می شود چون هر درخواست یک thread مي باشد و قبل از پایان رسیدگی به درخواست thread در حال جریان thread دیگری فرصت استفاده به همان شی قبلی را داشته باشد منابع thread قبلي چه مي شود
قبل توسط (1.1هزار امتیاز)
فکر کنم جواب رو با دقت نخوندین، منظورتون از شئ ساخته میشه چیه؟ شیئی درون servlet ساخته نمیشه مگر اینکه شما کدشو نوشته باشین.

سوالات مشابه

+1 امتیاز
1 پاسخ 1.8هزار بازدید
+1 امتیاز
1 پاسخ 782 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط HS (12 امتیاز)
0 امتیاز
1 پاسخ 8.0هزار بازدید
0 امتیاز
2 پاسخ 1.1هزار بازدید
0 امتیاز
1 پاسخ 494 بازدید
0 امتیاز
0 پاسخ 424 بازدید
0 امتیاز
1 پاسخ 483 بازدید
0 امتیاز
0 پاسخ 427 بازدید
+1 امتیاز
0 پاسخ 487 بازدید
...