سيرفلت

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث
Life of a JSP file.

سيرفلتس (Servlets) هي عناصر في لغة الجافا البرمجية تقوم بتحويل الطلبات وبناءالإستجابات بفعالية. واجهة البرمجة التطبيقية للجافا سيرفلتJava Servlet API تسمح لمطور الويب بإضافة محتوى فعال إلى خادوم الويب باستخدام قاعدة الجافا. من المألوف ان يكون المحتوى الناتج بصيغة الإتش تي ام ال HTML ولكن قد تكون هناك بيانات أخرى بصيغة اكس ام ال XML. سيرفلتس تقوم مقام الجافا في تقنيات الويب التي لا تحتوي عليها مثل البي اتش بي PHP،سي جي اي CGI واي اس بي نت ASP.NET ويرى البعض انه من السهل ان نصنفها كجافا سكريبت (وينبغي عدم الخلط بينها وبين النصوص البرمجية للجافا JavaScript) والسيرفلتس تقوم بالحفاظ على الوضع عبر العديد من تعاملات السيرفر وذلك باستخدام الملفات المؤقتة للإتش تي تي بيHTTP ومتغيرات الوضع أو اعادة كتابة العنوان URL.

واجهة البرمجة التطبيقية للجافا سيرفلتJava Servlet API المتوفرة في سلسلة حزمة الجافا تقدم تعريف للتفاعلات المتوقعة لما يحتويه الويب والسرفلت servlet. حيث ان ما يحتويه صندوق الويب (الشبكة العالمية) هو أساساً مايتكون منه الويب سيرفر الذي يتفاعل مع السيرفلتس. وصندوق الويب بكل ما يحتويه هو المسؤول عن إدارة عمل السيرفلتس، ورسم خرائط لعناوين المواقع في سرفلت servlet خاص والتأكد من أن الطالب للعنوان لديه حق للسماح له بالوصول اليه.

قالب:Javadoc:EE هو العنصر الذي يتلقى الطلب ويقوم بتوفير الاستجابة بناء على الطلب. وتعمل الحزمة الأساسية للسيرفلت على تحديد عناصر الجافا التي تقدم طلبات واستجابات السيرفلت، وكذلك عناصر أخرى لتعكس تكوين السيرفلت المعلمي وطريقة تطبيق بيئتها. حزمة قالب:Javadoc:EE تحدد الإتش تي تي بي HTTP - كأقسام فرعية محددة من عناصر السيرفلت العامة، بمافي ذلك من عناصر الجهة المسؤولة عن تعقب الطالبات والاستجابات المتعددة بين الويب سيرفر والعميل. والسيرفلتس قد تكون محفوظة في ملف WAR كتطبيق ويب.

السيرفلتس يمكن أن تنتج تلقائيا من صفحات الجافا سيرفر البرمجي، أو بالتناوب تستخدم محركات قوالب مثل WebMacro اوأباتشي لإنتاج أتش تي أم أل HTML. السيرفلتس غالبا ما تستخدم جنبا إلى جنب مع الجي اس بي اس JSPs في نمط يسمى "النموذج 2"، وهو صفة مميزة من نموذج عرض للتحكم.

التاريخ[عدل]

ان مجموعة السيرفلت الكاملة قد تم إنشاؤها بواسطة شركة صن مايكروسيستمزSun Microsystems، مع الإصدار 1.0 مع وضع اللمسات الأخيرة في حزيران / يونيو 1997. وبدءاً من الإصدار 2.3، تم تطوير السيرفلت تحت مجموعة الجافاالموحدة. جي اس ار JSR 53 تُحدد كل من السيرفلت 2.3 ومواصفات صفحة الجافا سيرفر 1.2. جي اس ار 154 JSR تُحدد مواصفات السيرفلتس 2.4 و 2.5. واعتبارا من مايو 10، 2006، الإصدار الحالي من مجموعة السيرفلت هو 2.5.

وفي مدونته على الجافا نت، واصل Sun veteran و GlassFish تفاصيل Jim Driscoll عن تاريخ تكنولوجيا السيرفلت. James Gosling قد بدأ في التفكير في السيرفلت منذ بدايات الجافا، ولكن المفهوم لم يتحول إلى إنتاج حتى قام Sun بشحن إنتاج الجافا ويب سيرفر. وقد كان هذا قبل ما يعرف الآن بقاعدة الجافا ،حيث أصبحت منشورة كمجموعة مخصصة.

تاريخ اي بي اي سيرفلت API history
اصدار اي بي اي سيرفلت Servlet API تاريخ الإصدار نظام تشغيل شركة Google تغييرات هامة
سيرفلت 3.0 يناير 2009 JavaEE 6، JavaSE 6 قابلية التدوين، سهولة التطوير، توفر الأمن.
سيرفلت 2.5 سبتمبر 2005 JavaEE 5، JavaSE 5 يتطلب JavaSE 5، تدعم الشروحات
سيرفلت 2.4 نوفمبر 2003 J2EE 1.4، J2SE 1.3 Web.xml يستخدم مخطط XML
سيرفلت 2.3 أغسطس 2001 J2EE 1.3، J2SE 1.2 إضافة Filter
سيرفلت 2.2 أغسطس 1999 J2EE 1.2، J2SE 1.2 أصبح جزءا من J2EE، أدخلت عليه تطبيقات الويب المستقلة. ملفات war
سيرفلت 2.1 نوفمبر 1998 غير محدد المجموعة الرسمية الأولى، وتم إضافة RequestDispatcher، ServletContext
سيرفلت 2.0 JDK 1.1 تطوير جزء من الجافا سيرفلت Kit 2.0
سيرفلت 1.0 يونيو 1997

دائرة عمل السيرفلت[عدل]

دائرة عمل السيرفلت تتكون من الخطوات التالية :

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

هنا سيرفلت مبسطة تقوم يإنتاج HTML فقط. علما بأن HttpServlet هي فئة فرعية من GenericServlet، كتطبيق لواجهة السيرفلت. نظام The service() يقوم بإرسال الطلبات إلى أنظمة doGet(), doPost(), doPut(), doDelete(), تبعاً لطلب الإتش تي تي بي HTTP.

import java.io.IOException;
import java.io.PrintWriter;
import javax.servletServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class HelloWorld extends HttpServlet { 
   public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      PrintWriter out = response.getWriter();
      out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                  "Transitional//EN\">\n" +
                  "<html>\n" +
                  "<head><title>Hello WWW</title></head>\n" + 
                  "<body>\n" + 
                  "<h1>مرحبا شبكة الاتصالات العالمية</h1>\n" + 
                  "</body></html>");
   }
}

وصلات خارجية[عدل]