م الرحمن الرح بسم عن استخدامكون الدرسوم س الbeans ت الـلصفحا ا فJSP ذا الدرس هو به ما سنأخذه: فهم فائدةbeans إنشاءbeans مثالstringBean ئص الـت إلى خصارمترالباد اسنا طرق اbean ركة الـ مشاbeans ء الـ إنشاBean المشروطركة الـ مشاBean فة مع مثال أربع طرق مختل فناقش هذا الدرسةج استراتلثالثة ادراج المحتوىكنام الد ف صفحاتJSP ستخدام الـ باbeans . ذا تستخدم لماBeans ؟ئدة استخدام الـ فا نعرفسؤال ضروري من أجل أن هذا الbean سرفلت كنت بال تعمللمؤكد أنت عندما كنت من ابة أكواد الـ من كتا تسأمHTML ى الـ علعمل فعندما بدأت بالJSP ة ولكن ما زلتلناحذه الراحة من ه قد شعرت باة أكواد برمج تستخدم أكواد الـة داخلت البرمجماتعلة من ال كمل أصبح عندك وبهذا الشكHTML مشكلةذه الحل ه ولءت ال جا ـbean ة بأكوادت البرمجماتعلن بعض الاضة عوف باستع الصفى مبدأ فصلتمد علث تع بحJSP مكنً طبعا أن الـقول الbean ك تستخدم الـ تجعلزاتث م توفر لك ثbean وه: 1 . وص برمجة عدم استخدام نصjava . ة مثل أنشاءمات برمجن تعلاضة عستعمكن ا فأنهً كما أسلفنا سابقا صفحة الـ داخلابات جافاا من كتشكل خففنذا الغرض وبهذا الء الطرق هستدعا غرض من صف و اJSP . 2 . راتن الغرض و البرامتق تواصل ب تخل. الـbean رات قراءة البرمتةختصار من عملطة اح لك ببسا تتها إلىل ومعالجتها وتحوString لكائنئج داخل النتا ووضع ا. 3 . ركة الغرض على مشا تقوم. تستخدم الـ عندماbean ضمنركة العرضنك مشامكً رة جدا بسهول كب فإنهةلعادقة ا الطرر متاح فت وهذا غطلبان ال متعددة أو ب صفحات. رة أوت الصغقا التطبرق عمل صغ فرت المعقدة أوقا التطبرق عمل كب فرلمباشر استدعاء كود جافا ا( directly ) . مات كافة تعلها وضعنك فمك و صفحة الـلجافا ف اJSP . ر مباشر الغستدعاء كود جافا ا( indirectly ) . وفر صف تتعلق بتطوة عن الصفحة الـ مساعدة منفصلJSP . مات أدراج تعلع وهنا تستطت الـ صفحا جافا فJSP وف من الصفلمساعدةوف ا الصفل خ. استخدامbeans . كونستدعائهاص وا مطورة بشكل خاةن ب وهjsp:useBean, jsp:getProperty, طرق وسنتعلمها من الرها وغ هذا الدرس ف. ة استخدام بنMVC . ت والـسرفل من ال هنا سوف نستعمل كلJSP مععمل فة الف بعض وسنأخذ كMVC مقبلة الدروس ال ف. لغةر الصر التعبم عنا استخدا. مختصرة من أجلرات هنا نستخدم عباً داذه عالناتج وهئص الغرض امورد و على خصاى ال علحصول الشتراك مع الـ تستخدم باbeans و الـMVC . ما بعد سنتعلمها فلخاصةت ام تاغا استخدا. الـلخاصة بك فت اع بناء تاغا تستطJSP وهذا من هذا الدورةتقدم الم القسم نأخذه ف سوف
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
بسم هللا الرحمن الرحم
JSP ف الصفحات الـ beansالوم سكون الدرس عن استخدام
: ما سنأخذه بهذا الدرس هو
فهم فائدةbeans
إنشاءbeans
مثالstringBean
طرق اسناد البارمترات إلى خصائص الـbean
مشاركة الـ beans
إنشاء الـBean المشروط
مشاركة الـBeanف أربع طرق مختلفة مع مثال
.beans باستخدام الـ JSP صفحات ف الدنامك المحتوى إلدراج الثالثة استراتجة الدرس هذا ناقش
؟Beansلماذا تستخدم
من المؤكد أنت عندما كنت تعمل بالسرفلت كنت beanهذا السؤال ضروري من أجل أن نعرف فائدة استخدام الـ
قد شعرت بالراحة من هذه الناحة ولكن ما زلت JSP فعندما بدأت بالعمل على الـ HTMLتسأم من كتابة أكواد الـ
ولحل هذه المشكلة HTMLوبهذا الشكل أصبح عندك كمة من التعلمات البرمجة داخل أكواد الـ تستخدم أكواد برمجة
طبعا مكن JSP بحث تعتمد على مبدأ فصل الصفوف باستعاضة عن بعض التعلمات البرمجة بأكواد beanـ جاءت ال
: وهbean توفر لك ثالث مزات تجعلك تستخدم الـ beanالقول أن الـ
كما أسلفنا سابقا فأنه مكن االستعاضة عن تعلمات برمجة مثل أنشاء .javaعدم استخدام نصوص برمجة .1
.JSPغرض من صف و استدعاء الطرق هذا الغرض وبهذا الشكل خففنا من كتابات جافا داخل صفحة الـ
تتح لك ببساطة اختصار من عملة قراءة البرمترات bean الـ .تخلق تواصل بن الغرض و البرامترات .2
. ووضع النتائج داخل الكائنStringومعالجتها وتحولها إلى
فإنه بسهول كبرة جدا مكنك مشاركة العرض ضمن bean عندما تستخدم الـ.تقوم على مشاركة الغرض .3
.صفحات متعددة أو بن الطلبات وهذا غر متاح ف الطرقة العادة
التطبقات الصغرة أو فرق عمل صغر
التطبقات المعقدة أو فرق عمل كبر
استدعاء كود جافا المباشر(directly). ومكنك فها وضع كافة تعلمات
.JSPالجافا ف صفحة الـ
استدعاء كود جافا الغر مباشر(indirectly). تتعلق بتطور صفوفوهنا تستطع أدراج تعلمات .JSPمساعدة منفصلة عن الصفحة الـ
.خالل الصفوف المساعدةمن الصفوف JSP جافا ف صفحات الـ
استخدامbeans. وه بنة مطورة بشكل خاص واستدعائها كون
jsp:useBean, jsp:getProperty, وغرها من الطرق وسنتعلمها .ف هذا الدرس
استخدام بنةMVC. هنا سوف نستعمل كل من السرفلت والـJSP مع
. ف الدروس المقبلةMVCبعض وسنأخذ كفة العمل ف هنا نستخدم عبارات مختصرة من أجل .استخدام عناصر التعبر اللغة
الحصول على المورد و على خصائص الغرض الناتج وهذه عادا
سنتعلمها فما بعد.MVC و الـ beansتستخدم باالشتراك مع الـ
تستطع بناء تاغات الخاصة بك ف الـ .استخدام تاغات الخاصة JSP وهذا
سوف نأخذه ف القسم المتقدم من هذا الدورة
؟Beansما ه الـ
هbeansالـ حول تكون لمعرفته تحتاج ما ه ببساطة عبارة عن صف جافا تم كتابته بشكل قاس كلbeansالـ
:التالة القائمة ف المبنة البسطة الثالث النقاط
على الصف الذي سوف نستخدمه به الـbeanأن كون فه بان دون وسطاء .
تستطع فعل هذا أما بإنشاء بان بدون وسطاء بشكل صرح أو عن طرق حذف كل داالت البناء وبهذا الشكل
beanتم إنشاء البان االفتراض بمجرد إنشاء عنصر الـ. تلقائا (افتراض)تم أنشاء البان بدون وسطاء
.JSPف الـ
على الصف الذي سوف نستخدمه به الـbeanأن ال نجعل المتغرات فه عامة .
فإنه توجب علك أن تكون المتغرات ف الصف متغرات لس عامة beanعندما ترد استخدام صف ف الـ
. للوصول للمتغر بدال من السماح للوصول المباشرgetter و setterوهنا نستخدم الطرق
للوصول للطرق الموجودة ف الصف جب تسمة الطرق بـsetXxx و getXxx.
اسم هذا المتغر وفه حقل عطنا العدد الحال للركاب Carلكن لدنا على سبل المثال صف
numPassengers هنا جب أن كون لدنا طرق الوصول وه getNumPassengers وهذه الطرقة ال
وال intالت تأخذ قمة setNumPassengers ولدنا الطرقة intتأخذ وسطاء وتعد لنا قمة من النمط
beanف الـ (beanف الـ الخاصة تسمى)وف مثل هذه الحالة فتم استدعاء الطرق . تعد لنا شء
لكنه حرف كبر ف اسم nنالحظ ف اسم الخاصة الحرف الصغر ) numPassengersباالسم Carللصف
(. Carالطرقة ف الصف
فإنه تم استدعاء إحدى الطرقتن setXxx و getXxxإذا كان ف الصف حوي على الطرق : 1القاعدة
.xxxباالسم
لدنا استثناء وحد للقاعدة السابقة ف اصطالح اسم الطرقة ف حال كانت الطرقة تعد لنا قمة منطقة
(boolean) هنا توجب علك تسمة الطرقة بـisXxx بدال من getXxx .
وه عن أن السارة مأجورة أم ال leasedاسمه boolean ولكن لدنا متغر من نمط Carلنعد لمثال صف
booleanتأخذ وسطاء وتعد لنا قمة من النمط الت isLeasedهنا تكون طرق الوصول لهذا المتغر ه
باسم beanهنا تستدعها ف الـ , وال تعد لنا شء booleanالت تأخذ قمة setLeasedوالطرقة
leased.
بدال من isXxxفإنه توجب أن كون اسم الطرقة booleanإذا كان لدنا قمة تعد لنا : 2القاعدة
getXxx.
؟Beansطرقة استخدام الـ
:JSP ومعالجتها ف الصفحات الـ JavaBeansهناك ثالث بنات األساسة جب استخدامها لبناء الـ
jsp:useBean. بن العنصر هذا الحاالت, أبسط ف bean التال النحو على تستخدم ما وعادة . جدد: <jsp:useBean id="beanName"
class="package.Class" />
.bean الت سوف نشرحها ف مشاركة الـ scopeأضا أضافا لهذا العنصر فمكنك أضا وضع الخاصة
jsp:getProperty . هذا العنصر ستخدم لقراءة واستخراج قمة من خاصة الـbean . وقراءة الخاصة تشر
النحو على العنصر هذا استخدام تم. getXxxإلى االسم المختصر من أجل استدعاء الطرقة من الشكل
:التال<jsp:getProperty name="beanName"
property="propertyName" />
jsp:setProperty . هذا العنصر من أجل تعدل قمة الخاصة لـbean وهو ستدع الطرق الت من الشكل
setXxx التال النحو على تستخدم ما وعادة . طبعا ستدعه باسمه المختصر كما أسلفنا سابقا: <jsp:setProperty name="beanName"
property="propertyName"
value="propertyValue" />
.اآلن سوف تم شرح ما سبق بالتفصل
bean :jsp:useBeanبناء الـ مفدة توفر قدرة beansالـ . JSP واستخدامها ف الـ beanالـ ف عنصر األكشن تتح لك تحمل jsp:useBeanأن
. JSPبسهولة استخدام التضحة دون Java صف الـ استخدام إعادة استغالل لك تتح ألنها جدا
:ل ما هو استخدامها جب التbeanالـ تحدد أجل من الجملة بناء أبسط
<jsp:useBean id="name" class="package.Class" />
. idهو باسم محدد jspService_ وتم ربط هذا الكائن ف Classالعبارة السابقة تعن أنه تم أنشاء كائن من الصف
علك هنا استخدام اسم الصف مع ذكر اسم الباقة الت تشمله بغض النظر هما إذا كنت تستخدم : مالحظة<%@ page import... %>
: كما لbeanفكتب هذا بالـ Book من الصف book1مثال عن أنشاء غرض <jsp:useBean id="book1" class="coreservlets.Book" />
: ماىتاىيscriptletوبالمقارنة فإنه العبارة السابقة مكن كتابتها بواسطة عنصر <% coreservlets.Book book1 = new coreservlets.Book(); %>
. ف ما سبقbean أفضل وقد ذكرنا مزات الـ beanلكن استخدام الـ
jsp:getProperty بـ beanالوصول لخصائص الـ وتقوم بوضع jsp:getPropertyذالك بواسطة التاغ (beanالخاصة ف الـ )من أجل الحصول على خرج الطرقة
و تقوم بوضع قمة الخاصة jsp:useBean ف التاغ id ف هذا التاغ نفس قمة الخاصة nameقمة الخاصة
property اسم الطرقة الـget الت ترد استعادها بدون كتابة الـ getوبكتابة أول حرف منها بحرف صغر .
وذالك باستدعاء الطرقة بشكل صرح JSP مكننا استخدام عنصر تعبر ف الـ jsp:getPropertyبدال من استخدام
الت تعد لنا قمة title ونرد استدعاء الخاصة Bookعلى سبل المثال لنأخذ الصف . id من الغرض الذي له اسم الـ
هنا لدك إحدى jsp:useBeanباستخدام book1 وقد أنشأنا غرض من هذا الصف واسمه Stringمن نمط
: وهJSP ف صفحة الـ titleالطرقتن من أجل أظهار قمة
<jsp:getProperty name="book1" property="title" />
<%= book1.getTitle() %>
. ألن بهذا الشكل نخفف من كتابة أكواد الجافا كما أسلفنا سابقا (beanاستخدام الـ )لكن من األفضل استخدام النهج األول
ف الحالة البسطةjsp:setProperty بـ beanتعن خصائص الـ وهذه العملة لها عدة jsp:setProperty فهنا نقوم باستخدام التاغ beanمن أجل تعن أو تعدل خصائص الـ
وهذه نأخذ قمتها من الخاصة nameالخاصة : (attributes)أشكال مختلفة لكن ابسط شكل له وفر لنا ثالث خواص
id من التاغ jsp:useBean ,property : هنا تضع اسم طرقة الـsetوال تنسى كتابة أول حرف صغر ,
value:وه القمة الجددة .
وذالك باستدعاء scriptlet وهو عن طرق استخدام عنصر jsp:getPropertyأضا هنا تستطع استخدام بدل عن
لنعد لمثال الفقرة السابقة ونأخذ الغرض . (idالغرض الذي له اسم الـ )beanالطرقة بشكل صرح من الغرض الـ
book1 فإنه هناك طرقتن لتعدل خصائص الـ beanوه :
<jsp:setProperty name="book1"
property="title"
value="Core Servlets and JavaServer Pages" />
<% book1.setTitle("Core Servlets and JavaServer Pages"); %>
. ألن بهذا الشكل نخفف من كتابة أكواد الجافا كما أسلفنا سابقا (beanاستخدام الـ )لكن من األفضل استخدام النهج األول
StringBean: مثالوألن هذا الصف لس فه . coreservlets من الباقة StringBeanف هذا المثال سوف نعرض صف بسط اسمه
و بان بدون وسطاء فإنه لن نقوم بتصرح عن أي بان وكل ذالك من أجل أن ستوف هذا الصف شروط أي متغر عام
String تعد لنا getMessageولدنا ف هذا الصف أضا طرقة تدعى . الت ذكرنها ف ما سبقbeanالـ
. String تأخذ وسط setMessageوطرقة أخرى تدعى
: وتم ذالك على النحو األتjsp:useBean وذالك باستخدام StringBeanأوال تم أنشاء غرض من <jsp:useBean id="stringBean" class="coreservlets.StringBean" />
: داخل الصفحة بإحدى الطرقتن التالتنmessageبعد هذا مكن إدراج الخاصة
SaleEntry1-Form.jspهذه صورة للصفحة الت سوف نرسل من خاللها البرامترات الصفحة
SaleEntry1.jspتجة ف حال أدخلنا نفس القم الت ف الصورة الصفحة نوهكذا سوف تكون ال
مع البارمترات المدخلةbeanطرقة الثانة ربط خصائص الـ ف الطرقة السابقة عدنا إلى مشكلة وه أننا عدنا إلى استخدام أكواد الجافا وكنا نقوم بتحول النمط دوا وهكذا لم
توفر تكود بالجافا اآلن سوف نقارن بن الطرقة السابقة والطرقة beanنوفر من كتابة األكواد الجافا ومن أهداف الـ
الثانة الت سوف توفر الكثر من العناء ولن نستخدم فها أكواد جافا لنقارن لنقتبس من المثال السابق عندما كنا نأخذ
:فكتبناه بهذا الشكل numItems الت اسمهاbean ونضع قمته ف خاصة الـ numItems قمة البرمتر
مع كل البارمترات بشكل آلbeanالطرقة الثالثة ربط كل خصائص الـشاهدنا بالطرقة الثانة كف استطعنا تحول اآلل لألنماط وهذا مما وفر علنا كتابة أكواد جافا وكان لدنا مزة أنه
لكن ما سنتعلمه اآلن شء وفر bean ف حال كان اسم البارمتر نفس اسم خاصة الـparamبإمكانك عدم كتابة
مع كل البارمترات وهذا تحقق ف حال كان كل beanعلك الكثر من العناء وه كف تربط جمع خصائص الـ
propertyوتضعه قمة للخاصة * وتستطع فعل هذا باستخدام رمز beanأسماء البرمترات نفس أسماء خصائص الـ
باإلضافة أنه قوم bean وبهذا الشكل قوم بشكل آلة بربط البارمترات مع الخصائص الـjsp:getPropertyف التاغ
بعملة التحول األنماط وحسب المثال السابق نجد تتطابق اسم الخاصة مع اسم البارمتر لذالك مكن كتابة الكود السابقة
بهذا الشكل
SaleEntry3.jspصفحة
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">