دورة حياة Servlet في Java: الطرق والهندسة المعمارية والمقارنة والإعداد

نشرت: 2021-03-03

جدول المحتويات

مقدمة

تنتج Servlets طريقة لا تعتمد فقط على المكونات ولا تعتمد على النظام الأساسي ولكنها أيضًا داعمة جدًا لبناء التطبيقات المستندة إلى الويب. تمتلك Servlets حق الوصول إلى Java APIs و JDBC API للوصول إلى قواعد البيانات. في حالة Java Servlets ، على الرغم من عدم وجود قيود من حيث أداء برنامج CGI (واجهة البوابة المشتركة) ، لا تزال هناك بعض العيوب.

ما هو Servlet؟

Servlet هي تقنية مفيدة جدًا لإنشاء صفحات ويب ديناميكية. يعمل كطبقة وسيطة بين متصفح الويب وعملاء أو خوادم HTTP. بمساعدة servlets ، في البداية ، نجمع المدخلات من المستخدمين ثم ننشئ صفحات الويب ديناميكيًا. يقوم Servlet بتوسيع إمكانيات الخوادم والتطبيقات المضيفة. تعمل Servlets على توسيع إمكانيات الخوادم وتستجيب أيضًا لأي نوع من الطلبات للمستخدمين.

مصدر

CGI مقابل Servlets

قبل servlets ، تم استخدام CGI على نطاق واسع. CGI هي طريقة لتمرير الطلب المستلم من المستخدم إلى برنامج التطبيق. على الرغم من أن CGI هي طريقة لخادم الويب ، إلا أنها تحصل أيضًا على استجابة من المتصفح (العميل). عندما يطلب المستخدم صفحة ويب إلى المتصفح ، يرسلها الخادم إليه مرة أخرى.

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

طرق دورة حياة Servlet باختصار

هناك ثلاث طرق أساسية لدورة حياة servlet ، والتي يمكن أن نصفها على النحو التالي:

  1. فيه()
  2. الخدمات()
  3. هدم()

مصدر

هندسة Servlet

  • أولاً ، يقرأ البيانات المرسلة من قبل العملاء. بعد ذلك ، يقوم بإدراج نموذج HTML في صفحة ويب ثم يرسل الطلبات المرسلة من قبل العملاء.
  • بعد ذلك ، تقوم servlet بمعالجة البيانات والاتصال بنظام إدارة قاعدة البيانات ، وتنفيذ RMI عن طريق استدعاء خدمات الويب.
  • بعد المعالجة ، يمكن إرسال المستندات بتنسيقات نصية و gif.
  • أخيرًا ، يرسل HTTP إلى العميل.

مصدر

الآن سنناقش هذه الأساليب بالتفصيل

1. init ()

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

يتم إعطاء صيغة طريقة init () على النحو التالي:

تؤدي init العامة الباطلة (ServletConfig config) إلى طرح ServletException {

// كود التهيئة

}

2. الخدمة ()

عندما يتلقى servlet الطلب ، تستدعي حاوية الويب طريقة service ().

  • لجمع البيانات المطلوبة ب
  • y العميل ، يتم استخدام كائن طلب الخدمة .
  • لإنشاء محتوى الإخراج ، يتم استخدام كائن ServletResponse.

يتم تقديم طريقة توقيع الخدمة () على النحو التالي:

خدمة عامة باطلة (طلب ServletRequest ، استجابة ServletREsponse)

يرمي ServletEXception و IOException {

// طلب رمز التعامل

}

تستخدم طريقة الخدمة () doGet و doPost و doPut و doDelete والعديد من الطرق الأخرى.

3. تدمير ()

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

توقيع طريقة إتلاف () هو

تدمير الفراغ العام () {

// كود الإنهاء

}

اقرأ أيضًا: Servlet vs JSP

إعداد البيئة من Servlet

لإنشاء تطبيق Servlet ، في البداية ، نحتاج إلى اتباع بعض الخطوات مثل تثبيت Tomcat Server ، والذي تم وصفه أدناه-

1. إنشاء هيكل الدليل

مصدر

أولاً ، نحتاج إلى إنشاء بنية الدليل أعلاه داخل دليل يسمى دليل Apache - Tomcat \ webapps. نحتاج إلى الاحتفاظ بجميع ملفات HTML الثابتة والصور ضمن تطبيق الويب لإنشاء مجلد. يجب حفظ servlets في حافظة الفئة. أخيرًا ، يجب أن يكون ملف web.xml ضمن مجلد WEB-INF.

2. إنشاء Servlet

هناك ثلاث طرق مختلفة يمكننا من خلالها إنشاء servlet.

  1. من خلال تنفيذ واجهة Servlet.
  2. بتوسيع فئة GenericServlet.
  3. من الضروري تمديد فئة HTTP servlet.

يمكن تشكيل servlet بشكل أساسي إذا كان بإمكاننا تمديد فئة الملخص httpServlet.

