الرئيسية
سجل الزوار
القائمة البريدية
راسلنا
خريطة الموقع
جديد الصور
جديد البطاقات
جديد الصوتيات
المتواجدون الآن
تغذيات RSS
2012-08-09 01:25
السلسلة : تطوير تطبيقات الويب
المستوى : متوسط-متقدم
الدرس : 3
===================================
السلام عليكم و رحمة الله و بركاته
اليوم سوف نكتب أول سيرفلت و نقوم بتنفيذها إن شاء الله و نتعرف أيضا على الأجزاء الرئيسية في السيرفلت .
بسم الله
ال Servlet مثلها مثل أي شئ في الجافا عبارة عن كائن يتم تنفيذها داخل السيرفر و هي تقوم باستلام طلبات (Requests) من الزبون و ارسال ردود (Response) هذا الكائن يتنمي إلى الكلاس GenericServlet .
يمكنك استخدام هذه السيرفلت لتطوير و تحسين أي نوع من المزودات التي تعتمد اسلوب الطلب و الرد و إضافة و ظائف جديدة لها سواء كانت هذه المزودات مزودات بريد أو ftp أو غيرها و ليس مزود ويب فقط
و بحكم أن أغلب التطبيقات عبارة عن تطبيقات ويب فيوجد هناك كائن آخر يسمى HttpServlet مستمد من GenericServlet يستلم طلبات HttpServletRequest مستمدة من Request و ترسل رد HttpServletResponse مستمد من Response ،
وهذا النوع من السيرفلت هو الذي سنتكلم عنه في هذه السلسلة.
مثال لـ HttpServlet
======================
لتجربة المثال السابق احفظ الملف باسم HelloWorld.java وقم بتخزينه في c: omcatclasses حوّل (Compile) الملف إلى class. قم بتشغيل التومكات (مهم: بعد تحويل الملف) ثم اكتب العنوان التالي داخل المتصفح :
http://localhost:8080/servlet/Helloworld
شرح المثال
============
إذا أردنا أن نكتب سيرفلت فكل ما علينا أن نفعله هو استمداد extends (إذا تعرف ترجمة أفضل فأخبرنا) للكلاس HttpServlet
كما يجب أن نضيف جزء الاستثناءات Exceptions كما في المثال السابق.
تتكون الـ HttpServlet من طريقتين أساسيتين doGet و doPost تستلم الأولى طلبات GET و الأخرى POST حسب الطريقة المحددة في استمارة Form ال HTML ، بالتحديد الخيار method مثال على ذلك :
<form action="some_path_name/servlet/myServlet" methode="Post">
في هذا المثال في حالة تنفيذ الفورم سيتم استدعاء الطريقة doPost للسيرفلت myServlet الموجودة في some_path_name
كل طريقة من الاثنتين تأخذ HttpServletRequest و HttpServletResonse . يحتوي HttpServletRequest على
جميع المعلومات المرتبطة بالطلب الذي تم استلامه مثل نوع المتصفح
أما HttpServletResponse فيحتوى على عدد كبير من الامكانيات التي تمكننا من التحكم في الرد و محتواه مثل ContentType أو Http Headers و أشياء أخرى كثيرة .
في هذا المثال استخدمنا الطريقة getWriter من HttpResponse لفتح قناة اخراج output بين الرد HttpServletResponse و PrintWriter . وهذه هي الطريقة القياسية لاعادة نص (غالبا html) للمتصفح بعد أن أنهي العمليات المطلوبة من السيرفلت.
لنقوم بتعديل المثال السابق حتى نعيد المخرجات منسقة بال HTML
ملاحظة : إقرأ الملاحظات العربية بالعكس !!!
دورة حياة الـ HttpServlet
===================
1- تحميل الـ Servlet
عند تحميل السيرفلت في الذاكرة لتصبح جاهزة لاستقبال الطلبات ، يقوم المزود باستدعاء هذه الطريقة آليا :
public void init() throws ServletException
تستدعى مرة واحدة فقط و ليس عند كل طلب ، استخدم هذه الطريقة لوضع الكود الذي تحتاج تنفيذه عند المرة الأولى فقط ، مثل تحميل اعدادت التطبيق أو فتح خطوط اتصال مع قواعد البيانات
2- عند وصول الطلب HttpServletRequest
في كل مرة يصل طلب للسيرفلت يتم استدعاء هذه الطريقة :
public void service(HttpServletRequest,
HttpServletResponse) throws ServletException, IOException
وتقوم هي بتالي باستدعاء doGet, doPost حسب الطريقة المحددة في الـ Form method لمزيد من المعلومات يمكنك الاطلاع على دروس الـ HTML في الموسوعة .
لا تغير هذه الطريقة ابدا
4- doGet و doPost
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
يتم تنفيذ احدى الطرقتين السابقتين بعد طريقة service حسب نوع الـطلب القادم من المتصفح GET أو POST
5- destory
public void destroy()
يتم استدعاء هذه الطريقة مباشرة قبل ازالة السيرفلت من الذاكرة . و لا يتم استدعاءها بعد كل طلب
|
|
خدمات المحتوى
|
تقييم
|
|
|
Powered by Dimofinf cms Version 3.0.0
Copyright© Dimensions Of Information Inc.