س/ ما هي أل JSP؟ ج/ هي لغة برمجة معتمده على الجافا تمكننا من كتابة صفحات ويب ديناميكية.
اللغة من تطوير شركة صن لتعمل على جهة الخادم أي أنها Server-side وهي ببساطة عبارة عن tags تكتب داخل لغة HTML وهي بسيطة التعلم جدا خصوصا من كان لدية معرفة بمفهوم الويب ( HTTP).
س/ هل يجب أن يكون لدي علم بال جافا لكي أستطيع تعلم JSP؟ ج/ لا أخفيكم سرا أن شركة صن تسعى جاهدة لنفي ذلك وذلك من خلال تطويرها للنسخة الثانية من اللغة أو ما تسمى Expression Language(JSP EL) والذي تسعى من خلاله الشركة لعدم تضمين كود الجافا داخل لغة JSP لتمكين من ليس عندهم دراية بلغة الجافا بكتابة صفحات أل JSP بدون الحاجة لان يكون لدى الشخص معرفة بال جافا ولكن فقط باستخدام أل JSP EL ولكن بالطبع يجب أن يكون لديك معرفة بالجافا عندما يكون التطبيق كبير أو متوسط ولكن تستطيع بناء تطبيق بسيط بدون الحاجة لتعلم الجافا وذلك من خلال JSP EL & JSTL.
س/ما هو JSTL؟ ج/هو اختصار ل JavaServer Pages Standard Tag Library وهو عبارة عن مجموعة من أل tags المعًرفة مسبقا والتي تمكنك من استخدمها في تطبيقك دون الحاجة لمعرفة طريقة كتابتها فهي توفر الوقت والجهد.
س/لماذا أستخدم JSP؟ ج/في الحقيقة أعلم أن هذا السؤال يدور في ذهن الكثير من القراء فلماذا مثلا ما نستخدم لغات تطوير الويب المختلفة والتي ربما تكون أكثر شهرة من أل JSP الجواب على هذا السؤال هو الآتي:
1-عدم الاعتماد على منصة بعينها (Multi Platform).
2-هناك العديد من المكونات المعاد استخدامها أكثر من صفحة JSP ولعل أشهر هذه المكونات (JavaBeans & EJB).
3-الاستفادة من قوة ومزايا الجافا.
4-دعم الكثير من الشركات لها ولعل من أهمها (Apache & Oracle & IBM & Borland) وبالطبع شركة صن ألام التي دائما تحاول تطويرها وتحسينها.
س/كم من الوقت يكفي لتعلم أل JSP؟ ج/طبعا أنصحك أنك تتعلم JSP 2.0 لأنها هي النسخة الأخيرة و بها تغيير في syntax عن النسخة السابقة قليلا.
طبعا صدقني تعلم syntax اللغة ما يأخذ إلا سوى 2-3 ساعات فقط ( بالطبع إذا كانت لديك خليفة سابقة بإحدى لغات الويب) لذلك لن أتكلم فيه نظرا لأنه من الممكن أي يشخص يقراه ويفهمه ببساطه ولكن المهم هو كيفية الكتابة الصحيحة للكود.
مع ظهور الانترنت وانتشاره وخصوصاً في السنوات الخمس الماضية تكرر مصطلح الـ web application
كمنحى اخر للبرمجة وطريق مستقل بدت تتضح فائدة السير فيه .
يجهل البعض ممن لم يتطلعوا على هذا الموضوع الفائدة المرجوة من تحويلهم الى هذا المنهج البرمجي الجديد
وهل المردود العائد منه يفوق الجهد في تعلمه والتخلي عن المنهج القديم في برمجة الـDesktop application ?!!
دعونا نركز هنا على مطورين تطبيقات الاوراكل الذين يستخدمون Developer6i
قد لاتتضح الفائدة جلية في حالة كون التطبيق صغير وفي حالة قلة عدد المستخدمين
ولكن دعونا نتخيل تطبيق يستخدمه اكثر من 50 شخص يتعاملون مع نفس الشاشات التطبيقية للبرنامج
ويستخدمون نفس قاعدة البيانات في نفس الوقت .
كمستخدم لبيئة التطوير Developer6i بعد الانتهاء من تحليل و تصميم الـforms والreports التابعه لها
تنزل developer runtime والـreport runtime في كل جهاز عميل
ثم تقوم بالتعديل في الـregedit لتغيير الـcharset وتحديد الـpath للforms وبنفس الطريقة للـreports path
والـicons بعد ذلك يتم تعريف قاعدة البيانات من جهاز العميل عن طريق sql net_easy confegration حيث تضع فيه قيم الـ IP Address والـ Port لتكوين الـ TNS Name .
لاحظ انك بحاجة هنا للجلوس على كل جهاز عميل ليتهيء ويكون قادراً على تشغيل نظامك وفي حالة سير الامور على مايرام و طرأت لك فكرة تعديل برمجي ولو بسيط على احد الشاشات فلا تنسى ان عليك اعادة توزع ملف الـfmx على جميع الاجهزة العميلة وماذا لوكانت في مواقع متباعده !! .. طبعاً يجب عليك الذهاب لتلك المواقع .
ولو حصلت مشكلة في احد اجهزة المستخدمين ادت على عدم تشغيل البرنامج قد يكون سبها فايروس او مسح احد الملفات بقصد او بدون قصد .. يجب عليك الذهاب ايضاً .
لكن في حالة الـweb applications واقصد هنا تطبيقات الويب الحقيقية من خلال لغات مثل JSP وليست
عن طريق applets او java applications .. كل ماعليك هو اعداد نظامك مره واحدة على جهاز الـserver
ومن ثم اعطاء الـ IP الخاص به للمستخدمين ليتمكنوا من الدخول للنظام عن طريق متصفح الانترنت فقط
مثل Microsoft Internet Explorer او Netscape Navigator .
والذي في حالة عمل format للجهاز بالكامل وتنزيل نظام تشغيل جديد فإن تلك البرامج تنزل تلقائياً
اذاً فليست لديك مشكلة مع اجهزة المستخدمين لنظامك وفي حالة تحديث برنامجك سيتحدث عندهم تلقائياً بدون ادنى جهد
ولا تنسى ايضاً انك لست بحاجة الى اجهزة ذات نظام تشغيل معين فيمكن ان يكون بعضهم يستخدم Linux والبعض
الاخر MacOS او Windows بأقل الموارد من حيث السرعة والذاكرة فهم يتعاملون مع HTML فقط .
هذا الدرس يحتاج منك :
*معرفه بلغه الجافا
*فكره بسيطه عن تقنية ال Servlets ( معذرة لكني لم اجد تعريباً لهذه الكلمه )
مقدمه عن ال (JSP - JavaServer Pages):
الـ جي اس بي هى تقنيه ابتكرتها صن (Sun Microsystems) لتسهيل التعامل مع ال Servlets خاصة اذا كنت تخطط لأن تحتوي الصفحه على قدر كبير من المحتويات الثابته (Static Content) مثل ال HTML.
صفحة ال JSP تحوّل قبل العرض علي العميل (Client) الي Servlet.
لتبدأ التعامل مع ال JSP تحتاج الي Java JDK و ويب سيرفر مثل Apache Tomcat
كود ال JSP يكتب داخل ال HTML تماماً ككود ال ASP.
مثال بسيط من صفحتين:
شيفرة برمجية:
Page1.jsp:
<html dir="rtl">
<body>
<form action="Page2.jsp" method="GET">
<input type="text" name="UserName">
<input type="submit" value="ارسل">
</form>
</body>
</html>
Page2.jsp:
<html>
<body>
مرحبا
<%= request.getParameter("UserName") %>
</body>
</html>
هذا المثال يأخذ اسم المستخدم في صفحه, و يرحب به مستخدماً اسمه في صفحة اخري.