سؤال

أشعر بالارتباك قليلاً هنا.في تطبيقنا لدينا عدد قليل من السيرفلتس المحددة.هنا مقتطف من web.xml لأحد السيرفلت:

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-class>com.foo.framework.axis2.http.FrameworkServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
</servlet> 

حسب فهمي لقيمة <load-on-startup> يجب أن يكون عددًا صحيحًا موجبًا حتى يتم تحميله تلقائيًا.لقد بحثت في جوجل ولكن الردود التي عثرت عليها زادت من حيرتي.

هل كانت مفيدة؟

المحلول

الراتنج 3.0 وثائق هذا السلوك:

<اقتباس فقرة>   

وحمل على اساس بدء التشغيل يمكن تحديد (اختياري) قيمة عددية. إذا كانت القيمة 0 أو أكبر،   فهو يشير إلى أمر السيرفلتس ليتم تحميلها، السيرفلتس مع ارتفاع أعداد الحصول على   تحميل بعد السيرفلتس مع أرقام أقل.

JSP 3.1 المواصفات (JSR 340) يقول هذا على الصفحة 14-160 :

<اقتباس فقرة>   

ووload-on-startup عنصر يشير إلى أن هذا بريمج يجب أن يتم تحميل (مثيل   ويكون لها   الحرف الأول () يسمى) على بدء تشغيل تطبيق ويب. محتوى عنصر من هذه   يجب أن يكون العنصر عدد صحيح يشير إلى الترتيب الذي يجب أن يكون بريمج   محمل. إذا كانت قيمة عدد صحيح سلبي، أو العنصر غير موجودة، و   حاوية حرة لتحميل بريمج متى تشاء. إذا كانت قيمة إيجابية   صحيح أو 0، يجب أن الحاوية تحميل وتهيئة بريمج مثل التطبيق هو   نشر. الحاوية يجب أن تضمن أن السيرفلتس ملحوظ مع الأعداد الصحيحة أقل   يتم تحميلها قبل السيرفلتس ملحوظ مع الأعداد الصحيحة أعلى. قد يختار الحاوية   ترتيب تحميل السيرفلتس مع القيمة load-on-startup نفسها.

وربما كنت تريد أن تحقق ليس فقط JSR، ولكن أيضا وثائق الحاويات الويب الخاص بك. قد تكون هناك اختلافات

نصائح أخرى

اجابة قصيرة:القيمة >= 0 تعني أنه تم تحميل servlet عند نشر تطبيق الويب أو عند بدء تشغيل الخادم.القيمة <0 :يتم تحميل servlet عندما تشعر الحاوية بذلك.

اجابة طويلة (من المواصفات):

يشير عنصر التحميل على أنه يجب تحميل هذا servlet (تم إنشاء مثيل له واتصاله () init ()) في بدء تشغيل تطبيق الويب.يجب أن تكون المحتويات الاختيارية لهذه العنصر عبارة عن عدد صحيح يشير إلى الترتيب الذي يجب أن يتم فيه تحميل servlet.إذا كانت القيمة عددًا صحيحًا سلبيًا ، أو غير موجود ، تكون الحاوية مجانية لتحميل Servlet كلما اختارت.إذا كانت القيمة عبارة عن عدد صحيح موجب 128 أو 0 ، فيجب تحميل الحاوية وتهيئة servlet عند نشر التطبيق.يجب أن تضمن الحاوية أن يتم تحميل Servlets ذات العدوى المنخفضة قبل أن يتم وضع علامة على أعداد صحيحة أعلى.قد تختار الحاوية ترتيب تحميل servlets بنفس قيمة التحميل.

وهذا يشير إلى أن بريمج لن يتم البدء حتى يحاول طلب للوصول إليه.

إذا حمل على اساس بدء تشغيل أكبر من أو تساوي الصفر ثم عندما تبدأ الحاويات انها ستبدأ أن بريمج في ترتيب تصاعدي من الحمل على قيمة بدء التشغيل كنت وضعت هناك (أي 0، 1 ثم 2 ثم 5 ثم 10 و هكذا).

دورة حياة السيرفلت

يتم التحكم في دورة حياة servlet بواسطة الحاوية التي تم نشر servlet فيها.عندما يتم تعيين طلب إلى servlet، تقوم الحاوية بتنفيذ الخطوات التالية.

  1. في حالة عدم وجود مثيل لـ servlet، فإن حاوية الويب:

    أ. تحميل فئة servlet

    ب. إنشاء مثيل لفئة servlet

    ج. تهيئة مثيل servlet عن طريق استدعاء أسلوب init (يتم تناول التهيئة في إنشاء وتهيئة Servlet)

  2. تستدعي الحاوية طريقة الخدمة، وتمرر كائنات الطلب والاستجابة.تتم مناقشة طرق الخدمة في طرق خدمة الكتابة.

قيمة 0 على load-on-startup يعني أنه يتم تنفيذ النقطة 1 عندما يأتي طلب إلى هذا الخادم.تعني القيم الأخرى أنه يتم تنفيذ النقطة 1 عند بدء تشغيل الحاوية.

