الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن اعادة كتابة الميتود init() في servlet

بدأه tilmid02 في 22 ديسمبر 2011 · 2 رد · 602 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

انا جديد في ميدان j2ee

عند اطلاعي على دروس ال sevlet

السيرفر يقوم بانشاء الكائن و يستدعي الميتود init() لكي تصبح سيرفليت

+هل يمكن عمل overriding لهذه الدالة؟ و اذا نعم .. لاني شفت في بعض المواقع يقولون انك تقدر تعيد كتابتها .. طيب اذا اعدنا تعريفها .. كيف ممكن للسيرفر ان يقوم بتجهيز السيرفليت و ما الى ذلك .. مادام يستدعيها هذه الميتود.. و اذا اعدنا كتابتها فاننا نغطي على ما كان سابقا .. يعني على تجهيز السيرفليت و..

هل فهمي صحيح او لا؟

+ هناك دالتين في السيرفلت .. init() and init(servletconfig) ماهي العلاقة بينهما؟

جزاكم الله خيرا

#2

ما أتذكره في هذه النقطه هو الأتى ....

ال Servlet به دالتان بإسم init ... واحده بمعامل من نوع ServletConfig و الأخري بدون أي معاملات ..

عندما يقوم الحاوي (container) بإنشاء ال Servlet فإنه يقوم بإستدعاء كلاهما ... لكن الأولى التي بمعامل تحتوى على كود تجهيز لل Servlet ..

و أما الثانيه -التي بدون أي معاملات - فهي التى تستطيع عمل Override ليها إذا كنت تريد تنفيذ كودك في بداية خلق ال Servlet .. (و عادة تكون مع أول request يأتى لهذا ال Servlet)

إذا أردت أن تعيد كتابة (Override) للدالة التى بمعاملات ... فإنك يجب عليك إستدعاء الدالة التي بال Super class بأن تستخدم

 super.init(servletConfig)

و لكنى لست متأكد من هذه المعلومه .. و الأفضل و الذي يجب أن تتبعه هو ما جاء في توثيق ال Servlet API (الروابط في الاسفل) و هو أن تعيد تعريف الدالة التى بدون أي معاملات بالشكل التالى:

void init()
{
// you can still access the ServletConfig using getServletConfig()
// your initialization code here ...
}

مراجع:

http://docs.oracle.com/javaee/5/api/javax/servlet/Servlet.html#init%28javax.servlet.ServletConfig%29

http://docs.oracle.com/javaee/5/api/javax/servlet/GenericServlet.html#init%28%29

#3

جزاك الله خيرا

شكرا جزيلا على التوضيح

مواضيع مشابهة