3. تجميع Servlet

لتجميع servlet ، مطلوب ملف JAR -

  1. عن طريق تحديد مسار الفصل.
  2. عن طريق لصق الجرة في مجلد JRE / lib / ext.

4. تكوين واصف النشر

يمكن تعريف DD على أنه ملف XML يتم استخدامه بواسطة الخوادم المستندة إلى الويب بحيث

يمكنهم تشغيل servlets بسهولة. يستخدم DD لعدة أغراض مهمة.

  1. من خلال تعيين عنوان URL لفئة Servlet.
  2. عن طريق تهيئة المعلمات.
  3. من خلال تحديد صفحة الخطأ.
  4. من خلال الأدوار الأمنية.
  5. بالتصريح عن مكتبات العلامات.

5. ابدأ الخادم

لبدء تشغيل خادم Apache Tomcat ، نحتاج إلى النقر نقرًا مزدوجًا فوق ملف startup.bat ضمن دليل apache-tomcat / bin ، وسيبدأ العمل.

6. بدء تشغيل خادم Tomcat لأول مرة

لبدء تشغيل Tomcat Server لأول مرة ، نحتاج إلى ضبط JAVA_HOME في متغير البيئة. الخطوات التالية مذكورة أدناه. انقر بزر الماوس الأيمن على جهاز الكمبيوتر الخاص بي ، وسنحتاج إلى الانتقال إلى الخصائص .

مصدر

  1. بعد ذلك ، سوف ننتقل إلى علامة التبويب " خيارات متقدمة " ، وسنحتاج إلى النقر فوق الزر "متغيرات البيئة " .

مصدر

  1. لذلك ، سوف نضغط على زر جديد وندخل JAVA_HOME داخل حقل نص اسم المتغير ومسار JDK داخل حقل نص قيمة المتغير. بعد ذلك ، نحتاج إلى حفظه بالنقر فوق "موافق".

مصدر

7. تشغيل تطبيق Servlet

عندما نقوم بتشغيل زر servlet ، سيبدو -

بعد فتح المتصفح ، نحتاج إلى كتابة http: localhost: 8080 / First / hello

الدفع: راتب مطور Java في الهند

واجهة طلب Servlet

تهدف ServletRequest إلى تزويد العميل بقطع أصلية من المعلومات حول servlet ذلك

يتضمن نوع المحتوى والطول وقيم المعلمات وغير ذلك الكثير.

طرق

1. getAttribute (سلسلة)

لعرض قيمة السمات على النحو المطلوب ، في حالة عدم وجود السمات

ثم ترجع NULL.

2. getAttributeNames ()

تقوم بإرجاع أسماء السمات الحالية التي يطلبها العملاء.

3. getCharacterEncoding ()

ترجع مجموعة من الشخصيات.

4. getContentLength ()

إرجاع حجم كيان البيانات المطلوب .

5. getContentType ()

في البداية ، يطلب هوية الكائن. إذا لم يتم العثور عليها ، فإنها ترجع قيمة NULL.

6. getInputStream ()

تُرجع دفقًا ثنائيًا من البيانات التي يتلقاها العميل ثم تُرجع السلاسل.

7. getParameter (سلسلة)

ترجع سلسلة من المعلمات.

8. getParameterNames ()

تقوم بإرجاع أسماء المعلمات.

9. getParameterValues ​​(سلسلة)

تقوم بإرجاع قيم المعلمات. توجد دائمًا في شكل سلسلة.

10. getProtocol ()

تقوم بإرجاع البروتوكول والإصدار بالشكل <بروتوكول> / <إصدار رئيسي>. <إصدار ثانوي>.

11. getReader ()

تقوم بإرجاع قارئ مخزّن لقراءة النص في نص الطلب.

12. getRealPath (سلسلة)

يتجنب المسار الافتراضي ويعيد المسار الحقيقي.

13. getRemoteAddr ()

تقوم بإرجاع عنوان IP.

14. getRemoteHost ()

تقوم بإرجاع اسم المضيف المنظم بالكامل للوكيل.

15. getScheme ()

تقوم بإرجاع عنوان URL المستخدم في الطلب.

16. getServerName ()

تقوم بإرجاع اسم مضيف الخادم.

17. getServerPort ()

تقوم بإرجاع رقم المنفذ.

18. setAttribute (سلسلة ، كائن)

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

استجابة Servlet

يستدعي ServletResponse كائنًا ، ويتم تسجيل استجابة العديد من المستخدمين. حاوية الويب مسؤولة عن كل هذه الأنشطة. خطوة إنشاء هذا مهمة للغاية. الخطوة هي إنشاء كائن.

الآن دعونا نتحدث عن ServletConfig و ServletContext أدناه بالتفصيل.

ServletConfig

1. تقوم حاوية الويب بإنشاء كائن التكوين بناءً على معلمات التهيئة.

2. يجب أن يكون ServletConfig واحدًا لكل Servlet.

طرق