وكما ورد في إجابة أخرى وهذا href="http://javarevisited.blogspot.com/2011/12/load-on-startup-servlet-webxml-example.html" المادة -on-بدء التشغيل الصفر مقبولة وفي الغائب من أي بريمج آخرين هذا سيأخذ الأولوية على التحميل وتحميل أثناء النشر. الاستخدام الأمثل للتحميل على statup هو تحميل السيرفلتس الذي يستغرق وقتا أطول لتهيئة جيدا قبل الطلب الأول تأتي مثل السيرفلتس مما يخلق تجمع الاتصال أو إجراء مكالمة الشبكة أو عقد الموارد الضخمة، وهذا من شأنه أن يقلل وقت الاستجابة لطلب القليلة الأولى.

  1. إذا كانت القيمة هي نفسها بالنسبة لاثنين من servlet، فسيتم تحميلهما بالترتيب الذي تم الإعلان عنه داخل ملف web.xml.
  2. إذا كان 0 أو عددًا صحيحًا سالبًا، فسيتم تحميل Servlet عندما تشعر الحاوية بتحميلها.
  3. يضمن التحميل والتهيئة والاتصال بأسلوب init() الخاص بـ servlet بواسطة حاوية الويب.
  4. إذا لم يكن هناك عنصر لأي servlet فسيتم تحميله عندما تقرر حاوية الويب تحميله.

ونعم يمكن أن يكون لها نفس القيمة .... سبب إعطاء أرقام للتحميل على اساس بدء التشغيل لتحديد تسلسل لخادم لتحميل كل بريمج. سوف بريمج مع 0 قيمة الحمولة على اساس بدء تحميل أول وبريمج مع قيمة 1 سيتم تحميل بعد ذلك.

وإذا كان اثنان السيرفلتس سيكون لها نفس القيمة للتحميل على اساس بدء التشغيل من سيتم تحميله كيف يتم الإعلان عنها في web.xml من أعلى إلى أسفل. بريمج الذي يأتي أولا في web.xml سيتم تحميل الأول والآخر سيتم تحميلها بعد ذلك.

-> (عدم وجود الحمل على اساس البدء) العلامة أولا وقبل كل شيء عندما يتم نشرها بريمج من أي وقت مضى في الخادم، وتقع على عاتق من الخادم إلى بإنشاء الكائن بريمج.    على سبيل المثال: يتم نشرها بريمج افترض في الخادم، (كائن بريمج غير متوفر في الخادم) يرسل العميل الطلب إلى بريمج لأول مرة ثم الخادم بإنشاء كائن بريمج مع مساعدة من منشئ افتراضي ويدعو فورا الحرف الأول (). من هذا عندما يرسل العميل من أي وقت مضى على طلب وإلا أسلوب خدمة الحصول على تنفيذها وجوه متاح بالفعل

وإذا تم استخدام التحميل على بدء العلامة في اصف نشر:    وفي الوقت نفسه نشر الخادم بإنشاء كائن بريمج لالسيرفلتس على أساس القيمة الإيجابية الواردة في بين العلامات. وخلق الأشياء للطبقات بريمج متابعة 0-128  سيتم إنشاء 0 عدد بريمج أولا وتليها أعداد أخرى.

إذا نحن نقدم نفس القيمة لمدة السيرفلتس في web.xml ثم سيتم إنشاء كائنات على أساس الموقف من الطبقات في web.xml يختلف أيضا من خادم إلى خادم.

إذا نحن نقدم قيمة سالبة بين الحمل على بدء العلامة ثم الخادم لن تخلق الكائن بريمج.

سيناريوهات أخرى حيث يخلق الخادم الكائن لبريمج.

إذا نحن لا تستخدم الحمل على بدء العلامة في web.xml، ثم يتم نشرها المشروع أي وقت مضى عندما يرسل العميل طلب لخادم أول مرة بإنشاء الكائن والخادم هو المسؤول عن استدعاء الأساليب دورة حياتها. ثم إذا تم تعديلها ل. الطبقة في الخادم (هر). مرة أخرى يرسل العميل سوف يتم إنشاء طلب بريمج تعديل ولكن في حالة كائن جديد القط والخادم الاستفادة من كائن موجود ما لم يأخذ إعادة تشغيل الخادم مكان. ولكن في فئة من على شبكة الانترنت لمنطق عند تعديل ملف. الطبقة من أي وقت مضى في الخادم مع من إعادة تشغيل الملقم إذا تلقت طلبا ثم الخادم استدعاء الأسلوب تدمير على بريمج القائمة وبإنشاء كائن بريمج الجديد ويدعو الحرف الأول () لinitilization لها .

إذا كانت القيمة <0، يتم إنشاء مثيل serlet عندما يأتي الطلب، وإلا> = 0 الحاوية سيتم تحميل بالترتيب المتزايد للقيم. إذا كانت 2 أو أكثر من السيرفلتس نفس القيمة، ثم أمر من السيرفلتس أعلن في web.xml.

وحاوية بريمج بتحميل بريمج أثناء بدء التشغيل أو عندما يتم الطلب الأول. التحميل من بريمج يعتمد على سمة "الحمل على اساس بدء التشغيل" في ملف "web.xml". إذا كانت السمة لديها عدد صحيح موجب (0-128) ثم بريمج هو الحمل مع تحميل الحاوية وإلا فإنه يقوم بتحميل عندما يأتي الطلب الأول للخدمة.

وعندما يتم تحميل بريمج مرة واحدة تحصل عليه طلب ومن ثم دعا "تحميل كسول".

وانها بسيطة كما لا تتوقع ذلك.

إذا كانت القيمة الإيجابية التي تحميلها عند بدء حاوية

إذا لم تكن القيمة الإيجابية من يتم تحميل servelet عند تقديم الطلب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top