JavaServer Pages JSP – الهيكل

JavaServer Pages

يحتاج خادم الويب إلى محرك JSP، أي حاوية لمعالجة صفحات JSP. حاوية JSP مسؤولة عن اعتراض طلبات صفحات JSP. يستخدم هذا البرنامج التعليمي Apache الذي يحتوي على حاوية JSP مدمجة لدعم تطوير صفحات JSP.

تعمل حاوية JSP مع خادم الويب لتوفير بيئة التشغيل والخدمات الأخرى التي يحتاجها JSP. إنه يعرف كيفية فهم العناصر الخاصة التي تشكل جزءًا من JSPs.

يوضح الرسم البياني التالي موضع حاوية JSP وملفات JSP في تطبيق الويب.

JSP Architecture

معالجة JSP

توضح الخطوات التالية كيفية إنشاء خادم الويب لصفحة الويب باستخدام JSP.
1 – كما هو الحال مع الصفحة العادية، يرسل متصفحك طلب HTTP إلى خادم الويب.
2 – يتعرف خادم الويب على أن طلب HTTP مخصص لصفحة JSP ويعيد توجيهه إلى محرك JSP. ويتم ذلك عن طريق استخدام عنوان URL أو صفحة JSP التي تنتهي بـ .jsp بدلاً من .html.
3 – يقوم محرك JSP بتحميل صفحة JSP من القرص وتحويلها إلى محتوى servlet. يعد هذا التحويل بسيطًا جدًا حيث يتم تحويل كل نص القالب إلى عبارات println() ويتم تحويل جميع عناصر JSP إلى كود Java. ينفذ هذا الرمز السلوك الديناميكي المقابل للصفحة.
4 – يقوم محرك JSP بتجميع servlet في فئة قابلة للتنفيذ وإعادة توجيه الطلب الأصلي إلى محرك servlet.
5 – يقوم جزء من خادم الويب يسمى محرك servlet بتحميل فئة Servlet وتنفيذها. أثناء التنفيذ، ينتج servlet مخرجات بتنسيق HTML. يتم تمرير الإخراج إلى خادم الويب بواسطة محرك servlet داخل استجابة HTTP.
6 – يقوم خادم الويب بإعادة توجيه استجابة HTTP إلى متصفحك فيما يتعلق بمحتوى HTML الثابت.
7 – وأخيرًا، يتعامل متصفح الويب مع صفحة HTML التي تم إنشاؤها ديناميكيًا داخل استجابة HTTP تمامًا كما لو كانت صفحة ثابتة.

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

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

Related posts

JDBC – تطبيق بسيط

JDBC – بناء جملة SQL

JDBC – مقدمة