1. يساوي (كائن)

يتحقق مما إذا كان الكائن الحالي له قيمة مساوية للكائن المحدد.

2. GetHashCode ()

يعمل كوظيفة التجزئة الافتراضية.

3. GetType ()

ترجع نوع المثيل الحالي.

4. MemberwiseClone ()

إذا استدعينا هذا الكائن ، فيمكن إنشاء نسخة ضحلة. يشير إلى الكائن الحالي بشكل افتراضي .

5. ToString ()

إرجاع سلسلة تمثل الكائن الحالي.

ServletContext

دعونا نناقش ServletContext أدناه:

  1. من الضروري جدًا إتاحة الوصول إلى الكائن المرجعي لكل Servlet من تطبيق الويب.
  2. الكائن المرجعي هو في الواقع تنفيذ وقت التشغيل لهذه.

يمكن تعريف نوعي servlets على النحو التالي:

1. سرفليتس عامة

نشير إلى servlets العامة على أنها مستقلة عن البروتوكولات ، وأيضًا ، من الضروري استدعاؤها عن طريق التجاوز. يمكننا استدعاء servlets العامة بثلاث طرق -

  • ملف HTML

يمكننا إنشاء ملف HTML غير معقد للغاية يمكن أن يبدو مثل WebContent / index.html.

  • ملف فئة جافا

يمكن تكوين servlet عام بتوسيع فئة GenericServlet. إذا تمكنا من إنشاء ملف فصل دراسي جديد بسيط ، فيمكننا إعادة تسميته كملف عام. يشبه مسار الملف: / javaResouces / src / default package / generic.java.

  • ملف XML

يمكننا العثور على هذا الملف في المسار WebContent / WEB-INF / web.xml. يمكننا تعيين servlet بعنوان URL محدد.

2. HTTP servlet

هذا النوع من servlets ليس سوى امتداد لفئات Servlet. على الرغم من أنه يعتمد على HTTP ، إلا أنه يحدد بعض القواعد التي تساعد متصفح الويب والخوادم على الاتصال ، ويمكن أيضًا لـ HTTP servlet تجاوز طرق doGet () أو doPost (). أيضًا ، يمكنه تجاوز كلتا الطريقتين.

مزايا Servlets

الآن دعونا نرى بعض مزايا servlets -

  1. أداء رائع.
  2. يمكن تنفيذ Servlets داخل مساحة عنوان الخادم. نتيجة لذلك ، يمكننا القول أنه ليس من الضروري إنشاء مساحة عنوان منفصلة للتعامل مع طلب العميل.
  3. فهي مستقلة عن النظام الأساسي وقائمة على المكونات بشكل أساسي.
  4. يتم تأمين Servlets لأن مدير الأمان يضع بعض القيود لحماية الموارد والبيانات.
  5. أثناء العمل ، لا يحتاج المستخدمون إلى القلق بشأن تحرير الذاكرة كأسلوب لتخصيص البيانات غير المرغوب فيها.
  6. توفر Servlets وظائف كاملة حيث تتوفر جميع المكتبات. يمكنه التواصل بسهولة مع التطبيقات الصغيرة والآليات الأخرى.

مصدر

مساوئ Servlets

تتم مناقشة قيود servlets على النحو التالي -

  1. يمكن تحميل servlet واحد فقط في JVM في المرة الواحدة. لذلك ، يمكننا القول أن الأمر مهم بشأن عدد الطلبات.
  2. عندما يكون هناك طلب ، يمكن أن يكون هناك موضوع فقط. لا توجد عملية يجب أن تكون موجودة هناك.
  3. تصميم servlet مكلف ، وأحيانًا يكون مشكلة كبيرة.
  4. نحتاج إلى إعدادات أخرى في المتصفح مثل JRE (Java Runtime Environment) على الخادم لتشغيل servlets.

اقرأ أيضًا: أفكار وموضوعات مشروع Java

تعلم دورات البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

خاتمة

في هذا العصر الحديث من العالم الرقمي ، أصبحت التكنولوجيا والإنترنت القوة الدافعة للجميع. الإنترنت مضطرب. في كل ثانية ، يكون مشغولاً بنقل كميات كبيرة من البيانات.

ولكن بسبب النقل الجماعي للبيانات ، يتباطأ الإنترنت ، حيث نحتاج إلى السرعة أيضًا. لذلك ، يتم إنشاء المواقع الديناميكية بواسطة مطوري البرامج. يتم تغيير هذه المواقع وتحديثها في كل لحظة. لمعرفة المزيد عن Servlets في Java والتطوير ، تحقق من upGrad's Executive PG Program in Full-stack Software Development وابدأ رحلتك.

الدافع الرئيسي لهذه المقالة هو تزويد القراء بمفهوم أساسي عن servlets حتى يتمكنوا من الحصول على فكرة أساسية حول servlets.

انطلق في وظيفة أحلامك

تقدم الآن لبرنامج Executive PG في Full Stack Development