SlideShare a Scribd company logo
1 of 20
Download to read offline
‫الرحٌم‬ ‫الرحمن‬ ‫هللا‬ ‫بسم‬
‫استخدام‬ ‫عن‬ ‫الدرس‬ ‫سٌكون‬ ‫الٌوم‬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‫وهذا‬
‫الدورة‬ ‫هذا‬ ‫من‬ ‫المتقدم‬ ‫القسم‬ ً‫ف‬ ‫نأخذه‬ ‫سوف‬
‫الـ‬ ً‫ه‬ ‫ما‬Beans‫؟‬
‫الـ‬beans‫كل‬ ً‫قٌاس‬ ‫بشكل‬ ‫كتابته‬ ‫تم‬ ‫جافا‬ ‫صف‬ ‫عن‬ ‫عبارة‬ ‫ببساطة‬ ً‫ه‬‫ما‬‫تحتاج‬‫لمعرفته‬‫تكوٌن‬ ‫حول‬‫الـ‬beansً‫ه‬
‫النقاط‬‫الثالث‬‫البسٌطة‬‫المبٌنة‬ً‫ف‬‫القائمة‬‫التالٌة‬:
‫الـ‬ ‫به‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫الصف‬ ‫على‬bean‫وسطاء‬ ‫دون‬ ً‫بان‬ ‫فٌه‬ ‫ٌكون‬ ‫أن‬.
‫الشكل‬ ‫وبهذا‬ ‫البناء‬ ‫داالت‬ ‫كل‬ ‫حذف‬ ‫طرٌق‬ ‫عن‬ ‫أو‬ ‫صرٌح‬ ‫بشكل‬ ‫وسطاء‬ ‫بدون‬ ً‫بان‬ ‫بإنشاء‬ ‫أما‬ ‫هذا‬ ‫فعل‬ ‫تستطٌع‬
‫وسطاء‬ ‫بدون‬ ً‫البان‬ ‫أنشاء‬ ‫ٌتم‬(ً‫افتراض‬)ً‫ا‬ٌ‫تلقائ‬.‫الـ‬ ‫عنصر‬ ‫إنشاء‬ ‫بمجرد‬ ً‫االفتراض‬ ً‫البان‬ ‫إنشاء‬ ‫ٌتم‬bean
‫الـ‬ ً‫ف‬JSP.
‫الـ‬ ‫به‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫الصف‬ ‫على‬bean‫عامة‬ ‫فٌه‬ ‫المتغٌرات‬ ‫نجعل‬ ‫ال‬ ‫أن‬.
‫الـ‬ ً‫ف‬ ‫صف‬ ‫استخدام‬ ‫ترٌد‬ ‫عندما‬bean‫عامة‬ ‫لٌس‬ ‫متغٌرات‬ ‫الصف‬ ً‫ف‬ ‫المتغٌرات‬ ‫تكون‬ ‫أن‬ ‫علٌك‬ ‫ٌتوجب‬ ‫فإنه‬
‫الطرق‬ ‫نستخدم‬ ‫وهنا‬setter‫و‬getter‫المباشر‬ ‫للوصول‬ ‫السماح‬ ‫من‬ ً‫ال‬‫بد‬ ‫للمتغٌر‬ ‫للوصول‬.
‫بـ‬ ‫الطرق‬ ‫تسمٌة‬ ‫ٌجب‬ ‫الصف‬ ً‫ف‬ ‫الموجودة‬ ‫للطرق‬ ‫للوصول‬setXxx‫و‬getXxx.
‫صف‬ ‫المثال‬ ‫سبٌل‬ ‫على‬ ‫لدٌنا‬ ‫لٌكن‬Car‫للركاب‬ ً‫الحال‬ ‫العدد‬ ‫ٌعطٌنا‬ ‫حقل‬ ‫وفٌه‬‫المتغٌر‬ ‫هذا‬ ‫اسم‬
numPassengersً‫وه‬ ‫الوصول‬ ‫طرق‬ ‫لدٌنا‬ ‫ٌكون‬ ‫أن‬ ‫ٌجب‬ ‫هنا‬getNumPassengers‫ال‬ ‫الطرٌقة‬ ‫وهذه‬
‫النمط‬ ‫من‬ ‫قٌمة‬ ‫لنا‬ ‫وتعٌد‬ ‫وسطاء‬ ‫تأخذ‬int‫الطرٌقة‬ ‫ولدٌنا‬setNumPassengers‫قٌمة‬ ‫تأخذ‬ ً‫الت‬int‫وال‬
‫شًء‬ ‫لنا‬ ‫تعٌد‬.‫الطرق‬ ‫استدعاء‬ ‫فٌتم‬ ‫الحالة‬ ‫هذه‬ ‫مثل‬ ً‫وف‬(‫تسمى‬‫الخاصٌة‬‫الـ‬ ً‫ف‬bean)‫الـ‬ ً‫ف‬bean
‫للصف‬Car‫باالسم‬numPassengers(‫الصغٌر‬ ‫الحرف‬ ‫الخاصٌة‬ ‫اسم‬ ً‫ف‬ ‫نالحظ‬n‫اسم‬ ً‫ف‬ ‫كبٌر‬ ‫حرف‬ ‫لكنه‬
‫الصف‬ ً‫ف‬ ‫الطرٌقة‬Car.)
‫القاعدة‬1:‫الطرق‬ ‫على‬ ‫ٌحوي‬ ‫الصف‬ ً‫ف‬ ‫كان‬ ‫إذا‬getXxx‫و‬setXxx‫الطرٌقتٌن‬ ‫إحدى‬ ‫استدعاء‬ ‫ٌتم‬ ‫فإنه‬
‫باالسم‬xxx.
‫منطقٌة‬ ‫قٌمة‬ ‫لنا‬ ‫تعٌد‬ ‫الطرٌقة‬ ‫كانت‬ ‫حال‬ ً‫ف‬ ‫الطرٌقة‬ ‫اسم‬ ‫اصطالح‬ ً‫ف‬ ‫السابقة‬ ‫للقاعدة‬ ‫وحٌد‬ ‫استثناء‬ ‫لدٌنا‬
(boolean)‫بـ‬ ‫الطرٌقة‬ ‫تسمٌة‬ ‫علٌك‬ ‫ٌتوجب‬ ‫هنا‬isXxx‫من‬ ً‫ال‬‫بد‬getXxx.
‫صف‬ ‫لمثال‬ ‫لنعد‬Car‫نمط‬ ‫من‬ ‫متغٌر‬ ‫لدٌنا‬ ‫ولٌكن‬boolean‫اسمه‬leased‫ال‬ ‫أم‬ ‫مأجورة‬ ‫السٌارة‬ ‫أن‬ ً‫ٌعن‬ ً‫وه‬
ً‫ه‬ ‫المتغٌر‬ ‫لهذا‬ ‫الوصول‬ ‫طرق‬ ‫تكون‬ ‫هنا‬isLeasedً‫الت‬‫النمط‬ ‫من‬ ‫قٌمة‬ ‫لنا‬ ‫وتعٌد‬ ‫وسطاء‬ ‫تأخذ‬boolean
‫والطرٌقة‬setLeased‫قٌمة‬ ‫تأخذ‬ ً‫الت‬boolean‫شًء‬ ‫لنا‬ ‫تعٌد‬ ‫وال‬,‫الـ‬ ً‫ف‬ ‫تستدعٌها‬ ‫هنا‬bean‫باسم‬
leased.
‫القاعدة‬2:‫لنا‬ ‫تعٌد‬ ‫قٌمة‬ ‫لدٌنا‬ ‫كان‬ ‫إذا‬boolean‫الطرٌقة‬ ‫اسم‬ ‫ٌكون‬ ‫أن‬ ‫ٌتوجب‬ ‫فإنه‬isXxx‫من‬ ً‫ال‬‫بد‬
getXxx.
‫الـ‬ ‫استخدام‬ ‫طرٌقة‬Beans‫؟‬
‫الـ‬ ‫لبناء‬ ‫استخدامها‬ ‫ٌجب‬ ‫األساسٌة‬ ‫بنٌات‬ ‫ثالث‬ ‫هناك‬JavaBeans‫الـ‬ ‫الصفحات‬ ً‫ف‬ ‫ومعالجتها‬JSP:
jsp:useBean.ً‫ف‬‫أبسط‬,‫الحاالت‬‫هذا‬‫العنصر‬ً‫ٌبن‬bean‫جدٌد‬.ً‫ة‬‫وعاد‬‫ما‬‫تستخدم‬‫على‬‫النحو‬ً‫التال‬:
<jsp:useBean id="beanName"
class="package.Class" />
‫الخاصٌة‬ ‫وضع‬ ً‫ا‬‫أٌض‬ ‫فٌمكنك‬ ‫العنصر‬ ‫لهذا‬ ً‫ا‬‫أضاف‬ ‫أٌضا‬scope‫الـ‬ ‫مشاركة‬ ً‫ف‬ ‫نشرحها‬ ‫سوف‬ ً‫الت‬bean.
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
‫أن‬jsp:useBean‫تحمٌل‬ ‫لك‬ ‫تتٌح‬ ‫األكشن‬ ‫عنصر‬ ً‫ف‬‫الـ‬bean‫الـ‬ ً‫ف‬ ‫واستخدامها‬JSP.‫الـ‬beans‫قدرة‬ ‫توفٌر‬‫مفٌدة‬
ً‫ا‬‫جد‬‫ألنها‬‫تتٌح‬‫لك‬‫استغالل‬‫إعادة‬‫استخدام‬‫الـ‬ ‫صف‬Java‫دون‬‫التضحٌة‬‫استخدام‬ ‫بسهولة‬JSP.
‫أبسط‬‫بناء‬‫الجملة‬‫من‬‫أجل‬‫تحدٌد‬‫الـ‬beanً‫الت‬‫ٌجب‬‫استخدامها‬‫هو‬‫ما‬ً‫ٌل‬:
<jsp:useBean id="name" class="package.Class" />
‫الصف‬ ‫من‬ ‫كائن‬ ‫أنشاء‬ ‫تم‬ ‫أنه‬ ً‫تعن‬ ‫السابقة‬ ‫العبارة‬Classً‫ف‬ ‫الكائن‬ ‫هذا‬ ‫ربط‬ ‫وتم‬_jspService‫محدد‬ ‫باسم‬‫هو‬id.
‫مالحظة‬:‫تستخدم‬ ‫كنت‬ ‫إذا‬ ‫هما‬ ‫النظر‬ ‫بغض‬ ‫تشمله‬ ً‫الت‬ ‫الباقة‬ ‫اسم‬ ‫ذكر‬ ‫مع‬ ‫الصف‬ ‫اسم‬ ‫استخدام‬ ‫هنا‬ ‫علٌك‬
<%@ page import... %>
‫غرض‬ ‫أنشاء‬ ‫عن‬ ‫مثال‬book1‫الصف‬ ‫من‬Book‫بالـ‬ ‫هذا‬ ‫فٌكتب‬beanً‫ٌل‬ ‫كما‬:
<jsp:useBean id="book1" class="coreservlets.Book" />
‫عنصر‬ ‫بواسطة‬ ‫كتابتها‬ ‫ٌمكن‬ ‫السابقة‬ ‫العبارة‬ ‫فإنه‬ ‫وبالمقارنة‬scriptlet‫ماىتاىي‬:
<% coreservlets.Book book1 = new coreservlets.Book(); %>
‫الـ‬ ‫استخدام‬ ‫لكن‬bean‫الـ‬ ‫مٌزات‬ ‫ذكرنا‬ ‫وقد‬ ‫أفضل‬bean‫سبق‬ ‫ما‬ ً‫ف‬.
‫الـ‬ ‫لخصائص‬ ‫الوصول‬bean‫بـ‬jsp:getProperty
‫الطرٌقة‬ ‫خرج‬ ‫على‬ ‫الحصول‬ ‫أجل‬ ‫من‬(‫الـ‬ ً‫ف‬ ‫الخاصٌة‬bean)‫التاغ‬ ‫بواسطة‬ ‫ذالك‬jsp:getProperty‫بوضع‬ ‫وتقوم‬
‫الخاصٌة‬ ‫قٌمة‬name‫الخاصٌة‬ ‫قٌمة‬ ‫نفس‬ ‫التاغ‬ ‫هذا‬ ً‫ف‬id‫التاغ‬ ً‫ف‬jsp:useBean‫الخاصٌة‬ ‫قٌمة‬ ‫بوضع‬ ‫تقوم‬ ‫و‬
property‫الـ‬ ‫الطرٌقة‬ ‫اسم‬get‫الـ‬ ‫كتابة‬ ‫بدون‬ ‫استعادها‬ ‫ترٌد‬ ً‫الت‬get‫صغٌر‬ ‫بحرف‬ ‫منها‬ ‫حرف‬ ‫أول‬ ‫وبكتابة‬.
‫استخدام‬ ‫من‬ ً‫ال‬‫بد‬jsp:getProperty‫الـ‬ ً‫ف‬ ‫تعبٌر‬ ‫عنصر‬ ‫استخدام‬ ‫ٌمكننا‬JSP‫صرٌح‬ ‫بشكل‬ ‫الطرٌقة‬ ‫باستدعاء‬ ‫وذالك‬
‫الـ‬ ‫اسم‬ ‫له‬ ‫الذي‬ ‫الغرض‬ ‫من‬id.‫الصف‬ ‫لنأخذ‬ ‫المثال‬ ‫سبٌل‬ ‫على‬Book‫الخاصٌة‬ ‫استدعاء‬ ‫ونرٌد‬title‫قٌمة‬ ‫لنا‬ ‫تعٌد‬ ً‫الت‬
‫نمط‬ ‫من‬String‫واسمه‬ ‫الصف‬ ‫هذا‬ ‫من‬ ‫غرض‬ ‫أنشأنا‬ ‫وقد‬book1‫باستخدام‬jsp:useBean‫إحدى‬ ‫لدٌك‬ ‫هنا‬
‫قٌمة‬ ‫أظهار‬ ‫أجل‬ ‫من‬ ‫الطرٌقتٌن‬title‫الـ‬ ‫صفحة‬ ً‫ف‬JSPً‫وه‬:
<jsp:getProperty name="book1" property="title" />
<%= book1.getTitle() %>
‫األول‬ ‫النهج‬ ‫استخدام‬ ‫األفضل‬ ‫من‬ ‫لكن‬(‫الـ‬ ‫استخدام‬bean)ً‫ا‬‫سابق‬ ‫أسلفنا‬ ‫كما‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫نخفف‬ ‫الشكل‬ ‫بهذا‬ ‫ألن‬.
‫الـ‬ ‫خصائص‬ ‫تعٌن‬bean‫بـ‬jsp:setProperty‫البسٌطة‬ ‫الحالة‬ ً‫ف‬
‫الـ‬ ‫خصائص‬ ‫تعدٌل‬ ‫أو‬ ‫تعٌن‬ ‫أجل‬ ‫من‬bean‫التاغ‬ ‫باستخدام‬ ‫نقوم‬ ‫فهنا‬jsp:setProperty‫عدة‬ ‫لها‬ ‫العملٌة‬ ‫وهذه‬
‫خواص‬ ‫ثالث‬ ‫لنا‬ ‫ٌوفر‬ ‫له‬ ‫شكل‬ ‫ابسط‬ ‫لكن‬ ‫مختلفة‬ ‫أشكال‬(attributes):‫الخاصٌة‬name‫الخاصٌة‬ ‫من‬ ‫قٌمتها‬ ‫نأخذ‬ ‫وهذه‬
id‫التاغ‬ ‫من‬jsp:useBean,property:‫الـ‬ ‫طرٌقة‬ ‫اسم‬ ‫تضع‬ ‫هنا‬set‫صغٌر‬ ‫حرف‬ ‫أول‬ ‫كتابة‬ ‫تنسى‬ ‫وال‬,
value:‫الجدٌدة‬ ‫القٌمة‬ ً‫وه‬.
‫عن‬ ‫بدٌل‬ ‫استخدام‬ ‫تستطٌع‬ ‫هنا‬ ً‫ا‬‫أٌض‬jsp:getProperty‫عنصر‬ ‫استخدام‬ ‫طرٌق‬ ‫عن‬ ‫وهو‬scriptlet‫باستدعاء‬ ‫وذالك‬
‫الـ‬ ‫الغرض‬ ‫من‬ ‫صرٌح‬ ‫بشكل‬ ‫الطرٌقة‬bean(‫الـ‬ ‫اسم‬ ‫له‬ ‫الذي‬ ‫الغرض‬id).‫الغرض‬ ‫ونأخذ‬ ‫السابقة‬ ‫الفقرة‬ ‫لمثال‬ ‫لنعد‬
book1‫الـ‬ ‫خصائص‬ ‫لتعدٌل‬ ‫طرٌقتٌن‬ ‫هناك‬ ‫فإنه‬beanً‫وه‬:
<jsp:setProperty name="book1"
property="title"
value="Core Servlets and JavaServer Pages" />
<% book1.setTitle("Core Servlets and JavaServer Pages"); %>
‫األول‬ ‫النهج‬ ‫استخدام‬ ‫األفضل‬ ‫من‬ ‫لكن‬(‫الـ‬ ‫استخدام‬bean)ً‫ا‬‫سابق‬ ‫أسلفنا‬ ‫كما‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫نخفف‬ ‫الشكل‬ ‫بهذا‬ ‫ألن‬.
‫مثال‬:StringBean
‫اسمه‬ ‫بسٌط‬ ‫صف‬ ‫نعرض‬ ‫سوف‬ ‫المثال‬ ‫هذا‬ ً‫ف‬StringBean‫الباقة‬ ‫من‬coreservlets.‫فٌه‬ ‫لٌس‬ ‫الصف‬ ‫هذا‬ ‫وألن‬
‫عام‬ ‫متغٌر‬ ‫أي‬‫شروط‬ ‫الصف‬ ‫هذا‬ ً‫ٌستوف‬ ‫أن‬ ‫أجل‬ ‫من‬ ‫ذالك‬ ‫وكل‬ ً‫بان‬ ‫أي‬ ‫عن‬ ‫بتصرٌح‬ ‫نقوم‬ ‫لن‬ ‫فإنه‬ ‫وسطاء‬ ‫بدون‬ ً‫بان‬ ‫و‬
‫الـ‬bean‫سبق‬ ‫ما‬ ً‫ف‬ ‫ذكرنها‬ ً‫الت‬.‫تدعى‬ ‫طرٌقة‬ ً‫ا‬‫أٌض‬ ‫الصف‬ ‫هذا‬ ً‫ف‬ ‫ولدٌنا‬getMessage‫لنا‬ ‫تعٌد‬String
‫تدعى‬ ‫أخرى‬ ‫وطرٌقة‬setMessage‫وٌسط‬ ‫تأخذ‬String.
‫من‬ ‫غرض‬ ‫أنشاء‬ ‫ٌتم‬ ً‫ال‬‫أو‬StringBean‫باستخدام‬ ‫وذالك‬jsp:useBeanً‫األت‬ ‫النحو‬ ‫على‬ ‫ذالك‬ ‫وٌتم‬:
<jsp:useBean id="stringBean" class="coreservlets.StringBean" />
‫الخاصٌة‬ ‫إدراج‬ ‫ٌمكن‬ ‫هذا‬ ‫بعد‬message‫التالٌتٌن‬ ‫الطرٌقتٌن‬ ‫بإحدى‬ ‫الصفحة‬ ‫داخل‬:
<jsp:getProperty name="stringBean" property="message" />
<%= stringBean.getMessage() %>
‫الخاصٌة‬ ‫قٌمة‬ ‫التعدٌل‬ ‫وٌمكننا‬message‫التالٌتٌن‬ ‫الطرٌقتٌن‬ ‫بإحدى‬:
<jsp:setProperty name="stringBean"
property="message"
value="some message" />
<% stringBean.setMessage("some message"); %>
‫الشكلٌن‬ ً‫ف‬ ‫صحٌحة‬ ‫النتائج‬ ‫أن‬ ‫لتوضٌح‬ ‫مثال‬ ‫هو‬ ‫فقط‬ ‫المقصود‬ ‫وإنما‬ ‫األسلوبٌن‬ ً‫ف‬ ‫بخلط‬ ‫ننصح‬ ‫ال‬ ‫أننا‬ ‫المالحظة‬ ‫ٌرجى‬.
‫الصف‬StringBean
package coreservlets;
/** A simple bean that has a single String property
* called message.
*/
public class StringBean {
private String message = "No message specified";
public String getMessage() {
return(message);
}// end getMessage
public void setMessage(String message) {
this.message = message;
}// end setMessage
}// end class
‫الـ‬ ‫علٌها‬ ‫سنخبر‬ ً‫الت‬ ‫الصفحة‬bean:StringBean.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Using JavaBeans with JSP</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<TABLE BORDER=5 ALIGN="CENTER">
<TR><TH CLASS="TITLE">
Using JavaBeans with JSP</TABLE>
<jsp:useBean id="stringBean" class="coreservlets.StringBean" />
<OL>
<LI>Initial value (from jsp:getProperty):
<I><jsp:getProperty name="stringBean"
property="message" /></I>
<LI>Initial value (from JSP expression):
<I><%= stringBean.getMessage() %></I>
<LI><jsp:setProperty name="stringBean" property="message"
value="Best string bean: Fortex" />
Value after setting property with jsp:setProperty:
<I><jsp:getProperty name="stringBean" property="message" /></I>
<LI><% stringBean.setMessage("My favorite: Kentucky Wonder"); %>
Value after setting property with scriptlet:
<I><%= stringBean.getMessage() %></I>
</OL>
</BODY>
</HTML>
ً‫كالتال‬ ‫سٌكون‬ ‫والناتج‬:
‫الـ‬ ‫خصائص‬ ‫تعٌن‬bean‫متقدمة‬ ‫بطرٌقة‬
‫الـ‬ ‫خاصٌات‬ ‫قٌم‬ ‫وتعدٌل‬ ‫تعٌن‬ ً‫ف‬ ‫البسٌطة‬ ‫الطرٌقة‬ ‫سبق‬ ‫ما‬ ً‫ف‬ ‫أخذا‬bean‫للتاغ‬ ‫خواص‬ ‫ثالث‬ ‫خاللها‬ ‫واستخدمنا‬
jsp:setPropertyً‫وه‬name‫و‬property‫و‬value‫برمترات‬ ‫لدٌك‬ ‫كان‬ ‫حال‬ ً‫ف‬ ‫تفعل‬ ‫ماذا‬ ‫ولكن‬ ‫وشرحنها‬
‫الـ‬ ً‫ف‬ ‫قٌمتها‬ ‫تضع‬ ‫أن‬ ‫وترٌد‬ ‫ما‬ ‫صفحة‬ ‫من‬ ‫قادمة‬bean‫الطرٌقة‬ ‫من‬ ‫األمر‬ ‫وسنوضح‬ ‫و‬ ‫بالتفصٌل‬ ‫سنشرحه‬ ‫ما‬ ‫وهذا‬
‫صف‬ ‫لدٌنا‬ ‫المثال‬ ‫هذا‬ ً‫ف‬ ‫التوضٌح‬ ‫أجل‬ ‫من‬ ‫مثال‬ ‫على‬ ‫شرحنا‬ ‫سٌكون‬ ً‫ا‬‫وطبع‬ ‫حاالت‬ ‫ثالث‬ ‫ستكون‬ ً‫وه‬ ‫فاألسهل‬ ‫الصعبة‬
‫اسمه‬SaleEntry‫الح‬ ‫وفٌه‬‫قول‬(‫الـ‬ ‫خصائص‬ ‫تكون‬ ‫سوف‬ ً‫الت‬bean)‫التالٌة‬itemID‫النمط‬ ‫من‬ ‫وهو‬String‫و‬
numItems‫النمط‬ ‫من‬ ‫وهو‬int‫و‬discountCode‫النمط‬ ‫من‬ ‫وهو‬doubleً‫ه‬ ‫أي‬ ‫فقط‬ ‫للقراءة‬ ‫خاصٌتٌن‬ ‫ولدٌنا‬
‫طرق‬get‫وهما‬itemCost‫و‬totalCost‫النمط‬ ‫من‬ ‫وكالهما‬double.
‫صفحة‬ ً‫ا‬‫أٌض‬ ‫هناك‬ ‫مثالنا‬ ً‫وف‬JSP‫الصف‬ ‫من‬ ‫غرض‬ ‫فٌها‬ ‫ننشأ‬ ‫سوف‬ ً‫الت‬SaleEntry‫الـ‬ ‫وباستخدام‬bean‫بهذا‬
‫الشكل‬:
<jsp:useBean id="entry" class="coreservlets.SaleEntry" />
‫صفحة‬ ‫من‬ ‫برمترات‬ ‫نأخذ‬ ‫سوف‬ ‫الصفحة‬ ‫نفس‬ ً‫ف‬ ً‫ا‬‫وأٌض‬HTML‫الـ‬ ً‫ف‬ ‫ونضعها‬bean‫الفقرة‬ ‫هذه‬ ً‫ف‬ ‫هدفنا‬ ‫وهذا‬
‫استخدام‬ ‫إمكانٌات‬ ‫توضٌح‬jsp:setProperty‫من‬ ‫وسنبدأ‬ ‫فعلها‬ ‫ممكن‬ ‫إمكانٌات‬ ‫ثالث‬ ‫لدٌنا‬ ‫قلنا‬ ‫وكما‬ ‫البرمترات‬ ‫مع‬
‫اسمه‬ ‫البارمتر‬ ‫قٌمة‬ ‫لوضع‬ ‫األولى‬ ‫والطرٌقة‬ ‫األصعب‬itemID‫الـ‬ ‫خاصٌة‬ ً‫ف‬beanitemID(‫الحقل‬)ً‫كتال‬ ‫ٌكون‬:
<jsp:setProperty
name="entry"
property="itemID"
value='<%= request.getParameter("itemID") %>' />
‫الـ‬ ‫خاصٌة‬ ‫تعدل‬ ‫سوف‬ ً‫الت‬ ‫قٌمة‬ ‫وضعنا‬ ‫هنا‬bean‫الـ‬ ً‫ف‬ ‫التعبٌر‬ ‫عنصر‬ ‫عن‬ ‫عبارة‬JSP‫أن‬ ً‫وه‬ ‫لمشكلة‬ ‫عدنا‬ ‫هنا‬
‫الـ‬ ‫فكرة‬bean‫األولى‬ ‫الطرٌقة‬ ً‫ه‬ ‫وهذه‬ ‫صحٌحة‬ ‫السابقة‬ ‫العبارة‬ ‫عام‬ ‫بشكل‬ ‫لكن‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫لتخفٌف‬ ‫جاءت‬.
‫الصف‬ ‫كود‬ ‫هذا‬ ‫اآلن‬SaleEntry
package coreservlets;
/** Simple bean to illustrate the various forms
* of jsp:setProperty.
*/
public class SaleEntry {
private String itemID = "unknown";
private double discountCode = 1.0;
private int numItems = 0;
public String getItemID() {
return(itemID);
}
public void setItemID(String itemID) {
if (itemID != null) {
this.itemID = itemID;
} else {
this.itemID = "unknown";
}
}
public double getDiscountCode() {
return(discountCode);
}
public void setDiscountCode(double discountCode) {
this.discountCode = discountCode;
}
public int getNumItems() {
return(numItems);
}
public void setNumItems(int numItems) {
this.numItems = numItems;
}
// In real life, replace this with database lookup.
// See Chapters 17 and 18 for info on accessing databases
// from servlets and JSP pages.
public double getItemCost() {
double cost;
if (itemID.equals("a1234")) {
cost = 12.99*getDiscountCode();
} else {
cost = -9999;
}
return(roundToPennies(cost));
}
private double roundToPennies(double cost) {
return(Math.floor(cost*100)/100.0);
}
public double getTotalCost() {
return(getItemCost() * getNumItems());
}
}// end class
‫الـ‬ ‫لخاصٌة‬ ‫البارمتر‬ ‫قٌمة‬ ‫وضع‬ ً‫ف‬ ‫األولى‬ ‫الطرٌقة‬ ‫عن‬ ‫مثال‬ ‫اآلن‬bean‫صفحة‬ ً‫وه‬SaleEntry1.jsp‫سوف‬ ً‫الت‬
‫البارمترات‬ ‫تستقبل‬.
‫صفحة‬SaleEntry1.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Using jsp:setProperty</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Using jsp:setProperty</TABLE>
<jsp:useBean id="entry" class="coreservlets.SaleEntry" />
<jsp:setProperty name="entry" property="itemID"
value='<%= request.getParameter("itemID") %>' />
<%
int numItemsOrdered = 1;
try {
numItemsOrdered = Integer.parseInt(request.getParameter("numItems"));
} catch(NumberFormatException nfe) {}
%>
<jsp:setProperty name="entry" property="numItems"
value="<%= numItemsOrdered %>" />
<%
double discountCode = 1.0;
try {
String discountString = request.getParameter("discountCode");
discountCode = Double.parseDouble(discountString);
} catch(NumberFormatException nfe) {}
%>
<jsp:setProperty name="entry" property="discountCode"
value="<%= discountCode %>" />
<BR>
<TABLE BORDER=1>
<TR CLASS="COLORED">
<TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
<TR ALIGN="RIGHT">
<TD><jsp:getProperty name="entry" property="itemID" />
<TD>$<jsp:getProperty name="entry" property="itemCost" />
<TD><jsp:getProperty name="entry" property="numItems" />
<TD>$<jsp:getProperty name="entry" property="totalCost" />
</TABLE>
</CENTER>
</BODY>
</HTML>
‫البرمترات‬ ‫خاللها‬ ‫من‬ ‫ٌرسل‬ ‫سوف‬ ً‫الت‬ ‫الصفحة‬ ‫وهذه‬SaleEntry1-Form.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Invoking SaleEntry1.jsp</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Invoking SaleEntry1.jsp</TABLE>
<FORM ACTION="SaleEntry1.jsp">
Item ID: <INPUT TYPE="TEXT" NAME="itemID"><BR>
Number of Items: <INPUT TYPE="TEXT" NAME="numItems"><BR>
Discount Code: <INPUT TYPE="TEXT" NAME="discountCode"><P>
<INPUT TYPE="SUBMIT" VALUE="Show Price">
</FORM>
</CENTER>
</BODY>
</HTML>
‫الصفحة‬ ‫البرامترات‬ ‫خاللها‬ ‫من‬ ‫نرسل‬ ‫سوف‬ ً‫الت‬ ‫للصفحة‬ ‫صورة‬ ‫هذه‬SaleEntry1-Form.jsp
‫ال‬ ‫تكون‬ ‫سوف‬ ‫وهكذا‬‫ن‬‫الصفحة‬ ‫الصورة‬ ً‫ف‬ ً‫الت‬ ‫القٌم‬ ‫نفس‬ ‫أدخلنا‬ ‫حال‬ ً‫ف‬ ‫تٌجة‬SaleEntry1.jsp
‫الـ‬ ‫خصائص‬ ‫ربط‬ ‫الثانٌة‬ ‫طرٌقة‬bean‫المدخلة‬ ‫البارمترات‬ ‫مع‬
‫لم‬ ‫وهكذا‬ ً‫ا‬ٌ‫ٌدو‬ ‫النمط‬ ‫بتحوٌل‬ ‫نقوم‬ ‫وكنا‬ ‫الجافا‬ ‫أكواد‬ ‫استخدام‬ ‫إلى‬ ‫عدنا‬ ‫أننا‬ ً‫وه‬ ‫مشكلة‬ ‫إلى‬ ‫عدنا‬ ‫السابقة‬ ‫الطرٌقة‬ ً‫ف‬
‫الـ‬ ‫أهداف‬ ‫ومن‬ ‫الجافا‬ ‫األكواد‬ ‫كتابة‬ ‫من‬ ‫نوفر‬bean‫والطرٌقة‬ ‫السابقة‬ ‫الطرٌقة‬ ‫بٌن‬ ‫نقارن‬ ‫سوف‬ ‫اآلن‬ ‫بالجافا‬ ‫تكود‬ ‫توفٌر‬
‫نأخذ‬ ‫كنا‬ ‫عندما‬ ‫السابق‬ ‫المثال‬ ‫من‬ ‫لنقتبس‬ ‫لنقارن‬ ‫جافا‬ ‫أكواد‬ ‫فٌها‬ ‫نستخدم‬ ‫ولن‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫توفر‬ ‫سوف‬ ً‫الت‬ ‫الثانٌة‬
‫البرمتر‬ ‫قٌمة‬numItems‫الـ‬ ‫خاصٌة‬ ً‫ف‬ ‫قٌمته‬ ‫ونضع‬bean‫اسمها‬ ً‫الت‬numItems‫الشكل‬ ‫بهذا‬ ‫فكتبناه‬:
<%
int numItemsOrdered = 1;
try {
numItemsOrdered = Integer.parseInt(request.getParameter("numItems"));
} catch(NumberFormatException nfe) {}
%>
<jsp:setProperty
name="entry"
property="numItems"
value="<%= numItemsOrdered %>" />
‫الخاصٌة‬ ‫قٌمة‬ ‫لدٌنا‬ ‫أننا‬ ‫نجد‬ ‫السابق‬ ‫الكود‬ ً‫ف‬intً‫ه‬ ‫البرمتر‬ ‫من‬ ً‫تأت‬ ً‫الت‬ ‫القٌمة‬ ‫ولكن‬String‫القٌمة‬ ‫تحوٌل‬ ‫وعلٌنا‬
‫نمط‬ ‫من‬String‫إلى‬int‫اهداف‬ ‫أحد‬ ‫وهو‬ ‫األكود‬ ‫كتابة‬ ‫من‬ ‫نوفر‬ ‫لم‬ ‫وهكذا‬ ‫التحوٌل‬ ‫أجل‬ ‫من‬ ‫أكود‬ ‫كتابة‬ ‫ٌلزمنا‬ ‫ولهذا‬
‫الـ‬bean‫الـ‬ ً‫ف‬ ‫الحل‬ ‫لدٌنا‬ ‫لكن‬bean‫من‬ ً‫اآلل‬ ‫تحوٌل‬ ‫على‬ ‫تقوم‬ ‫بحٌث‬ ‫األمر‬ ‫هذا‬ ‫علٌك‬ ‫توفر‬ ‫خاصة‬ ‫مٌزة‬ ً‫وه‬
String‫الخاصٌة‬ ً‫ف‬ ‫التعبٌر‬ ‫عنصر‬ ‫كتابة‬ ‫علٌك‬ ‫توفر‬ ‫المٌزة‬ ‫هذه‬ ُ‫ا‬‫وأٌض‬ ‫تحوٌله‬ ‫المراد‬ ‫النمط‬ ‫إلى‬value‫التاغ‬ ً‫ف‬
jsp:setProperty‫التاغ‬ ً‫ف‬ ‫خاصٌة‬ ‫عن‬ ‫عبارة‬ ً‫ه‬ ‫المٌزة‬ ‫هذه‬jsp:setProperty‫الخاصٌة‬ ‫هذا‬ ‫اسم‬param
‫الـ‬ ً‫ف‬ ‫قٌمته‬ ‫إدخال‬ ‫ترٌد‬ ‫الذي‬ ‫البارمتر‬ ‫اسم‬ ً‫ه‬ ‫الخاصٌة‬ ‫هذه‬ ‫قٌمة‬ ‫وتكون‬bean‫كٌف‬ ‫ولنرى‬ ‫السابق‬ ‫المثال‬ ‫فلنأخذ‬
‫الثانٌة‬ ‫الطرٌقة‬ ً‫ف‬ ‫سٌكتب‬.
<jsp:setProperty
name="entry"
property="numItems"
param="numItems" />
‫الـ‬ ‫مٌزة‬ ‫من‬ ‫استفدنا‬ ‫وقد‬ ‫جافا‬ ‫كود‬ ‫أي‬ ‫نكتب‬ ‫لم‬ ‫هكذا‬bean‫اسم‬ ‫ٌكون‬ ‫عندما‬ ً‫وه‬ ‫منها‬ ‫نستفٌد‬ ‫أن‬ ‫ممكن‬ ‫مٌزة‬ ‫هناك‬ ً‫ا‬‫أٌض‬
‫الـ‬ ‫خاصٌة‬ ‫اسم‬ ‫نفس‬ ‫البارمتر‬bean‫المثال‬ ‫فحسب‬ ‫البارمتر‬ ‫ذكر‬ ‫دون‬ ‫فقط‬ ‫الخاصٌة‬ ‫اسم‬ ‫كتابة‬ ‫ٌمكنك‬ ‫فإنه‬ ‫المثال‬ ً‫ف‬ ‫كما‬
ً‫كتال‬ ‫كتابة‬ ‫ٌمكنك‬ ‫فإنه‬ ‫السابق‬:
<jsp:setProperty
name="entry"
property="numItems" /> <%-- param="numItems" is assumed. --%>
‫تعلمناها‬ ً‫الت‬ ‫الثانٌة‬ ‫بالطرٌقة‬ ‫لكن‬ ‫األولى‬ ‫الطرٌقة‬ ‫للمثال‬ ‫كود‬ ‫سنكتب‬ ‫اآلن‬
‫صفحة‬SaleEntry2.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Using jsp:setProperty</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Using jsp:setProperty</TABLE>
<jsp:useBean id="entry" class="coreservlets.SaleEntry" />
<jsp:setProperty name="entry" property="itemID" param="itemID" />
<jsp:setProperty name="entry" property="numItems" param="numItems" />
<jsp:setProperty name="entry" property="discountCode" param="discountCode" />
<BR>
<TABLE BORDER=1>
<TR CLASS="COLORED">
<TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
<TR ALIGN="RIGHT">
<TD><jsp:getProperty name="entry" property="itemID" />
<TD>$<jsp:getProperty name="entry" property="itemCost" />
<TD><jsp:getProperty name="entry" property="numItems" />
<TD>$<jsp:getProperty name="entry" property="totalCost" />
</TABLE>
</CENTER>
</BODY>
</HTML>
‫األولى‬ ‫الطرٌقة‬ ‫الطرٌقة‬ ‫مثال‬ ‫نتائج‬ ‫نفس‬ ً‫ٌعط‬ ‫الكود‬ ‫هذا‬
‫الـ‬ ‫خصائص‬ ‫كل‬ ‫ربط‬ ‫الثالثة‬ ‫الطرٌقة‬beanً‫آل‬ ‫بشكل‬ ‫البارمترات‬ ‫كل‬ ‫مع‬
‫أنه‬ ‫مٌزة‬ ‫لدٌنا‬ ‫وكان‬ ‫جافا‬ ‫أكواد‬ ‫كتابة‬ ‫علٌنا‬ ‫وفر‬ ‫مما‬ ‫وهذا‬ ‫لألنماط‬ ً‫اآلل‬ ‫تحوٌل‬ ‫استطعنا‬ ‫كٌف‬ ‫الثانٌة‬ ‫بالطرٌقة‬ ‫شاهدنا‬
‫كتابة‬ ‫عدم‬ ‫بإمكانك‬param‫الـ‬ ‫خاصٌة‬ ‫اسم‬ ‫نفس‬ ‫البارمتر‬ ‫اسم‬ ‫كان‬ ‫حال‬ ً‫ف‬bean‫ٌوفر‬ ‫شًء‬ ‫اآلن‬ ‫سنتعلمه‬ ‫ما‬ ‫لكن‬
‫الـ‬ ‫خصائص‬ ‫جمٌع‬ ‫تربط‬ ‫كٌف‬ ً‫وه‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫علٌك‬bean‫كل‬ ‫كان‬ ‫حال‬ ً‫ف‬ ‫ٌتحقق‬ ‫وهذا‬ ‫البارمترات‬ ‫كل‬ ‫مع‬
‫الـ‬ ‫خصائص‬ ‫أسماء‬ ‫نفس‬ ‫البرمترات‬ ‫أسماء‬bean‫رمز‬ ‫باستخدام‬ ‫هذا‬ ‫فعل‬ ‫وتستطٌع‬*‫للخاصٌة‬ ‫قٌمة‬ ‫وتضعه‬property
‫التاغ‬ ً‫ف‬jsp:getProperty‫الـ‬ ‫الخصائص‬ ‫مع‬ ‫البارمترات‬ ‫بربط‬ ‫آلٌة‬ ‫بشكل‬ ‫ٌقوم‬ ‫الشكل‬ ‫وبهذا‬bean‫ٌقوم‬ ‫أنه‬ ‫باإلضافة‬
‫السابقة‬ ‫الكود‬ ‫كتابة‬ ‫ٌمكن‬ ‫لذالك‬ ‫البارمتر‬ ‫اسم‬ ‫مع‬ ‫الخاصٌة‬ ‫اسم‬ ‫تتطابق‬ ‫نجد‬ ‫السابق‬ ‫المثال‬ ‫وحسب‬ ‫األنماط‬ ‫التحوٌل‬ ‫بعملٌة‬
‫الشكل‬ ‫بهذا‬
‫صفحة‬SaleEntry3.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Using jsp:setProperty</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">
Using jsp:setProperty</TABLE>
<jsp:useBean id="entry" class="coreservlets.SaleEntry" />
<jsp:setProperty name="entry" property="*" />
<BR>
<TABLE BORDER=1>
<TR CLASS="COLORED">
<TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
<TR ALIGN="RIGHT">
<TD><jsp:getProperty name="entry" property="itemID" />
<TD>$<jsp:getProperty name="entry" property="itemCost" />
<TD><jsp:getProperty name="entry" property="numItems" />
<TD>$<jsp:getProperty name="entry" property="totalCost" />
</TABLE>
</CENTER>
</BODY>
</HTML>
‫أجل‬ ‫من‬ ‫البٌانات‬ ‫النماذج‬ ‫أسماء‬ ‫نفس‬ ‫الصفوف‬ ‫الطرق‬ ‫أسماء‬ ‫بكتابة‬ ‫أن‬ ‫به‬ ‫تقوم‬ ‫تطبٌق‬ ‫أي‬ ‫أو‬ ‫مشروع‬ ‫أي‬ ً‫ف‬ ‫علٌك‬ ‫إذا‬
‫قلٌل‬ ‫منذ‬ ‫به‬ ‫قنا‬ ‫ما‬ ‫فعل‬ ‫وتستطٌع‬ ‫العمل‬ ‫تسهٌل‬.
‫الطرٌقة‬ ‫هذه‬ ‫من‬ ‫صغٌر‬ ‫تحذٌرات‬ ‫ثالث‬ ‫هناك‬ ‫ولكن‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫علٌك‬ ‫وتوفر‬ ‫سهلة‬ ‫الثالثة‬ ‫الطرٌقة‬ ‫أن‬ ‫الرغم‬ ‫على‬:
‫مفقودة‬ ‫المدخلة‬ ‫البارمترات‬ ‫كانت‬ ‫حال‬ ً‫ف‬ ‫أجراء‬ ‫أي‬ ‫ٌتم‬ ‫لن‬.‫ٌدعم‬ ‫ال‬ ‫النظام‬ ‫فهذا‬null‫كقٌمة‬‫الـ‬ ‫لخاصٌة‬bean
‫لٌكون‬ ‫صف‬ ‫تصمٌم‬ ‫عند‬ ‫علٌك‬ ‫لذالك‬bean‫خاصٌة‬ ‫تجعل‬ ‫أن‬(‫الصف‬ ‫طرٌقة‬ ‫وهنا‬set)‫افتراضٌة‬ ‫قٌمة‬ ‫فٌها‬‫من‬
‫ال‬ ‫أما‬ ‫الخاصٌة‬ ‫تعدٌل‬ ‫تم‬ ‫إذا‬ ‫تعرف‬ ‫أن‬ ‫أجل‬.
‫الٌدوي‬ ‫التحوٌل‬ ‫غرار‬ ‫على‬ ‫قانونٌة‬ ‫الغٌر‬ ‫القٌم‬ ‫من‬ ً‫ٌوق‬ ‫ال‬ ‫لألنماط‬ ً‫التلقائ‬ ‫التحوٌل‬(‫التقلٌدٌة‬ ‫طرٌقة‬)
‫لألنماط‬.ً‫التلقائ‬ ‫التحوٌل‬ ‫ٌتجنب‬ ‫المطورٌن‬ ‫بعض‬ ‫أن‬ ‫إلى‬ ً‫التلقائ‬ ‫التحوٌل‬ ‫سهولة‬ ‫من‬ ‫الرغم‬ ‫على‬ ‫الحقٌقة‬ ً‫ف‬,
‫الـ‬ ‫خصائص‬ ‫جمٌع‬ ‫وٌعرفوا‬bean‫القٌم‬ ‫تعٌن‬ ً‫الت‬(‫طرق‬set)‫النوع‬ ‫من‬ ‫ٌكون‬ ‫أن‬String‫استخدام‬ ‫و‬
‫العبارة‬try/catch‫التالفة‬ ‫البٌانات‬ ‫مع‬ ‫التعامل‬ ‫أجل‬ ‫من‬.‫استخدام‬ ‫وٌنصح‬‫تستخدم‬ ‫عندما‬ ‫الخطأ‬ ‫صفحات‬
‫لألنماط‬ ً‫التلقائ‬ ‫التحوٌل‬.
‫الـ‬ ‫خصائص‬ ‫ربط‬ ‫عملٌة‬bean‫لألحرف‬ ‫حساسة‬ ‫البارمترات‬ ‫مع‬.‫لذالك‬‫ٌجب‬‫أن‬‫ٌكون‬‫اسم‬‫الخاصٌة‬‫واسم‬
‫البارمتر‬‫متطابقان‬‫تماما‬.
‫الـ‬ ‫مشاركة‬Beans
‫التعامل‬ ‫ٌتم‬ ً‫افتراض‬ ‫بشكل‬ ‫أنشاؤها‬ ‫مكان‬ ‫عن‬ ‫بعٌد‬ ‫مكان‬ ً‫ف‬ ‫كائن‬ ‫الستخدام‬ ‫الحاجة‬ ‫جاءت‬ ‫عندما‬ ‫مشركة‬ ‫فكرة‬ ‫جاءت‬
ً‫ف‬ ‫إنشاؤه‬ ‫ٌتم‬ ‫الذي‬ ‫الكائنات‬ ‫كل‬ ‫مع‬jsp:Bean‫الطرٌقة‬ ً‫ف‬ ‫محلٌة‬ ‫متغٌرات‬ ‫عن‬ ‫عبارة‬ ‫أنها‬ ‫لو‬ ‫كما‬_jspService
(‫الطرٌقة‬ ‫بواسطة‬ ‫استدعائها‬ ‫ٌتم‬ ‫الطرٌقة‬ ً‫وه‬service‫صفحة‬ ‫من‬ ‫إنشاؤها‬ ‫ٌتم‬ ‫عندما‬ ‫السرفلت‬ ً‫ف‬JSP.)
‫لـ‬ ‫االفتراضٌة‬ ‫الحالة‬ ‫أن‬ ‫من‬ ‫الرغم‬ ‫على‬Bean‫بإمانك‬ ‫وانه‬ ‫اتخاذه‬ ‫ٌمكن‬ ‫الذي‬ ‫الوحٌد‬ ‫السلوك‬ ‫هذا‬ ‫لٌس‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ً‫ه‬
‫الـ‬ ‫تخزٌن‬Bean‫الخاصٌة‬ ‫قٌمة‬ ‫وضع‬ ‫طرٌقة‬ ‫عن‬ ‫وذلك‬ ‫مختلفة‬ ‫مواقع‬ ‫أربع‬ ‫من‬ ‫واحدة‬ ً‫ف‬scopeً‫ف‬jsp:Bean.
‫مفهوم‬ ‫تطبٌق‬ ‫اجل‬ ‫من‬ ‫مهم‬ ً‫ا‬‫جد‬ ‫الدرس‬ ‫هذا‬MVC‫هللا‬ ‫شاء‬ ‫إن‬ ‫القادم‬ ‫الدرس‬ ً‫ف‬ ‫سنشرحه‬ ‫والذي‬.
‫الخاصٌة‬ ‫تتخذها‬ ‫أن‬ ‫ممكن‬ ً‫الت‬ ‫األربعة‬ ‫القٌم‬scopeً‫ه‬:page‫و‬ ‫االفتراضٌة‬ ً‫وه‬request‫و‬session‫و‬
application.
<jsp:useBean ... scope="page" />
‫الخاصٌة‬ ‫بحذف‬ ‫األسلوب‬ ‫هذا‬ ‫نفس‬ ‫فعل‬ ‫وٌمكنك‬ ‫االفتراضٌة‬ ‫القٌمة‬ ً‫ه‬ ‫وهذه‬scope,‫القٌمة‬ ‫اختٌار‬ ‫إن‬page
‫أن‬ ً‫ٌعن‬ ‫فإن‬‫الـ‬bean‫الـ‬ ‫وضع‬ ‫ٌجب‬ ً‫ا‬‫وأٌض‬ ً‫محل‬ ‫متغٌر‬ ‫سٌكون‬beanً‫ف‬PageContext‫ونس‬‫من‬ ‫تفٌد‬
‫باستدعاء‬ ‫إلٌه‬ ‫الوصول‬ ‫ٌستطٌع‬ ‫سوف‬ ‫السرفلت‬ ‫أن‬ ‫هذا‬getAttributeً‫ف‬ ً‫ا‬‫مسبق‬ ‫معروفة‬ ‫لمتغٌرات‬
PageContext.
<jsp:useBean ... scope="request" />
‫الت‬ ‫فإن‬ ً‫محل‬ ‫متغٌر‬ ‫كونه‬ ‫باإلضافة‬ ‫أنه‬ ً‫ٌعن‬ ‫هذا‬beanً‫ف‬ ً‫ا‬‫أٌض‬ ‫ٌخزن‬HttpServletRequest
‫للـ‬ ‫مشاركة‬ ‫هناك‬ ‫لٌس‬ ‫انه‬ ‫النتائج‬ ‫خالل‬ ‫من‬ ‫لك‬ ‫ٌبدو‬ ‫قد‬ ‫انه‬ ‫الرغم‬ ‫وعلى‬beans‫صفحة‬ ‫بٌن‬ ‫أو‬ ‫صفحتٌن‬ ‫بٌن‬
‫نوع‬ ‫من‬ ‫المشاركة‬ ‫فإن‬ ‫وسرفلت‬request‫باستخدام‬ ‫ٌتم‬jsp:include‫و‬jsp:forward‫أو‬include‫و‬
forward‫الطرٌقة‬ ً‫ف‬RequestDispatcher‫بناء‬ ً‫ف‬ ‫نستخدمه‬ ‫سوف‬ ‫حٌث‬ ‫مهم‬ ‫األسلوب‬ ‫وهذا‬MVC
‫القادم‬ ‫الدرس‬ ً‫ف‬ ‫سنشرحه‬.
<jsp:useBean ... scope="session" />
‫الـ‬ ‫كون‬ ‫باإلضافة‬ ‫إنه‬ ً‫تعن‬ ‫القٌمة‬ ‫هذه‬bean‫الـ‬ ‫غرض‬ ‫تخزٌن‬ ‫ٌتم‬ ً‫ا‬‫أٌض‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ‫متغٌر‬beanً‫ف‬
HttpSession‫الطرٌقة‬ ‫بواسطة‬ ‫استرجاعه‬ ‫وٌمكننا‬getAttribute.
ً‫وبالتال‬‫الـ‬ ‫رؤٌة‬ ‫مجال‬ ‫فإن‬bean‫صفحات‬ ً‫ف‬JSP‫التاسع‬ ‫الدرس‬ ً‫ف‬ ‫الجلسات‬ ‫طرٌقة‬ ‫بنفس‬ ‫ٌتم‬.
<jsp:useBean ... scope="application" />
‫الـ‬ ‫كون‬ ‫باإلضافة‬ ‫إنه‬ ً‫تعن‬ ‫القٌمة‬ ‫هذه‬bean‫الـ‬ ‫تخزٌن‬ ‫ٌتم‬ ً‫ا‬‫أٌض‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ‫متغٌر‬beanً‫ف‬
ServletContext‫التطبٌق‬ ً‫ف‬ ‫متاحة‬ ‫وتكون‬
‫الـ‬ServletContext‫والصفحات‬ ‫السلفلتات‬ ‫جمٌع‬ ً‫ف‬ ‫مشاركته‬ ‫تتم‬JSP‫الوٌب‬ ‫تطبٌق‬ ‫نفس‬ ‫على‬.
‫الـ‬ ً‫ف‬ ‫القٌم‬ServletContext‫بالطرٌقة‬ ‫استرجاعها‬ ‫ٌمكنك‬getAttribute.
‫الـ‬ ‫إنشاء‬Bean‫المشروط‬
‫الـ‬ ‫مشاركة‬ ‫لجعل‬Bean‫الـ‬ ‫لعناصر‬ ‫المشروط‬ ‫التقٌٌم‬ ‫استخدام‬ ‫ٌمكنك‬ ‫مالءمة‬ ‫أكثر‬Bean‫حالتٌن‬ ً‫ف‬.
‫العنصر‬ ‫ٌنتج‬ ً‫ال‬‫أو‬jsp:useBean‫الـ‬bean‫الـ‬ ‫على‬ ‫العثور‬ ‫ٌتم‬ ‫لم‬ ‫إذا‬ ‫فقط‬ ‫جدٌد‬bean‫نفس‬ ‫له‬ ‫الذي‬id‫الرؤٌة‬ ‫مجال‬ ‫و‬.
‫الـ‬ ‫على‬ ‫العثور‬ ‫تم‬ ‫وإذا‬bean‫نفس‬ ‫له‬id‫إلٌه‬ ‫المشار‬ ‫المتغٌر‬ ‫مع‬ ‫مرتبط‬ ‫ببساطة‬ ‫هو‬ ً‫ا‬‫مسبق‬ ‫الموجود‬ ‫الرؤٌةفهو‬ ‫مجال‬ ‫و‬
‫بـ‬id.
‫استخدام‬ ‫من‬ ً‫ال‬‫بد‬ ً‫ا‬ٌ‫ثان‬
<jsp:useBean ... />
‫نستخدم‬ ‫سوف‬
<jsp:useBean ...>statements</jsp:useBean>
‫أن‬ ‫هو‬ ً‫الثان‬ ‫النموذج‬ ‫استخدام‬ ً‫ف‬statements‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬ ‫الموجود‬jsp:useBean‫إنشاء‬ ‫تم‬ ‫إذا‬ ‫فقط‬ ‫تتم‬
bean‫الـ‬ ‫على‬ ‫هذا‬ ‫ٌتم‬ ‫وال‬ ‫جدٌد‬bean‫القائمة‬.‫ألن‬jsp:useBean‫لـ‬ ً‫االفتراض‬ ً‫البان‬ ً‫ٌستدع‬ ‫سوف‬bean‫ونحن‬
‫إنشاء‬ ‫بعد‬ ‫خصائص‬ ‫تعٌل‬ ‫إلى‬ ‫األحٌان‬ ‫من‬ ‫كثٌر‬ ً‫ف‬ ‫نحتاج‬bean.
‫لـ‬ ‫أنشاء‬ ‫أول‬ ‫عند‬ ‫فقط‬ ‫التعدٌالت‬ ‫هذه‬ ‫تجعل‬ ‫أن‬ ‫علٌك‬ ‫ٌجب‬ ً‫البان‬ ‫لمحاكاة‬bean‫الـ‬ ‫إلى‬ ‫الوصول‬ ‫عند‬ ‫ولٌس‬bean
‫تعدٌله‬ ‫علٌك‬ ‫ٌفترض‬ ً‫الت‬ ‫القائمة‬.‫بوضع‬ ‫وذالك‬ ‫هذا‬ ‫فعل‬ ‫ٌمكنك‬ ‫فإنه‬ ‫مشكلة‬ ‫ال‬jsp:setProperty‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬
‫تاغ‬jsp:useBean‫إلى‬ ‫الوصل‬ ‫فٌها‬ ‫ٌتم‬ ً‫الت‬ ‫األولى‬ ‫الصفحة‬ ‫ولكن‬ ‫صفحات‬ ‫عدة‬ ً‫ف‬ ‫هذا‬ ‫فعل‬ ‫وٌمكنك‬bean‫فٌه‬ ‫سٌتم‬
‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬ ‫ما‬ ‫تنفٌذ‬jsp:useBean.
‫فٌه‬ ‫القادم‬ ‫المثال‬ ً‫ف‬ ‫لٌنا‬ ‫المثال‬ ‫سبٌل‬ ‫على‬bean‫هما‬ ‫خاصٌتان‬ ‫وله‬accessCount‫و‬firstPage‫الخاصٌة‬
accessCountً‫ف‬ ‫تنفٌذها‬ ‫وٌتم‬ ‫ببعضها‬ ‫صلة‬ ‫ذات‬ ‫صفحات‬ ‫مجموعة‬ ‫ضمن‬ ‫من‬ ‫صفحة‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫عدد‬ ‫ٌسجل‬
‫الخاصٌة‬ ‫أما‬ ‫الصفحات‬ ‫كل‬firstPage‫تنفٌذها‬ ‫ٌتم‬ ‫فإنه‬ ً‫وبتال‬ ‫علٌها‬ ‫الحصول‬ ‫تم‬ ‫صفحة‬ ‫أول‬ ‫اسم‬ ‫بتخزٌن‬ ‫ٌقوم‬ ‫فأنه‬
‫نضع‬ ‫فإننا‬ ‫ذالك‬ ‫ولتنفٌذ‬ ً‫ال‬‫أو‬ ‫إلٌها‬ ‫الوصول‬ ‫تم‬ ً‫الت‬ ‫الصفحة‬ ً‫ف‬jsp:setProperty‫الخاصٌة‬ ‫بتعدٌل‬ ‫تقوم‬ ً‫الت‬
firstPage‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬jsp:useBean‫الـ‬ ‫أنشاء‬ ‫عند‬ ‫واحدة‬ ‫مرة‬ ‫تنفٌذها‬ ‫ٌتم‬ ً‫لك‬bean.
‫لـ‬ ‫بالنسبة‬jsp:setProperty‫الخاصٌة‬ ‫تعدل‬ ً‫الت‬accessCount‫المشروط‬ ‫اإلنشاء‬ ‫خارج‬ ‫تكون‬ ‫فإنها‬.
‫النهج‬ ‫هذا‬ ‫ٌستخدم‬ ‫صفحات‬ ‫ثالث‬ ‫مثالنا‬ ً‫وف‬.
‫الصف‬AccessCountBean.java
package coreservlets;
/** Simple bean to illustrate sharing beans through
* use of the scope attribute of jsp:useBean.
*/
public class AccessCountBean {
private String firstPage;
private int accessCount = 1;
public String getFirstPage() {
return(firstPage);
}
public void setFirstPage(String firstPage) {
this.firstPage = firstPage;
}
public int getAccessCount() {
return(accessCount);
}
public void setAccessCountIncrement(int increment) {
accessCount = accessCount + increment;
}
}
‫الصفحة‬SharedCounts1.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Shared Access Counts: Page 1</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<TABLE BORDER=5 ALIGN="CENTER">
<TR><TH CLASS="TITLE">
Shared Access Counts: Page 1</TABLE>
<P>
<jsp:useBean id="counter"
class="coreservlets.AccessCountBean"
scope="application">
<jsp:setProperty name="counter"
property="firstPage"
value="SharedCounts1.jsp" />
</jsp:useBean>
Of SharedCounts1.jsp (this page),
<A HREF="SharedCounts2.jsp">SharedCounts2.jsp</A>, and
<A HREF="SharedCounts3.jsp">SharedCounts3.jsp</A>,
<jsp:getProperty name="counter" property="firstPage" />
was the first page accessed.
<P>
Collectively, the three pages have been accessed
<jsp:getProperty name="counter" property="accessCount" />
times.
<jsp:setProperty name="counter" property="accessCountIncrement" value="1" />
</BODY></HTML>
‫الثانٌة‬ ‫الصفحة‬ ً‫ه‬ ‫لها‬ ‫وصل‬ ‫تم‬ ‫صفحة‬ ‫أول‬ ‫أنه‬ ‫هنا‬ ‫من‬ ‫ونجد‬ ‫الثالثة‬ ‫الصفحة‬ ‫هذه‬
‫الـ‬ ‫مشاركة‬Bean‫مثال‬ ‫مع‬ ‫مختلفة‬ ‫طرق‬ ‫أربع‬ ً‫ف‬
‫الـ‬ ‫الستخدام‬ ‫المختلفة‬ ‫الجوانب‬ ‫لتوضح‬ ‫مفصل‬ ‫شرح‬ ‫نشرح‬ ‫سوف‬ ‫الفقرة‬ ‫هذه‬ ً‫ف‬Bean:
‫سٌكون‬ ‫الذي‬ ‫الصف‬ ‫ننشأ‬ ‫سوف‬ ً‫ال‬‫أو‬bean‫الصفحات‬ ً‫ف‬JSP.
‫الـ‬ ‫مشاركة‬ ‫عدم‬ ‫استخدام‬ ً‫ا‬ٌ‫ثان‬Bean(‫الـ‬ ‫رؤٌة‬ ‫مجال‬bean‫أي‬ ‫الصفحة‬ ‫ضمن‬pagescope=)
‫الـ‬ ‫مشاركة‬ ً‫ا‬‫ثالث‬Bean‫الطلب‬ ً‫ف‬(requestscope=)
‫الـ‬ ‫مشاركة‬ ً‫ا‬‫رابع‬Bean‫الجلسة‬ ً‫ف‬(sessionscope=)
‫الـ‬ ‫مشاركة‬ ً‫ا‬‫خامس‬Bean‫التطبٌق‬ ً‫ف‬(applicationscope=)
‫قبل‬‫االنتقال‬‫إلى‬‫األمثلة‬‫وهو‬ ‫واحد‬ ‫تحذٌر‬ ‫هناك‬‫تخزٌن‬‫الـ‬Beansً‫ف‬‫رؤٌة‬ ‫مجالت‬‫مختلفة‬‫تأكد‬‫من‬‫استخدام‬‫أسماء‬
‫مختلفة‬‫لكل‬bean‫السرفر‬ ‫ٌخلط‬ ‫أن‬ ‫الممكن‬ ‫من‬ ‫فأنه‬ ‫ذالك‬ ‫خالف‬ ‫حدث‬ ‫إذا‬ ‫ألنه‬‫الـ‬ ‫بٌن‬beans‫الـ‬ ‫لنا‬ ‫وٌعٌد‬bean‫الخطأ‬.
‫الصف‬BakedBean.java
package coreservlets;
/** Small bean to illustrate various bean-sharing mechanisms. */
public class BakedBean {
private String level = "half-baked";
private String goesWith = "hot dogs";
public String getLevel() {
return(level);
}
public void setLevel(String newLevel) {
level = newLevel;
}
public String getGoesWith() {
return(goesWith);
}
public void setGoesWith(String dish) {
goesWith = dish;
}
}
‫الصفحة‬ ‫رؤٌة‬ ‫مجال‬ ‫استخدام‬(‫الـ‬ ‫مشاركة‬ ‫عدم‬Bean)
‫نحن‬ ً‫ا‬‫حسن‬‫راضون‬‫أن‬‫الـ‬bean‫ٌعمل‬‫بشكل‬,‫صحٌح‬‫ونحن‬‫على‬‫استعداد‬‫الستخدامه‬ً‫ف‬‫صفحة‬JSP.‫مثال‬‫األول‬‫هو‬
‫و‬ ‫أنشاء‬‫تعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫تماما‬ً‫ف‬‫غضون‬‫طلب‬‫صفحة‬‫واحدة‬.‫كما‬ ‫العملٌة‬ ‫سٌر‬ ‫وسٌكون‬ً‫ٌل‬:
‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="page"(‫استخدام‬ ‫عدم‬ ‫وٌمكنك‬scope‫ألن‬
ً‫ه‬ ‫االفتراضٌة‬ ‫القٌمة‬page).
‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*".
‫الـ‬ ‫إلى‬ ‫الوصول‬bean:‫سنستخدم‬jsp:getProperty.
‫صفحة‬BakedBeanDisplay-page.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Baked Bean Values: page-based Sharing</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H1>Baked Bean Values: page-based Sharing</H1>
<jsp:useBean id="pageBean" class="coreservlets.BakedBean" />
<jsp:setProperty name="pageBean" property="*" />
<H2>Bean level:
<jsp:getProperty name="pageBean" property="level" /></H2>
<H2>Dish bean goes with:
<jsp:getProperty name="pageBean" property="goesWith" /></H2>
</BODY></HTML>
‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay-page.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬
‫هذا‬ ً‫ف‬ ‫الرؤٌة‬ ‫مجال‬ ‫ألن‬ ً‫األول‬ ‫الطلب‬ ً‫ف‬ ‫القٌمة‬ ‫تظهر‬ ‫ولم‬ ‫االفتراضٌة‬ ً‫ه‬ ‫الخصائص‬ ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬
‫هو‬ ‫المثال‬page.
‫الـ‬ ‫مشاركة‬ ‫استخدام‬Bean‫الطلب‬ ً‫ف‬
‫ىـ‬ ‫اىوصوه‬ ‫و‬ ‫تعذيو‬ ‫و‬ ‫أّشاء‬ ‫هو‬ ‫اىثاّي‬ ‫اىَثاه‬bean‫اىغشض‬ ‫ّفس‬ ُ‫تشاسما‬ ِ‫ٍختيفتي‬ ِ‫صفحتي‬ َِ‫ض‬.
‫بواسطة‬ ‫اىثاّية‬ ‫اىصفحة‬ ‫استذعاء‬ ٌ‫ت‬ ‫إرا‬ ‫األوىى‬ ‫اىصفحة‬ ‫في‬ ‫اىَوجود‬ ‫اىغشض‬ ‫تشاسك‬ ‫اىثاّية‬ ‫اىصفحة‬ ‫أّه‬ ‫هْا‬ ‫ّزمش‬
jsp:include‫أو‬jsp:forward‫بـ‬ ً‫اىقيا‬ ً‫ا‬‫أيض‬ ‫ويَنْل‬include‫و‬forward‫اىطشيقة‬ ‫بواسطة‬RequestDispatcher.
‫اىَطيوب‬ ‫اىسيوك‬ ‫عيى‬ ‫وىيحصوه‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬:
‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="request".
‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*".
‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫األولى‬ ‫الصفحة‬ ً‫ف‬:‫سنستخدم‬jsp:getProperty.‫سنستخدم‬ ‫وبعدها‬
jsp:include‫الثانٌة‬ ‫الصفحة‬ ‫الستدعاء‬.
‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫الثانٌة‬ ‫الصفحة‬ ً‫ف‬:‫سنستخدم‬jsp:useBean‫نفس‬ ‫له‬ ‫وسٌكون‬idً‫ف‬ ‫الموجود‬
‫سٌكون‬ ‫و‬ ‫األولى‬ ‫الصفحة‬scope="request"‫سنستخدم‬ ‫ذالك‬ ‫وبعد‬jsp:getProperty.
‫األولى‬ ‫صفحة‬BakedBeanDisplay-request.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Baked Bean Values: request-based Sharing</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H1>Baked Bean Values: request-based Sharing</H1>
<jsp:useBean id="requestBean" class="coreservlets.BakedBean"
scope="request" />
<jsp:setProperty name="requestBean" property="*" />
<H2>Bean level:
<jsp:getProperty name="requestBean" property="level" /></H2>
<H2>Dish bean goes with:
<jsp:getProperty name="requestBean" property="goesWith" /></H2>
<jsp:include page="BakedBeanDisplay-snippet.jsp" />
</BODY></HTML>
‫الثانٌة‬ ‫الصفحة‬BakedBeanDisplay-snippet.jsp
<H1>Repeated Baked Bean Values: request-based Sharing</H1>
<jsp:useBean id="requestBean" class="coreservlets.BakedBean"
scope="request" />
<H2>Bean level:
<jsp:getProperty name="requestBean" property="level" /></H2>
<H2>Dish bean goes with:
<jsp:getProperty name="requestBean" property="goesWith" /></H2>
‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- request.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫الصفحة‬ ‫أن‬ ‫ونجد‬ ‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬
‫القٌم‬ ‫نفس‬ ‫أخذت‬ ‫المضمنة‬.
‫القٌم‬ ‫نفس‬ ‫أخذت‬ ‫المضمنة‬ ‫الصفحة‬ ‫أن‬ ‫ونجد‬ ‫االفتراضٌة‬ ً‫ه‬ ‫الخصائص‬ ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫تكون‬ ‫الشكل‬ ‫فبهذا‬
‫الـ‬ ‫مشاركة‬ ‫تمت‬bean‫الطلب‬ ً‫ف‬.
‫الـ‬ ‫مشاركة‬ ‫استخدام‬Bean‫الجلسة‬ ً‫ف‬
‫أما‬‫المثال‬‫الثالث‬‫ٌتضمن‬‫جزأٌن‬.,‫أوال‬‫نحن‬‫نرٌد‬‫إلنشاء‬‫وتعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫داخل‬‫الصفحة‬.,ً‫الثان‬‫إذا‬‫كان‬
‫العمٌل‬‫نفسه‬‫عاد‬ ‫قد‬‫إلى‬‫فٌجب‬ ‫الصفحة‬‫أن‬‫ٌرى‬‫الـ‬bean‫من‬ ‫تعدل‬ ‫كما‬‫قبل‬.‫الدرس‬ ً‫ف‬ ‫الجلسات‬ ‫مثل‬ ً‫ا‬‫تمام‬ ‫ٌجري‬ ‫هذا‬
‫التاسع‬‫اىَطيوب‬ ‫اىسيوك‬ ‫عيى‬ ‫وىيحصوه‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬:
‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="session".
‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*".
‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫البارمترات‬ ‫استقبال‬ ‫عند‬:‫سنستخدم‬jsp:getProperty.‫استدعاء‬ ‫تم‬ ‫بعدما‬
jsp:setProperty.
‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫الصفحة‬ ‫لنفس‬ ً‫ا‬‫الحق‬:‫سنستخدم‬jsp:getProperty‫ٌتم‬ ‫لن‬ ‫المرة‬ ‫هذه‬ ً‫ف‬ ‫ولكم‬
‫بارمترات‬ ‫تضمٌن‬‫استدعاء‬ ‫ٌتم‬ ‫ولن‬jsp:setProperty‫العمٌل‬ ‫نفس‬ ‫من‬ ‫الصفحة‬ ‫الطلب‬ ‫كان‬ ‫إذا‬(‫خالل‬
‫الجلسة‬ ‫فترة‬).
‫الصفحة‬BakedBeanDisplay-session.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Baked Bean Values: session-based Sharing</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H1>Baked Bean Values: session-based Sharing</H1>
<jsp:useBean id="sessionBean" class="coreservlets.BakedBean"
scope="session" />
<jsp:setProperty name="sessionBean" property="*" />
<H2>Bean level:
<jsp:getProperty name="sessionBean" property="level" /></H2>
<H2>Dish bean goes with:
<jsp:getProperty name="sessionBean" property="goesWith" /></H2>
</BODY></HTML>
‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- session.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬.
‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌمة‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫الطلبات‬ ‫بٌن‬ ‫نفسها‬ ‫تبقى‬
‫الـ‬ ‫مشاركة‬ ‫هو‬ ‫هذه‬ ‫الجلسة‬ ‫نفس‬ ً‫ف‬ ‫الزبون‬ ‫نفس‬ ‫كان‬ ‫إذا‬bean‫الجلسات‬ ً‫ف‬.
‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫آخر‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫افتراضٌة‬ ‫قٌمة‬ ً‫ه‬ ‫أخذها‬ ً‫الت‬bean‫بٌن‬ ‫نفسها‬ ‫تبقى‬ ‫لم‬
‫جدٌدة‬ ‫جلسة‬ ‫تكون‬ ‫أو‬ ‫أختلف‬ ‫قد‬ ‫هنا‬ ‫الزبون‬ ‫ألن‬ ‫الطلبات‬.
‫استخدام‬‫الـ‬ ‫مشاركة‬Bean‫التطبٌق‬ ً‫ف‬
‫المثال‬‫واألخٌر‬ ‫الرابع‬‫ٌتضمن‬‫جزأٌن‬.,‫أوال‬‫نحن‬‫نرٌد‬‫إلنشاء‬‫وتعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫داخل‬‫الصفحة‬.ً‫ا‬ٌ‫الثان‬‫إذا‬
‫الـ‬ ‫ٌرى‬ ً‫أن‬ ‫ٌجب‬ ‫العمٌل‬ ‫فهنا‬ ‫الحق‬ ‫وقت‬ ً‫ف‬ ‫الصفحة‬ ‫إلى‬ ‫عمٌل‬ ‫أي‬ ‫أتى‬bean‫قبل‬ ‫من‬ ‫تعدٌلها‬ ‫تم‬ ‫كما‬‫عيى‬ ‫وىيحصوه‬
‫اىَطيوب‬ ‫اىسيوك‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬:
‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="session".
‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*".
‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫البارمترات‬ ‫استقبال‬ ‫عند‬:‫سنستخدم‬jsp:getProperty.‫استدعاء‬ ‫تم‬ ‫بعدما‬
jsp:setProperty.
‫الـ‬ ‫إلى‬ ‫الوصول‬beanً‫ا‬‫الحق‬:‫سنستخدم‬jsp:getProperty‫بارمترات‬ ‫تضمٌن‬ ‫ٌتم‬ ‫لن‬ ‫المرة‬ ‫هذه‬ ً‫ف‬ ‫ولكم‬
‫بحاجة‬ ‫لسنا‬ ً‫والتال‬jsp:setProperty.‫ألنه‬ ‫أخر‬ ‫عمٌل‬ ‫أو‬ ‫نفس‬ ‫العمٌل‬ ‫الصفحة‬ ‫طلب‬ ‫من‬ ‫ٌهم‬ ‫ال‬ ‫وهنا‬
‫تعدٌلها‬ ‫تم‬ ‫كما‬ ‫القٌمة‬ ‫سٌرى‬.
‫الصفحة‬BakedBeanDisplay-application.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Baked Bean Values: application-based Sharing</TITLE>
<LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css">
</HEAD>
<BODY>
<H1>Baked Bean Values: application-based Sharing</H1>
<jsp:useBean id="sessionBean" class="coreservlets.BakedBean"
scope=" application" />
<jsp:setProperty name="applicationBean" property="*" />
<H2>Bean level:
<jsp:getProperty name="applicationBean" property="level" /></H2>
<H2>Dish bean goes with:
<jsp:getProperty name="applicationBean" property="goesWith" /></H2>
</BODY></HTML>
‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- application.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬.
‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌمة‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫الطلبات‬ ‫بٌن‬ ‫نفسها‬ ‫تبقى‬.
‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫أخر‬ ‫عمٌل‬ ‫من‬ ‫أخر‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌم‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫تبقى‬
‫الـ‬ ‫مشاركة‬ ‫هو‬ ‫هذه‬ ‫مختلفة‬ ‫جلسة‬ ‫أو‬ ‫مختلف‬ ‫العمٌل‬ ‫كان‬ ‫إذا‬ ‫حتى‬ ‫الطلبات‬ ‫بٌن‬ ‫نفسها‬bean‫التطبٌق‬ ً‫ف‬.
‫الدرس‬ ‫نهاٌة‬

More Related Content

What's hot

باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة anees abu-hmaid
 
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekمهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekanees abu-hmaid
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة anees abu-hmaid
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةanees abu-hmaid
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة anees abu-hmaid
 
مذكرة في لغة Html 2
مذكرة في لغة Html   2مذكرة في لغة Html   2
مذكرة في لغة Html 2خالد مراد
 
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم NoureddineHassi
 
مواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScriptمواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScriptMolham Al-Maleh
 
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4Molham Al-Maleh
 
Web development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقعWeb development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقعiLink sa
 
الدرس الثالث عشر
الدرس الثالث عشرالدرس الثالث عشر
الدرس الثالث عشرAnas Aloklah
 

What's hot (12)

باللغة العربية HTML دورة
  باللغة العربية HTML دورة   باللغة العربية HTML دورة
باللغة العربية HTML دورة
 
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geekمهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
 
باللغة العربية SASS دورة
  باللغة العربية SASS دورة   باللغة العربية SASS دورة
باللغة العربية SASS دورة
 
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربيةjava script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
 
باللغة العربية CSS دورة
  باللغة العربية CSS دورة   باللغة العربية CSS دورة
باللغة العربية CSS دورة
 
مذكرة في لغة Html 2
مذكرة في لغة Html   2مذكرة في لغة Html   2
مذكرة في لغة Html 2
 
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
 
مواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScriptمواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScript
 
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
 
Web development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقعWeb development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقع
 
الدرس الثالث عشر
الدرس الثالث عشرالدرس الثالث عشر
الدرس الثالث عشر
 
Bootstrap-1
Bootstrap-1Bootstrap-1
Bootstrap-1
 

Viewers also liked

자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
CashFear Arabic Presentation
CashFear Arabic PresentationCashFear Arabic Presentation
CashFear Arabic PresentationAlaa Sol
 

Viewers also liked (7)

Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Java Server Pages
Java Server PagesJava Server Pages
Java Server Pages
 
Jsp
JspJsp
Jsp
 
Jsp presentation
Jsp presentationJsp presentation
Jsp presentation
 
Jsp ppt
Jsp pptJsp ppt
Jsp ppt
 
CashFear Arabic Presentation
CashFear Arabic PresentationCashFear Arabic Presentation
CashFear Arabic Presentation
 

Similar to الدرس السادس عشر

الدرس الثاني عشر
الدرس الثاني عشرالدرس الثاني عشر
الدرس الثاني عشرAnas Aloklah
 
functional requirements and non functional requirements
functional requirements and non functional requirementsfunctional requirements and non functional requirements
functional requirements and non functional requirementsAliMohammad155
 
مذكرة في لغة Html 2
مذكرة في لغة Html   2مذكرة في لغة Html   2
مذكرة في لغة Html 2خالد مراد
 
Www.kutub.info 17040
Www.kutub.info 17040Www.kutub.info 17040
Www.kutub.info 17040Imad Modi
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى PhpPrmigo
 
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة elmouhssini1
 
انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة elmouhssini1
 
جافا سكريبت
جافا سكريبتجافا سكريبت
جافا سكريبتosman do
 
الدرس الخامس عشر
الدرس الخامس عشرالدرس الخامس عشر
الدرس الخامس عشرAnas Aloklah
 
Back links
Back linksBack links
Back linkssami dib
 
Web performance - الجزء الخامس
Web performance - الجزء الخامسWeb performance - الجزء الخامس
Web performance - الجزء الخامسanees abu-hmaid
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented ProgrammingOmar Albelbaisy
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةجامعة القدس المفتوحة
 
محتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdfمحتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdfHassanEssam4
 
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfMohamedMostafa897436
 
خلاصات Rss
خلاصات Rssخلاصات Rss
خلاصات RssKhaled Safi
 

Similar to الدرس السادس عشر (20)

الدرس الثاني عشر
الدرس الثاني عشرالدرس الثاني عشر
الدرس الثاني عشر
 
functional requirements and non functional requirements
functional requirements and non functional requirementsfunctional requirements and non functional requirements
functional requirements and non functional requirements
 
مذكرة في لغة Html 2
مذكرة في لغة Html   2مذكرة في لغة Html   2
مذكرة في لغة Html 2
 
Www.kutub.info 17040
Www.kutub.info 17040Www.kutub.info 17040
Www.kutub.info 17040
 
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Phpالمختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
 
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
 
انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة
 
Database Administration
Database AdministrationDatabase Administration
Database Administration
 
جافا سكريبت
جافا سكريبتجافا سكريبت
جافا سكريبت
 
الدرس الخامس عشر
الدرس الخامس عشرالدرس الخامس عشر
الدرس الخامس عشر
 
Moodle plugins programing manual
Moodle plugins programing manualMoodle plugins programing manual
Moodle plugins programing manual
 
قوة الباك لينكس
قوة الباك لينكس قوة الباك لينكس
قوة الباك لينكس
 
Back links
Back linksBack links
Back links
 
Web performance - الجزء الخامس
Web performance - الجزء الخامسWeb performance - الجزء الخامس
Web performance - الجزء الخامس
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
 
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسةملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
 
محتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdfمحتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdf
 
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
 
خلاصات Rss
خلاصات Rssخلاصات Rss
خلاصات Rss
 
Articulate2
Articulate2Articulate2
Articulate2
 

More from Anas Aloklah

مقدمة قواعد بيانات أوراكل
مقدمة قواعد بيانات أوراكلمقدمة قواعد بيانات أوراكل
مقدمة قواعد بيانات أوراكلAnas Aloklah
 
الدرس الحادي عشر
الدرس الحادي عشرالدرس الحادي عشر
الدرس الحادي عشرAnas Aloklah
 
الدرس العاشر
الدرس العاشرالدرس العاشر
الدرس العاشرAnas Aloklah
 
الدرس التاسع
الدرس التاسعالدرس التاسع
الدرس التاسعAnas Aloklah
 
الدرس الثامن
الدرس الثامنالدرس الثامن
الدرس الثامنAnas Aloklah
 
الدرس السابع
الدرس السابعالدرس السابع
الدرس السابعAnas Aloklah
 
الدرس السادس
الدرس السادسالدرس السادس
الدرس السادسAnas Aloklah
 
الدرس الخامس
الدرس الخامسالدرس الخامس
الدرس الخامسAnas Aloklah
 
الدرس الرابع
الدرس الرابعالدرس الرابع
الدرس الرابعAnas Aloklah
 
الدرس الثالث
الدرس الثالثالدرس الثالث
الدرس الثالثAnas Aloklah
 
الدرس الثاني
الدرس الثانيالدرس الثاني
الدرس الثانيAnas Aloklah
 
Introduction in jsp & servlet
Introduction in jsp & servlet Introduction in jsp & servlet
Introduction in jsp & servlet Anas Aloklah
 

More from Anas Aloklah (12)

مقدمة قواعد بيانات أوراكل
مقدمة قواعد بيانات أوراكلمقدمة قواعد بيانات أوراكل
مقدمة قواعد بيانات أوراكل
 
الدرس الحادي عشر
الدرس الحادي عشرالدرس الحادي عشر
الدرس الحادي عشر
 
الدرس العاشر
الدرس العاشرالدرس العاشر
الدرس العاشر
 
الدرس التاسع
الدرس التاسعالدرس التاسع
الدرس التاسع
 
الدرس الثامن
الدرس الثامنالدرس الثامن
الدرس الثامن
 
الدرس السابع
الدرس السابعالدرس السابع
الدرس السابع
 
الدرس السادس
الدرس السادسالدرس السادس
الدرس السادس
 
الدرس الخامس
الدرس الخامسالدرس الخامس
الدرس الخامس
 
الدرس الرابع
الدرس الرابعالدرس الرابع
الدرس الرابع
 
الدرس الثالث
الدرس الثالثالدرس الثالث
الدرس الثالث
 
الدرس الثاني
الدرس الثانيالدرس الثاني
الدرس الثاني
 
Introduction in jsp & servlet
Introduction in jsp & servlet Introduction in jsp & servlet
Introduction in jsp & servlet
 

الدرس السادس عشر

  • 1. ‫الرحٌم‬ ‫الرحمن‬ ‫هللا‬ ‫بسم‬ ‫استخدام‬ ‫عن‬ ‫الدرس‬ ‫سٌكون‬ ‫الٌوم‬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‫وهذا‬ ‫الدورة‬ ‫هذا‬ ‫من‬ ‫المتقدم‬ ‫القسم‬ ً‫ف‬ ‫نأخذه‬ ‫سوف‬
  • 2. ‫الـ‬ ً‫ه‬ ‫ما‬Beans‫؟‬ ‫الـ‬beans‫كل‬ ً‫قٌاس‬ ‫بشكل‬ ‫كتابته‬ ‫تم‬ ‫جافا‬ ‫صف‬ ‫عن‬ ‫عبارة‬ ‫ببساطة‬ ً‫ه‬‫ما‬‫تحتاج‬‫لمعرفته‬‫تكوٌن‬ ‫حول‬‫الـ‬beansً‫ه‬ ‫النقاط‬‫الثالث‬‫البسٌطة‬‫المبٌنة‬ً‫ف‬‫القائمة‬‫التالٌة‬: ‫الـ‬ ‫به‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫الصف‬ ‫على‬bean‫وسطاء‬ ‫دون‬ ً‫بان‬ ‫فٌه‬ ‫ٌكون‬ ‫أن‬. ‫الشكل‬ ‫وبهذا‬ ‫البناء‬ ‫داالت‬ ‫كل‬ ‫حذف‬ ‫طرٌق‬ ‫عن‬ ‫أو‬ ‫صرٌح‬ ‫بشكل‬ ‫وسطاء‬ ‫بدون‬ ً‫بان‬ ‫بإنشاء‬ ‫أما‬ ‫هذا‬ ‫فعل‬ ‫تستطٌع‬ ‫وسطاء‬ ‫بدون‬ ً‫البان‬ ‫أنشاء‬ ‫ٌتم‬(ً‫افتراض‬)ً‫ا‬ٌ‫تلقائ‬.‫الـ‬ ‫عنصر‬ ‫إنشاء‬ ‫بمجرد‬ ً‫االفتراض‬ ً‫البان‬ ‫إنشاء‬ ‫ٌتم‬bean ‫الـ‬ ً‫ف‬JSP. ‫الـ‬ ‫به‬ ‫نستخدمه‬ ‫سوف‬ ‫الذي‬ ‫الصف‬ ‫على‬bean‫عامة‬ ‫فٌه‬ ‫المتغٌرات‬ ‫نجعل‬ ‫ال‬ ‫أن‬. ‫الـ‬ ً‫ف‬ ‫صف‬ ‫استخدام‬ ‫ترٌد‬ ‫عندما‬bean‫عامة‬ ‫لٌس‬ ‫متغٌرات‬ ‫الصف‬ ً‫ف‬ ‫المتغٌرات‬ ‫تكون‬ ‫أن‬ ‫علٌك‬ ‫ٌتوجب‬ ‫فإنه‬ ‫الطرق‬ ‫نستخدم‬ ‫وهنا‬setter‫و‬getter‫المباشر‬ ‫للوصول‬ ‫السماح‬ ‫من‬ ً‫ال‬‫بد‬ ‫للمتغٌر‬ ‫للوصول‬. ‫بـ‬ ‫الطرق‬ ‫تسمٌة‬ ‫ٌجب‬ ‫الصف‬ ً‫ف‬ ‫الموجودة‬ ‫للطرق‬ ‫للوصول‬setXxx‫و‬getXxx. ‫صف‬ ‫المثال‬ ‫سبٌل‬ ‫على‬ ‫لدٌنا‬ ‫لٌكن‬Car‫للركاب‬ ً‫الحال‬ ‫العدد‬ ‫ٌعطٌنا‬ ‫حقل‬ ‫وفٌه‬‫المتغٌر‬ ‫هذا‬ ‫اسم‬ numPassengersً‫وه‬ ‫الوصول‬ ‫طرق‬ ‫لدٌنا‬ ‫ٌكون‬ ‫أن‬ ‫ٌجب‬ ‫هنا‬getNumPassengers‫ال‬ ‫الطرٌقة‬ ‫وهذه‬ ‫النمط‬ ‫من‬ ‫قٌمة‬ ‫لنا‬ ‫وتعٌد‬ ‫وسطاء‬ ‫تأخذ‬int‫الطرٌقة‬ ‫ولدٌنا‬setNumPassengers‫قٌمة‬ ‫تأخذ‬ ً‫الت‬int‫وال‬ ‫شًء‬ ‫لنا‬ ‫تعٌد‬.‫الطرق‬ ‫استدعاء‬ ‫فٌتم‬ ‫الحالة‬ ‫هذه‬ ‫مثل‬ ً‫وف‬(‫تسمى‬‫الخاصٌة‬‫الـ‬ ً‫ف‬bean)‫الـ‬ ً‫ف‬bean ‫للصف‬Car‫باالسم‬numPassengers(‫الصغٌر‬ ‫الحرف‬ ‫الخاصٌة‬ ‫اسم‬ ً‫ف‬ ‫نالحظ‬n‫اسم‬ ً‫ف‬ ‫كبٌر‬ ‫حرف‬ ‫لكنه‬ ‫الصف‬ ً‫ف‬ ‫الطرٌقة‬Car.) ‫القاعدة‬1:‫الطرق‬ ‫على‬ ‫ٌحوي‬ ‫الصف‬ ً‫ف‬ ‫كان‬ ‫إذا‬getXxx‫و‬setXxx‫الطرٌقتٌن‬ ‫إحدى‬ ‫استدعاء‬ ‫ٌتم‬ ‫فإنه‬ ‫باالسم‬xxx. ‫منطقٌة‬ ‫قٌمة‬ ‫لنا‬ ‫تعٌد‬ ‫الطرٌقة‬ ‫كانت‬ ‫حال‬ ً‫ف‬ ‫الطرٌقة‬ ‫اسم‬ ‫اصطالح‬ ً‫ف‬ ‫السابقة‬ ‫للقاعدة‬ ‫وحٌد‬ ‫استثناء‬ ‫لدٌنا‬ (boolean)‫بـ‬ ‫الطرٌقة‬ ‫تسمٌة‬ ‫علٌك‬ ‫ٌتوجب‬ ‫هنا‬isXxx‫من‬ ً‫ال‬‫بد‬getXxx. ‫صف‬ ‫لمثال‬ ‫لنعد‬Car‫نمط‬ ‫من‬ ‫متغٌر‬ ‫لدٌنا‬ ‫ولٌكن‬boolean‫اسمه‬leased‫ال‬ ‫أم‬ ‫مأجورة‬ ‫السٌارة‬ ‫أن‬ ً‫ٌعن‬ ً‫وه‬ ً‫ه‬ ‫المتغٌر‬ ‫لهذا‬ ‫الوصول‬ ‫طرق‬ ‫تكون‬ ‫هنا‬isLeasedً‫الت‬‫النمط‬ ‫من‬ ‫قٌمة‬ ‫لنا‬ ‫وتعٌد‬ ‫وسطاء‬ ‫تأخذ‬boolean ‫والطرٌقة‬setLeased‫قٌمة‬ ‫تأخذ‬ ً‫الت‬boolean‫شًء‬ ‫لنا‬ ‫تعٌد‬ ‫وال‬,‫الـ‬ ً‫ف‬ ‫تستدعٌها‬ ‫هنا‬bean‫باسم‬ leased. ‫القاعدة‬2:‫لنا‬ ‫تعٌد‬ ‫قٌمة‬ ‫لدٌنا‬ ‫كان‬ ‫إذا‬boolean‫الطرٌقة‬ ‫اسم‬ ‫ٌكون‬ ‫أن‬ ‫ٌتوجب‬ ‫فإنه‬isXxx‫من‬ ً‫ال‬‫بد‬ getXxx. ‫الـ‬ ‫استخدام‬ ‫طرٌقة‬Beans‫؟‬ ‫الـ‬ ‫لبناء‬ ‫استخدامها‬ ‫ٌجب‬ ‫األساسٌة‬ ‫بنٌات‬ ‫ثالث‬ ‫هناك‬JavaBeans‫الـ‬ ‫الصفحات‬ ً‫ف‬ ‫ومعالجتها‬JSP: jsp:useBean.ً‫ف‬‫أبسط‬,‫الحاالت‬‫هذا‬‫العنصر‬ً‫ٌبن‬bean‫جدٌد‬.ً‫ة‬‫وعاد‬‫ما‬‫تستخدم‬‫على‬‫النحو‬ً‫التال‬: <jsp:useBean id="beanName" class="package.Class" /> ‫الخاصٌة‬ ‫وضع‬ ً‫ا‬‫أٌض‬ ‫فٌمكنك‬ ‫العنصر‬ ‫لهذا‬ ً‫ا‬‫أضاف‬ ‫أٌضا‬scope‫الـ‬ ‫مشاركة‬ ً‫ف‬ ‫نشرحها‬ ‫سوف‬ ً‫الت‬bean. jsp:getProperty.‫الـ‬ ‫خاصٌة‬ ‫من‬ ‫قٌمة‬ ‫واستخراج‬ ‫لقراءة‬ ‫ٌستخدم‬ ‫العنصر‬ ‫هذا‬bean.‫تشٌر‬ ‫الخاصٌة‬ ‫وقراءة‬ ‫الشكل‬ ‫من‬ ‫الطرٌقة‬ ‫استدعاء‬ ‫أجل‬ ‫من‬ ‫المختصر‬ ‫االسم‬ ‫إلى‬getXxx.‫ٌتم‬‫استخدام‬‫هذا‬‫العنصر‬‫على‬‫النحو‬ ً‫التال‬: <jsp:getProperty name="beanName" property="propertyName" />
  • 3. jsp:setProperty.‫لـ‬ ‫الخاصٌة‬ ‫قٌمة‬ ‫تعدٌل‬ ‫أجل‬ ‫من‬ ‫العنصر‬ ‫هذا‬bean‫الشكل‬ ‫من‬ ً‫الت‬ ‫الطرق‬ ً‫ٌستدع‬ ‫وهو‬ setXxxً‫ا‬‫سابق‬ ‫أسلفنا‬ ‫كما‬ ‫المختصر‬ ‫باسمه‬ ‫ستدعٌه‬ ً‫ا‬‫طبع‬.ً‫ة‬‫وعاد‬‫ما‬‫تستخدم‬‫على‬‫النحو‬ً‫التال‬: <jsp:setProperty name="beanName" property="propertyName" value="propertyValue" /> ‫بالتفصٌل‬ ‫سبق‬ ‫ما‬ ‫شرح‬ ‫ٌتم‬ ‫سوف‬ ‫اآلن‬. ‫الـ‬ ‫بناء‬bean:jsp:useBean ‫أن‬jsp:useBean‫تحمٌل‬ ‫لك‬ ‫تتٌح‬ ‫األكشن‬ ‫عنصر‬ ً‫ف‬‫الـ‬bean‫الـ‬ ً‫ف‬ ‫واستخدامها‬JSP.‫الـ‬beans‫قدرة‬ ‫توفٌر‬‫مفٌدة‬ ً‫ا‬‫جد‬‫ألنها‬‫تتٌح‬‫لك‬‫استغالل‬‫إعادة‬‫استخدام‬‫الـ‬ ‫صف‬Java‫دون‬‫التضحٌة‬‫استخدام‬ ‫بسهولة‬JSP. ‫أبسط‬‫بناء‬‫الجملة‬‫من‬‫أجل‬‫تحدٌد‬‫الـ‬beanً‫الت‬‫ٌجب‬‫استخدامها‬‫هو‬‫ما‬ً‫ٌل‬: <jsp:useBean id="name" class="package.Class" /> ‫الصف‬ ‫من‬ ‫كائن‬ ‫أنشاء‬ ‫تم‬ ‫أنه‬ ً‫تعن‬ ‫السابقة‬ ‫العبارة‬Classً‫ف‬ ‫الكائن‬ ‫هذا‬ ‫ربط‬ ‫وتم‬_jspService‫محدد‬ ‫باسم‬‫هو‬id. ‫مالحظة‬:‫تستخدم‬ ‫كنت‬ ‫إذا‬ ‫هما‬ ‫النظر‬ ‫بغض‬ ‫تشمله‬ ً‫الت‬ ‫الباقة‬ ‫اسم‬ ‫ذكر‬ ‫مع‬ ‫الصف‬ ‫اسم‬ ‫استخدام‬ ‫هنا‬ ‫علٌك‬ <%@ page import... %> ‫غرض‬ ‫أنشاء‬ ‫عن‬ ‫مثال‬book1‫الصف‬ ‫من‬Book‫بالـ‬ ‫هذا‬ ‫فٌكتب‬beanً‫ٌل‬ ‫كما‬: <jsp:useBean id="book1" class="coreservlets.Book" /> ‫عنصر‬ ‫بواسطة‬ ‫كتابتها‬ ‫ٌمكن‬ ‫السابقة‬ ‫العبارة‬ ‫فإنه‬ ‫وبالمقارنة‬scriptlet‫ماىتاىي‬: <% coreservlets.Book book1 = new coreservlets.Book(); %> ‫الـ‬ ‫استخدام‬ ‫لكن‬bean‫الـ‬ ‫مٌزات‬ ‫ذكرنا‬ ‫وقد‬ ‫أفضل‬bean‫سبق‬ ‫ما‬ ً‫ف‬. ‫الـ‬ ‫لخصائص‬ ‫الوصول‬bean‫بـ‬jsp:getProperty ‫الطرٌقة‬ ‫خرج‬ ‫على‬ ‫الحصول‬ ‫أجل‬ ‫من‬(‫الـ‬ ً‫ف‬ ‫الخاصٌة‬bean)‫التاغ‬ ‫بواسطة‬ ‫ذالك‬jsp:getProperty‫بوضع‬ ‫وتقوم‬ ‫الخاصٌة‬ ‫قٌمة‬name‫الخاصٌة‬ ‫قٌمة‬ ‫نفس‬ ‫التاغ‬ ‫هذا‬ ً‫ف‬id‫التاغ‬ ً‫ف‬jsp:useBean‫الخاصٌة‬ ‫قٌمة‬ ‫بوضع‬ ‫تقوم‬ ‫و‬ property‫الـ‬ ‫الطرٌقة‬ ‫اسم‬get‫الـ‬ ‫كتابة‬ ‫بدون‬ ‫استعادها‬ ‫ترٌد‬ ً‫الت‬get‫صغٌر‬ ‫بحرف‬ ‫منها‬ ‫حرف‬ ‫أول‬ ‫وبكتابة‬. ‫استخدام‬ ‫من‬ ً‫ال‬‫بد‬jsp:getProperty‫الـ‬ ً‫ف‬ ‫تعبٌر‬ ‫عنصر‬ ‫استخدام‬ ‫ٌمكننا‬JSP‫صرٌح‬ ‫بشكل‬ ‫الطرٌقة‬ ‫باستدعاء‬ ‫وذالك‬ ‫الـ‬ ‫اسم‬ ‫له‬ ‫الذي‬ ‫الغرض‬ ‫من‬id.‫الصف‬ ‫لنأخذ‬ ‫المثال‬ ‫سبٌل‬ ‫على‬Book‫الخاصٌة‬ ‫استدعاء‬ ‫ونرٌد‬title‫قٌمة‬ ‫لنا‬ ‫تعٌد‬ ً‫الت‬ ‫نمط‬ ‫من‬String‫واسمه‬ ‫الصف‬ ‫هذا‬ ‫من‬ ‫غرض‬ ‫أنشأنا‬ ‫وقد‬book1‫باستخدام‬jsp:useBean‫إحدى‬ ‫لدٌك‬ ‫هنا‬ ‫قٌمة‬ ‫أظهار‬ ‫أجل‬ ‫من‬ ‫الطرٌقتٌن‬title‫الـ‬ ‫صفحة‬ ً‫ف‬JSPً‫وه‬: <jsp:getProperty name="book1" property="title" /> <%= book1.getTitle() %> ‫األول‬ ‫النهج‬ ‫استخدام‬ ‫األفضل‬ ‫من‬ ‫لكن‬(‫الـ‬ ‫استخدام‬bean)ً‫ا‬‫سابق‬ ‫أسلفنا‬ ‫كما‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫نخفف‬ ‫الشكل‬ ‫بهذا‬ ‫ألن‬. ‫الـ‬ ‫خصائص‬ ‫تعٌن‬bean‫بـ‬jsp:setProperty‫البسٌطة‬ ‫الحالة‬ ً‫ف‬ ‫الـ‬ ‫خصائص‬ ‫تعدٌل‬ ‫أو‬ ‫تعٌن‬ ‫أجل‬ ‫من‬bean‫التاغ‬ ‫باستخدام‬ ‫نقوم‬ ‫فهنا‬jsp:setProperty‫عدة‬ ‫لها‬ ‫العملٌة‬ ‫وهذه‬ ‫خواص‬ ‫ثالث‬ ‫لنا‬ ‫ٌوفر‬ ‫له‬ ‫شكل‬ ‫ابسط‬ ‫لكن‬ ‫مختلفة‬ ‫أشكال‬(attributes):‫الخاصٌة‬name‫الخاصٌة‬ ‫من‬ ‫قٌمتها‬ ‫نأخذ‬ ‫وهذه‬ id‫التاغ‬ ‫من‬jsp:useBean,property:‫الـ‬ ‫طرٌقة‬ ‫اسم‬ ‫تضع‬ ‫هنا‬set‫صغٌر‬ ‫حرف‬ ‫أول‬ ‫كتابة‬ ‫تنسى‬ ‫وال‬, value:‫الجدٌدة‬ ‫القٌمة‬ ً‫وه‬. ‫عن‬ ‫بدٌل‬ ‫استخدام‬ ‫تستطٌع‬ ‫هنا‬ ً‫ا‬‫أٌض‬jsp:getProperty‫عنصر‬ ‫استخدام‬ ‫طرٌق‬ ‫عن‬ ‫وهو‬scriptlet‫باستدعاء‬ ‫وذالك‬ ‫الـ‬ ‫الغرض‬ ‫من‬ ‫صرٌح‬ ‫بشكل‬ ‫الطرٌقة‬bean(‫الـ‬ ‫اسم‬ ‫له‬ ‫الذي‬ ‫الغرض‬id).‫الغرض‬ ‫ونأخذ‬ ‫السابقة‬ ‫الفقرة‬ ‫لمثال‬ ‫لنعد‬ book1‫الـ‬ ‫خصائص‬ ‫لتعدٌل‬ ‫طرٌقتٌن‬ ‫هناك‬ ‫فإنه‬beanً‫وه‬: <jsp:setProperty name="book1" property="title" value="Core Servlets and JavaServer Pages" /> <% book1.setTitle("Core Servlets and JavaServer Pages"); %> ‫األول‬ ‫النهج‬ ‫استخدام‬ ‫األفضل‬ ‫من‬ ‫لكن‬(‫الـ‬ ‫استخدام‬bean)ً‫ا‬‫سابق‬ ‫أسلفنا‬ ‫كما‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫نخفف‬ ‫الشكل‬ ‫بهذا‬ ‫ألن‬.
  • 4. ‫مثال‬:StringBean ‫اسمه‬ ‫بسٌط‬ ‫صف‬ ‫نعرض‬ ‫سوف‬ ‫المثال‬ ‫هذا‬ ً‫ف‬StringBean‫الباقة‬ ‫من‬coreservlets.‫فٌه‬ ‫لٌس‬ ‫الصف‬ ‫هذا‬ ‫وألن‬ ‫عام‬ ‫متغٌر‬ ‫أي‬‫شروط‬ ‫الصف‬ ‫هذا‬ ً‫ٌستوف‬ ‫أن‬ ‫أجل‬ ‫من‬ ‫ذالك‬ ‫وكل‬ ً‫بان‬ ‫أي‬ ‫عن‬ ‫بتصرٌح‬ ‫نقوم‬ ‫لن‬ ‫فإنه‬ ‫وسطاء‬ ‫بدون‬ ً‫بان‬ ‫و‬ ‫الـ‬bean‫سبق‬ ‫ما‬ ً‫ف‬ ‫ذكرنها‬ ً‫الت‬.‫تدعى‬ ‫طرٌقة‬ ً‫ا‬‫أٌض‬ ‫الصف‬ ‫هذا‬ ً‫ف‬ ‫ولدٌنا‬getMessage‫لنا‬ ‫تعٌد‬String ‫تدعى‬ ‫أخرى‬ ‫وطرٌقة‬setMessage‫وٌسط‬ ‫تأخذ‬String. ‫من‬ ‫غرض‬ ‫أنشاء‬ ‫ٌتم‬ ً‫ال‬‫أو‬StringBean‫باستخدام‬ ‫وذالك‬jsp:useBeanً‫األت‬ ‫النحو‬ ‫على‬ ‫ذالك‬ ‫وٌتم‬: <jsp:useBean id="stringBean" class="coreservlets.StringBean" /> ‫الخاصٌة‬ ‫إدراج‬ ‫ٌمكن‬ ‫هذا‬ ‫بعد‬message‫التالٌتٌن‬ ‫الطرٌقتٌن‬ ‫بإحدى‬ ‫الصفحة‬ ‫داخل‬: <jsp:getProperty name="stringBean" property="message" /> <%= stringBean.getMessage() %> ‫الخاصٌة‬ ‫قٌمة‬ ‫التعدٌل‬ ‫وٌمكننا‬message‫التالٌتٌن‬ ‫الطرٌقتٌن‬ ‫بإحدى‬: <jsp:setProperty name="stringBean" property="message" value="some message" /> <% stringBean.setMessage("some message"); %> ‫الشكلٌن‬ ً‫ف‬ ‫صحٌحة‬ ‫النتائج‬ ‫أن‬ ‫لتوضٌح‬ ‫مثال‬ ‫هو‬ ‫فقط‬ ‫المقصود‬ ‫وإنما‬ ‫األسلوبٌن‬ ً‫ف‬ ‫بخلط‬ ‫ننصح‬ ‫ال‬ ‫أننا‬ ‫المالحظة‬ ‫ٌرجى‬. ‫الصف‬StringBean package coreservlets; /** A simple bean that has a single String property * called message. */ public class StringBean { private String message = "No message specified"; public String getMessage() { return(message); }// end getMessage public void setMessage(String message) { this.message = message; }// end setMessage }// end class ‫الـ‬ ‫علٌها‬ ‫سنخبر‬ ً‫الت‬ ‫الصفحة‬bean:StringBean.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Using JavaBeans with JSP</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE"> Using JavaBeans with JSP</TABLE> <jsp:useBean id="stringBean" class="coreservlets.StringBean" /> <OL> <LI>Initial value (from jsp:getProperty): <I><jsp:getProperty name="stringBean" property="message" /></I> <LI>Initial value (from JSP expression): <I><%= stringBean.getMessage() %></I> <LI><jsp:setProperty name="stringBean" property="message" value="Best string bean: Fortex" /> Value after setting property with jsp:setProperty:
  • 5. <I><jsp:getProperty name="stringBean" property="message" /></I> <LI><% stringBean.setMessage("My favorite: Kentucky Wonder"); %> Value after setting property with scriptlet: <I><%= stringBean.getMessage() %></I> </OL> </BODY> </HTML> ً‫كالتال‬ ‫سٌكون‬ ‫والناتج‬: ‫الـ‬ ‫خصائص‬ ‫تعٌن‬bean‫متقدمة‬ ‫بطرٌقة‬ ‫الـ‬ ‫خاصٌات‬ ‫قٌم‬ ‫وتعدٌل‬ ‫تعٌن‬ ً‫ف‬ ‫البسٌطة‬ ‫الطرٌقة‬ ‫سبق‬ ‫ما‬ ً‫ف‬ ‫أخذا‬bean‫للتاغ‬ ‫خواص‬ ‫ثالث‬ ‫خاللها‬ ‫واستخدمنا‬ jsp:setPropertyً‫وه‬name‫و‬property‫و‬value‫برمترات‬ ‫لدٌك‬ ‫كان‬ ‫حال‬ ً‫ف‬ ‫تفعل‬ ‫ماذا‬ ‫ولكن‬ ‫وشرحنها‬ ‫الـ‬ ً‫ف‬ ‫قٌمتها‬ ‫تضع‬ ‫أن‬ ‫وترٌد‬ ‫ما‬ ‫صفحة‬ ‫من‬ ‫قادمة‬bean‫الطرٌقة‬ ‫من‬ ‫األمر‬ ‫وسنوضح‬ ‫و‬ ‫بالتفصٌل‬ ‫سنشرحه‬ ‫ما‬ ‫وهذا‬ ‫صف‬ ‫لدٌنا‬ ‫المثال‬ ‫هذا‬ ً‫ف‬ ‫التوضٌح‬ ‫أجل‬ ‫من‬ ‫مثال‬ ‫على‬ ‫شرحنا‬ ‫سٌكون‬ ً‫ا‬‫وطبع‬ ‫حاالت‬ ‫ثالث‬ ‫ستكون‬ ً‫وه‬ ‫فاألسهل‬ ‫الصعبة‬ ‫اسمه‬SaleEntry‫الح‬ ‫وفٌه‬‫قول‬(‫الـ‬ ‫خصائص‬ ‫تكون‬ ‫سوف‬ ً‫الت‬bean)‫التالٌة‬itemID‫النمط‬ ‫من‬ ‫وهو‬String‫و‬ numItems‫النمط‬ ‫من‬ ‫وهو‬int‫و‬discountCode‫النمط‬ ‫من‬ ‫وهو‬doubleً‫ه‬ ‫أي‬ ‫فقط‬ ‫للقراءة‬ ‫خاصٌتٌن‬ ‫ولدٌنا‬ ‫طرق‬get‫وهما‬itemCost‫و‬totalCost‫النمط‬ ‫من‬ ‫وكالهما‬double. ‫صفحة‬ ً‫ا‬‫أٌض‬ ‫هناك‬ ‫مثالنا‬ ً‫وف‬JSP‫الصف‬ ‫من‬ ‫غرض‬ ‫فٌها‬ ‫ننشأ‬ ‫سوف‬ ً‫الت‬SaleEntry‫الـ‬ ‫وباستخدام‬bean‫بهذا‬ ‫الشكل‬: <jsp:useBean id="entry" class="coreservlets.SaleEntry" /> ‫صفحة‬ ‫من‬ ‫برمترات‬ ‫نأخذ‬ ‫سوف‬ ‫الصفحة‬ ‫نفس‬ ً‫ف‬ ً‫ا‬‫وأٌض‬HTML‫الـ‬ ً‫ف‬ ‫ونضعها‬bean‫الفقرة‬ ‫هذه‬ ً‫ف‬ ‫هدفنا‬ ‫وهذا‬ ‫استخدام‬ ‫إمكانٌات‬ ‫توضٌح‬jsp:setProperty‫من‬ ‫وسنبدأ‬ ‫فعلها‬ ‫ممكن‬ ‫إمكانٌات‬ ‫ثالث‬ ‫لدٌنا‬ ‫قلنا‬ ‫وكما‬ ‫البرمترات‬ ‫مع‬ ‫اسمه‬ ‫البارمتر‬ ‫قٌمة‬ ‫لوضع‬ ‫األولى‬ ‫والطرٌقة‬ ‫األصعب‬itemID‫الـ‬ ‫خاصٌة‬ ً‫ف‬beanitemID(‫الحقل‬)ً‫كتال‬ ‫ٌكون‬: <jsp:setProperty name="entry" property="itemID" value='<%= request.getParameter("itemID") %>' /> ‫الـ‬ ‫خاصٌة‬ ‫تعدل‬ ‫سوف‬ ً‫الت‬ ‫قٌمة‬ ‫وضعنا‬ ‫هنا‬bean‫الـ‬ ً‫ف‬ ‫التعبٌر‬ ‫عنصر‬ ‫عن‬ ‫عبارة‬JSP‫أن‬ ً‫وه‬ ‫لمشكلة‬ ‫عدنا‬ ‫هنا‬ ‫الـ‬ ‫فكرة‬bean‫األولى‬ ‫الطرٌقة‬ ً‫ه‬ ‫وهذه‬ ‫صحٌحة‬ ‫السابقة‬ ‫العبارة‬ ‫عام‬ ‫بشكل‬ ‫لكن‬ ‫الجافا‬ ‫أكواد‬ ‫كتابة‬ ‫من‬ ‫لتخفٌف‬ ‫جاءت‬. ‫الصف‬ ‫كود‬ ‫هذا‬ ‫اآلن‬SaleEntry package coreservlets; /** Simple bean to illustrate the various forms
  • 6. * of jsp:setProperty. */ public class SaleEntry { private String itemID = "unknown"; private double discountCode = 1.0; private int numItems = 0; public String getItemID() { return(itemID); } public void setItemID(String itemID) { if (itemID != null) { this.itemID = itemID; } else { this.itemID = "unknown"; } } public double getDiscountCode() { return(discountCode); } public void setDiscountCode(double discountCode) { this.discountCode = discountCode; } public int getNumItems() { return(numItems); } public void setNumItems(int numItems) { this.numItems = numItems; } // In real life, replace this with database lookup. // See Chapters 17 and 18 for info on accessing databases // from servlets and JSP pages. public double getItemCost() { double cost; if (itemID.equals("a1234")) { cost = 12.99*getDiscountCode(); } else { cost = -9999; } return(roundToPennies(cost)); } private double roundToPennies(double cost) { return(Math.floor(cost*100)/100.0); } public double getTotalCost() { return(getItemCost() * getNumItems()); } }// end class ‫الـ‬ ‫لخاصٌة‬ ‫البارمتر‬ ‫قٌمة‬ ‫وضع‬ ً‫ف‬ ‫األولى‬ ‫الطرٌقة‬ ‫عن‬ ‫مثال‬ ‫اآلن‬bean‫صفحة‬ ً‫وه‬SaleEntry1.jsp‫سوف‬ ً‫الت‬ ‫البارمترات‬ ‫تستقبل‬. ‫صفحة‬SaleEntry1.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Using jsp:setProperty</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY>
  • 7. <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Using jsp:setProperty</TABLE> <jsp:useBean id="entry" class="coreservlets.SaleEntry" /> <jsp:setProperty name="entry" property="itemID" value='<%= request.getParameter("itemID") %>' /> <% int numItemsOrdered = 1; try { numItemsOrdered = Integer.parseInt(request.getParameter("numItems")); } catch(NumberFormatException nfe) {} %> <jsp:setProperty name="entry" property="numItems" value="<%= numItemsOrdered %>" /> <% double discountCode = 1.0; try { String discountString = request.getParameter("discountCode"); discountCode = Double.parseDouble(discountString); } catch(NumberFormatException nfe) {} %> <jsp:setProperty name="entry" property="discountCode" value="<%= discountCode %>" /> <BR> <TABLE BORDER=1> <TR CLASS="COLORED"> <TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price <TR ALIGN="RIGHT"> <TD><jsp:getProperty name="entry" property="itemID" /> <TD>$<jsp:getProperty name="entry" property="itemCost" /> <TD><jsp:getProperty name="entry" property="numItems" /> <TD>$<jsp:getProperty name="entry" property="totalCost" /> </TABLE> </CENTER> </BODY> </HTML> ‫البرمترات‬ ‫خاللها‬ ‫من‬ ‫ٌرسل‬ ‫سوف‬ ً‫الت‬ ‫الصفحة‬ ‫وهذه‬SaleEntry1-Form.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Invoking SaleEntry1.jsp</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Invoking SaleEntry1.jsp</TABLE> <FORM ACTION="SaleEntry1.jsp">
  • 8. Item ID: <INPUT TYPE="TEXT" NAME="itemID"><BR> Number of Items: <INPUT TYPE="TEXT" NAME="numItems"><BR> Discount Code: <INPUT TYPE="TEXT" NAME="discountCode"><P> <INPUT TYPE="SUBMIT" VALUE="Show Price"> </FORM> </CENTER> </BODY> </HTML> ‫الصفحة‬ ‫البرامترات‬ ‫خاللها‬ ‫من‬ ‫نرسل‬ ‫سوف‬ ً‫الت‬ ‫للصفحة‬ ‫صورة‬ ‫هذه‬SaleEntry1-Form.jsp ‫ال‬ ‫تكون‬ ‫سوف‬ ‫وهكذا‬‫ن‬‫الصفحة‬ ‫الصورة‬ ً‫ف‬ ً‫الت‬ ‫القٌم‬ ‫نفس‬ ‫أدخلنا‬ ‫حال‬ ً‫ف‬ ‫تٌجة‬SaleEntry1.jsp ‫الـ‬ ‫خصائص‬ ‫ربط‬ ‫الثانٌة‬ ‫طرٌقة‬bean‫المدخلة‬ ‫البارمترات‬ ‫مع‬ ‫لم‬ ‫وهكذا‬ ً‫ا‬ٌ‫ٌدو‬ ‫النمط‬ ‫بتحوٌل‬ ‫نقوم‬ ‫وكنا‬ ‫الجافا‬ ‫أكواد‬ ‫استخدام‬ ‫إلى‬ ‫عدنا‬ ‫أننا‬ ً‫وه‬ ‫مشكلة‬ ‫إلى‬ ‫عدنا‬ ‫السابقة‬ ‫الطرٌقة‬ ً‫ف‬ ‫الـ‬ ‫أهداف‬ ‫ومن‬ ‫الجافا‬ ‫األكواد‬ ‫كتابة‬ ‫من‬ ‫نوفر‬bean‫والطرٌقة‬ ‫السابقة‬ ‫الطرٌقة‬ ‫بٌن‬ ‫نقارن‬ ‫سوف‬ ‫اآلن‬ ‫بالجافا‬ ‫تكود‬ ‫توفٌر‬ ‫نأخذ‬ ‫كنا‬ ‫عندما‬ ‫السابق‬ ‫المثال‬ ‫من‬ ‫لنقتبس‬ ‫لنقارن‬ ‫جافا‬ ‫أكواد‬ ‫فٌها‬ ‫نستخدم‬ ‫ولن‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫توفر‬ ‫سوف‬ ً‫الت‬ ‫الثانٌة‬ ‫البرمتر‬ ‫قٌمة‬numItems‫الـ‬ ‫خاصٌة‬ ً‫ف‬ ‫قٌمته‬ ‫ونضع‬bean‫اسمها‬ ً‫الت‬numItems‫الشكل‬ ‫بهذا‬ ‫فكتبناه‬: <% int numItemsOrdered = 1;
  • 9. try { numItemsOrdered = Integer.parseInt(request.getParameter("numItems")); } catch(NumberFormatException nfe) {} %> <jsp:setProperty name="entry" property="numItems" value="<%= numItemsOrdered %>" /> ‫الخاصٌة‬ ‫قٌمة‬ ‫لدٌنا‬ ‫أننا‬ ‫نجد‬ ‫السابق‬ ‫الكود‬ ً‫ف‬intً‫ه‬ ‫البرمتر‬ ‫من‬ ً‫تأت‬ ً‫الت‬ ‫القٌمة‬ ‫ولكن‬String‫القٌمة‬ ‫تحوٌل‬ ‫وعلٌنا‬ ‫نمط‬ ‫من‬String‫إلى‬int‫اهداف‬ ‫أحد‬ ‫وهو‬ ‫األكود‬ ‫كتابة‬ ‫من‬ ‫نوفر‬ ‫لم‬ ‫وهكذا‬ ‫التحوٌل‬ ‫أجل‬ ‫من‬ ‫أكود‬ ‫كتابة‬ ‫ٌلزمنا‬ ‫ولهذا‬ ‫الـ‬bean‫الـ‬ ً‫ف‬ ‫الحل‬ ‫لدٌنا‬ ‫لكن‬bean‫من‬ ً‫اآلل‬ ‫تحوٌل‬ ‫على‬ ‫تقوم‬ ‫بحٌث‬ ‫األمر‬ ‫هذا‬ ‫علٌك‬ ‫توفر‬ ‫خاصة‬ ‫مٌزة‬ ً‫وه‬ String‫الخاصٌة‬ ً‫ف‬ ‫التعبٌر‬ ‫عنصر‬ ‫كتابة‬ ‫علٌك‬ ‫توفر‬ ‫المٌزة‬ ‫هذه‬ ُ‫ا‬‫وأٌض‬ ‫تحوٌله‬ ‫المراد‬ ‫النمط‬ ‫إلى‬value‫التاغ‬ ً‫ف‬ jsp:setProperty‫التاغ‬ ً‫ف‬ ‫خاصٌة‬ ‫عن‬ ‫عبارة‬ ً‫ه‬ ‫المٌزة‬ ‫هذه‬jsp:setProperty‫الخاصٌة‬ ‫هذا‬ ‫اسم‬param ‫الـ‬ ً‫ف‬ ‫قٌمته‬ ‫إدخال‬ ‫ترٌد‬ ‫الذي‬ ‫البارمتر‬ ‫اسم‬ ً‫ه‬ ‫الخاصٌة‬ ‫هذه‬ ‫قٌمة‬ ‫وتكون‬bean‫كٌف‬ ‫ولنرى‬ ‫السابق‬ ‫المثال‬ ‫فلنأخذ‬ ‫الثانٌة‬ ‫الطرٌقة‬ ً‫ف‬ ‫سٌكتب‬. <jsp:setProperty name="entry" property="numItems" param="numItems" /> ‫الـ‬ ‫مٌزة‬ ‫من‬ ‫استفدنا‬ ‫وقد‬ ‫جافا‬ ‫كود‬ ‫أي‬ ‫نكتب‬ ‫لم‬ ‫هكذا‬bean‫اسم‬ ‫ٌكون‬ ‫عندما‬ ً‫وه‬ ‫منها‬ ‫نستفٌد‬ ‫أن‬ ‫ممكن‬ ‫مٌزة‬ ‫هناك‬ ً‫ا‬‫أٌض‬ ‫الـ‬ ‫خاصٌة‬ ‫اسم‬ ‫نفس‬ ‫البارمتر‬bean‫المثال‬ ‫فحسب‬ ‫البارمتر‬ ‫ذكر‬ ‫دون‬ ‫فقط‬ ‫الخاصٌة‬ ‫اسم‬ ‫كتابة‬ ‫ٌمكنك‬ ‫فإنه‬ ‫المثال‬ ً‫ف‬ ‫كما‬ ً‫كتال‬ ‫كتابة‬ ‫ٌمكنك‬ ‫فإنه‬ ‫السابق‬: <jsp:setProperty name="entry" property="numItems" /> <%-- param="numItems" is assumed. --%> ‫تعلمناها‬ ً‫الت‬ ‫الثانٌة‬ ‫بالطرٌقة‬ ‫لكن‬ ‫األولى‬ ‫الطرٌقة‬ ‫للمثال‬ ‫كود‬ ‫سنكتب‬ ‫اآلن‬ ‫صفحة‬SaleEntry2.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Using jsp:setProperty</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Using jsp:setProperty</TABLE> <jsp:useBean id="entry" class="coreservlets.SaleEntry" /> <jsp:setProperty name="entry" property="itemID" param="itemID" /> <jsp:setProperty name="entry" property="numItems" param="numItems" /> <jsp:setProperty name="entry" property="discountCode" param="discountCode" /> <BR> <TABLE BORDER=1> <TR CLASS="COLORED"> <TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price
  • 10. <TR ALIGN="RIGHT"> <TD><jsp:getProperty name="entry" property="itemID" /> <TD>$<jsp:getProperty name="entry" property="itemCost" /> <TD><jsp:getProperty name="entry" property="numItems" /> <TD>$<jsp:getProperty name="entry" property="totalCost" /> </TABLE> </CENTER> </BODY> </HTML> ‫األولى‬ ‫الطرٌقة‬ ‫الطرٌقة‬ ‫مثال‬ ‫نتائج‬ ‫نفس‬ ً‫ٌعط‬ ‫الكود‬ ‫هذا‬ ‫الـ‬ ‫خصائص‬ ‫كل‬ ‫ربط‬ ‫الثالثة‬ ‫الطرٌقة‬beanً‫آل‬ ‫بشكل‬ ‫البارمترات‬ ‫كل‬ ‫مع‬ ‫أنه‬ ‫مٌزة‬ ‫لدٌنا‬ ‫وكان‬ ‫جافا‬ ‫أكواد‬ ‫كتابة‬ ‫علٌنا‬ ‫وفر‬ ‫مما‬ ‫وهذا‬ ‫لألنماط‬ ً‫اآلل‬ ‫تحوٌل‬ ‫استطعنا‬ ‫كٌف‬ ‫الثانٌة‬ ‫بالطرٌقة‬ ‫شاهدنا‬ ‫كتابة‬ ‫عدم‬ ‫بإمكانك‬param‫الـ‬ ‫خاصٌة‬ ‫اسم‬ ‫نفس‬ ‫البارمتر‬ ‫اسم‬ ‫كان‬ ‫حال‬ ً‫ف‬bean‫ٌوفر‬ ‫شًء‬ ‫اآلن‬ ‫سنتعلمه‬ ‫ما‬ ‫لكن‬ ‫الـ‬ ‫خصائص‬ ‫جمٌع‬ ‫تربط‬ ‫كٌف‬ ً‫وه‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫علٌك‬bean‫كل‬ ‫كان‬ ‫حال‬ ً‫ف‬ ‫ٌتحقق‬ ‫وهذا‬ ‫البارمترات‬ ‫كل‬ ‫مع‬ ‫الـ‬ ‫خصائص‬ ‫أسماء‬ ‫نفس‬ ‫البرمترات‬ ‫أسماء‬bean‫رمز‬ ‫باستخدام‬ ‫هذا‬ ‫فعل‬ ‫وتستطٌع‬*‫للخاصٌة‬ ‫قٌمة‬ ‫وتضعه‬property ‫التاغ‬ ً‫ف‬jsp:getProperty‫الـ‬ ‫الخصائص‬ ‫مع‬ ‫البارمترات‬ ‫بربط‬ ‫آلٌة‬ ‫بشكل‬ ‫ٌقوم‬ ‫الشكل‬ ‫وبهذا‬bean‫ٌقوم‬ ‫أنه‬ ‫باإلضافة‬ ‫السابقة‬ ‫الكود‬ ‫كتابة‬ ‫ٌمكن‬ ‫لذالك‬ ‫البارمتر‬ ‫اسم‬ ‫مع‬ ‫الخاصٌة‬ ‫اسم‬ ‫تتطابق‬ ‫نجد‬ ‫السابق‬ ‫المثال‬ ‫وحسب‬ ‫األنماط‬ ‫التحوٌل‬ ‫بعملٌة‬ ‫الشكل‬ ‫بهذا‬ ‫صفحة‬SaleEntry3.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Using jsp:setProperty</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <CENTER> <TABLE BORDER=5> <TR><TH CLASS="TITLE"> Using jsp:setProperty</TABLE> <jsp:useBean id="entry" class="coreservlets.SaleEntry" /> <jsp:setProperty name="entry" property="*" /> <BR> <TABLE BORDER=1> <TR CLASS="COLORED"> <TH>Item ID<TH>Unit Price<TH>Number Ordered<TH>Total Price <TR ALIGN="RIGHT"> <TD><jsp:getProperty name="entry" property="itemID" /> <TD>$<jsp:getProperty name="entry" property="itemCost" /> <TD><jsp:getProperty name="entry" property="numItems" /> <TD>$<jsp:getProperty name="entry" property="totalCost" /> </TABLE> </CENTER> </BODY> </HTML> ‫أجل‬ ‫من‬ ‫البٌانات‬ ‫النماذج‬ ‫أسماء‬ ‫نفس‬ ‫الصفوف‬ ‫الطرق‬ ‫أسماء‬ ‫بكتابة‬ ‫أن‬ ‫به‬ ‫تقوم‬ ‫تطبٌق‬ ‫أي‬ ‫أو‬ ‫مشروع‬ ‫أي‬ ً‫ف‬ ‫علٌك‬ ‫إذا‬ ‫قلٌل‬ ‫منذ‬ ‫به‬ ‫قنا‬ ‫ما‬ ‫فعل‬ ‫وتستطٌع‬ ‫العمل‬ ‫تسهٌل‬.
  • 11. ‫الطرٌقة‬ ‫هذه‬ ‫من‬ ‫صغٌر‬ ‫تحذٌرات‬ ‫ثالث‬ ‫هناك‬ ‫ولكن‬ ‫العناء‬ ‫من‬ ‫الكثٌر‬ ‫علٌك‬ ‫وتوفر‬ ‫سهلة‬ ‫الثالثة‬ ‫الطرٌقة‬ ‫أن‬ ‫الرغم‬ ‫على‬: ‫مفقودة‬ ‫المدخلة‬ ‫البارمترات‬ ‫كانت‬ ‫حال‬ ً‫ف‬ ‫أجراء‬ ‫أي‬ ‫ٌتم‬ ‫لن‬.‫ٌدعم‬ ‫ال‬ ‫النظام‬ ‫فهذا‬null‫كقٌمة‬‫الـ‬ ‫لخاصٌة‬bean ‫لٌكون‬ ‫صف‬ ‫تصمٌم‬ ‫عند‬ ‫علٌك‬ ‫لذالك‬bean‫خاصٌة‬ ‫تجعل‬ ‫أن‬(‫الصف‬ ‫طرٌقة‬ ‫وهنا‬set)‫افتراضٌة‬ ‫قٌمة‬ ‫فٌها‬‫من‬ ‫ال‬ ‫أما‬ ‫الخاصٌة‬ ‫تعدٌل‬ ‫تم‬ ‫إذا‬ ‫تعرف‬ ‫أن‬ ‫أجل‬. ‫الٌدوي‬ ‫التحوٌل‬ ‫غرار‬ ‫على‬ ‫قانونٌة‬ ‫الغٌر‬ ‫القٌم‬ ‫من‬ ً‫ٌوق‬ ‫ال‬ ‫لألنماط‬ ً‫التلقائ‬ ‫التحوٌل‬(‫التقلٌدٌة‬ ‫طرٌقة‬) ‫لألنماط‬.ً‫التلقائ‬ ‫التحوٌل‬ ‫ٌتجنب‬ ‫المطورٌن‬ ‫بعض‬ ‫أن‬ ‫إلى‬ ً‫التلقائ‬ ‫التحوٌل‬ ‫سهولة‬ ‫من‬ ‫الرغم‬ ‫على‬ ‫الحقٌقة‬ ً‫ف‬, ‫الـ‬ ‫خصائص‬ ‫جمٌع‬ ‫وٌعرفوا‬bean‫القٌم‬ ‫تعٌن‬ ً‫الت‬(‫طرق‬set)‫النوع‬ ‫من‬ ‫ٌكون‬ ‫أن‬String‫استخدام‬ ‫و‬ ‫العبارة‬try/catch‫التالفة‬ ‫البٌانات‬ ‫مع‬ ‫التعامل‬ ‫أجل‬ ‫من‬.‫استخدام‬ ‫وٌنصح‬‫تستخدم‬ ‫عندما‬ ‫الخطأ‬ ‫صفحات‬ ‫لألنماط‬ ً‫التلقائ‬ ‫التحوٌل‬. ‫الـ‬ ‫خصائص‬ ‫ربط‬ ‫عملٌة‬bean‫لألحرف‬ ‫حساسة‬ ‫البارمترات‬ ‫مع‬.‫لذالك‬‫ٌجب‬‫أن‬‫ٌكون‬‫اسم‬‫الخاصٌة‬‫واسم‬ ‫البارمتر‬‫متطابقان‬‫تماما‬. ‫الـ‬ ‫مشاركة‬Beans ‫التعامل‬ ‫ٌتم‬ ً‫افتراض‬ ‫بشكل‬ ‫أنشاؤها‬ ‫مكان‬ ‫عن‬ ‫بعٌد‬ ‫مكان‬ ً‫ف‬ ‫كائن‬ ‫الستخدام‬ ‫الحاجة‬ ‫جاءت‬ ‫عندما‬ ‫مشركة‬ ‫فكرة‬ ‫جاءت‬ ً‫ف‬ ‫إنشاؤه‬ ‫ٌتم‬ ‫الذي‬ ‫الكائنات‬ ‫كل‬ ‫مع‬jsp:Bean‫الطرٌقة‬ ً‫ف‬ ‫محلٌة‬ ‫متغٌرات‬ ‫عن‬ ‫عبارة‬ ‫أنها‬ ‫لو‬ ‫كما‬_jspService (‫الطرٌقة‬ ‫بواسطة‬ ‫استدعائها‬ ‫ٌتم‬ ‫الطرٌقة‬ ً‫وه‬service‫صفحة‬ ‫من‬ ‫إنشاؤها‬ ‫ٌتم‬ ‫عندما‬ ‫السرفلت‬ ً‫ف‬JSP.) ‫لـ‬ ‫االفتراضٌة‬ ‫الحالة‬ ‫أن‬ ‫من‬ ‫الرغم‬ ‫على‬Bean‫بإمانك‬ ‫وانه‬ ‫اتخاذه‬ ‫ٌمكن‬ ‫الذي‬ ‫الوحٌد‬ ‫السلوك‬ ‫هذا‬ ‫لٌس‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ً‫ه‬ ‫الـ‬ ‫تخزٌن‬Bean‫الخاصٌة‬ ‫قٌمة‬ ‫وضع‬ ‫طرٌقة‬ ‫عن‬ ‫وذلك‬ ‫مختلفة‬ ‫مواقع‬ ‫أربع‬ ‫من‬ ‫واحدة‬ ً‫ف‬scopeً‫ف‬jsp:Bean. ‫مفهوم‬ ‫تطبٌق‬ ‫اجل‬ ‫من‬ ‫مهم‬ ً‫ا‬‫جد‬ ‫الدرس‬ ‫هذا‬MVC‫هللا‬ ‫شاء‬ ‫إن‬ ‫القادم‬ ‫الدرس‬ ً‫ف‬ ‫سنشرحه‬ ‫والذي‬. ‫الخاصٌة‬ ‫تتخذها‬ ‫أن‬ ‫ممكن‬ ً‫الت‬ ‫األربعة‬ ‫القٌم‬scopeً‫ه‬:page‫و‬ ‫االفتراضٌة‬ ً‫وه‬request‫و‬session‫و‬ application. <jsp:useBean ... scope="page" /> ‫الخاصٌة‬ ‫بحذف‬ ‫األسلوب‬ ‫هذا‬ ‫نفس‬ ‫فعل‬ ‫وٌمكنك‬ ‫االفتراضٌة‬ ‫القٌمة‬ ً‫ه‬ ‫وهذه‬scope,‫القٌمة‬ ‫اختٌار‬ ‫إن‬page ‫أن‬ ً‫ٌعن‬ ‫فإن‬‫الـ‬bean‫الـ‬ ‫وضع‬ ‫ٌجب‬ ً‫ا‬‫وأٌض‬ ً‫محل‬ ‫متغٌر‬ ‫سٌكون‬beanً‫ف‬PageContext‫ونس‬‫من‬ ‫تفٌد‬ ‫باستدعاء‬ ‫إلٌه‬ ‫الوصول‬ ‫ٌستطٌع‬ ‫سوف‬ ‫السرفلت‬ ‫أن‬ ‫هذا‬getAttributeً‫ف‬ ً‫ا‬‫مسبق‬ ‫معروفة‬ ‫لمتغٌرات‬ PageContext. <jsp:useBean ... scope="request" /> ‫الت‬ ‫فإن‬ ً‫محل‬ ‫متغٌر‬ ‫كونه‬ ‫باإلضافة‬ ‫أنه‬ ً‫ٌعن‬ ‫هذا‬beanً‫ف‬ ً‫ا‬‫أٌض‬ ‫ٌخزن‬HttpServletRequest ‫للـ‬ ‫مشاركة‬ ‫هناك‬ ‫لٌس‬ ‫انه‬ ‫النتائج‬ ‫خالل‬ ‫من‬ ‫لك‬ ‫ٌبدو‬ ‫قد‬ ‫انه‬ ‫الرغم‬ ‫وعلى‬beans‫صفحة‬ ‫بٌن‬ ‫أو‬ ‫صفحتٌن‬ ‫بٌن‬ ‫نوع‬ ‫من‬ ‫المشاركة‬ ‫فإن‬ ‫وسرفلت‬request‫باستخدام‬ ‫ٌتم‬jsp:include‫و‬jsp:forward‫أو‬include‫و‬ forward‫الطرٌقة‬ ً‫ف‬RequestDispatcher‫بناء‬ ً‫ف‬ ‫نستخدمه‬ ‫سوف‬ ‫حٌث‬ ‫مهم‬ ‫األسلوب‬ ‫وهذا‬MVC ‫القادم‬ ‫الدرس‬ ً‫ف‬ ‫سنشرحه‬. <jsp:useBean ... scope="session" /> ‫الـ‬ ‫كون‬ ‫باإلضافة‬ ‫إنه‬ ً‫تعن‬ ‫القٌمة‬ ‫هذه‬bean‫الـ‬ ‫غرض‬ ‫تخزٌن‬ ‫ٌتم‬ ً‫ا‬‫أٌض‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ‫متغٌر‬beanً‫ف‬ HttpSession‫الطرٌقة‬ ‫بواسطة‬ ‫استرجاعه‬ ‫وٌمكننا‬getAttribute. ً‫وبالتال‬‫الـ‬ ‫رؤٌة‬ ‫مجال‬ ‫فإن‬bean‫صفحات‬ ً‫ف‬JSP‫التاسع‬ ‫الدرس‬ ً‫ف‬ ‫الجلسات‬ ‫طرٌقة‬ ‫بنفس‬ ‫ٌتم‬. <jsp:useBean ... scope="application" /> ‫الـ‬ ‫كون‬ ‫باإلضافة‬ ‫إنه‬ ً‫تعن‬ ‫القٌمة‬ ‫هذه‬bean‫الـ‬ ‫تخزٌن‬ ‫ٌتم‬ ً‫ا‬‫أٌض‬ ‫أنه‬ ‫إال‬ ً‫محل‬ ‫متغٌر‬beanً‫ف‬ ServletContext‫التطبٌق‬ ً‫ف‬ ‫متاحة‬ ‫وتكون‬ ‫الـ‬ServletContext‫والصفحات‬ ‫السلفلتات‬ ‫جمٌع‬ ً‫ف‬ ‫مشاركته‬ ‫تتم‬JSP‫الوٌب‬ ‫تطبٌق‬ ‫نفس‬ ‫على‬. ‫الـ‬ ً‫ف‬ ‫القٌم‬ServletContext‫بالطرٌقة‬ ‫استرجاعها‬ ‫ٌمكنك‬getAttribute.
  • 12. ‫الـ‬ ‫إنشاء‬Bean‫المشروط‬ ‫الـ‬ ‫مشاركة‬ ‫لجعل‬Bean‫الـ‬ ‫لعناصر‬ ‫المشروط‬ ‫التقٌٌم‬ ‫استخدام‬ ‫ٌمكنك‬ ‫مالءمة‬ ‫أكثر‬Bean‫حالتٌن‬ ً‫ف‬. ‫العنصر‬ ‫ٌنتج‬ ً‫ال‬‫أو‬jsp:useBean‫الـ‬bean‫الـ‬ ‫على‬ ‫العثور‬ ‫ٌتم‬ ‫لم‬ ‫إذا‬ ‫فقط‬ ‫جدٌد‬bean‫نفس‬ ‫له‬ ‫الذي‬id‫الرؤٌة‬ ‫مجال‬ ‫و‬. ‫الـ‬ ‫على‬ ‫العثور‬ ‫تم‬ ‫وإذا‬bean‫نفس‬ ‫له‬id‫إلٌه‬ ‫المشار‬ ‫المتغٌر‬ ‫مع‬ ‫مرتبط‬ ‫ببساطة‬ ‫هو‬ ً‫ا‬‫مسبق‬ ‫الموجود‬ ‫الرؤٌةفهو‬ ‫مجال‬ ‫و‬ ‫بـ‬id. ‫استخدام‬ ‫من‬ ً‫ال‬‫بد‬ ً‫ا‬ٌ‫ثان‬ <jsp:useBean ... /> ‫نستخدم‬ ‫سوف‬ <jsp:useBean ...>statements</jsp:useBean> ‫أن‬ ‫هو‬ ً‫الثان‬ ‫النموذج‬ ‫استخدام‬ ً‫ف‬statements‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬ ‫الموجود‬jsp:useBean‫إنشاء‬ ‫تم‬ ‫إذا‬ ‫فقط‬ ‫تتم‬ bean‫الـ‬ ‫على‬ ‫هذا‬ ‫ٌتم‬ ‫وال‬ ‫جدٌد‬bean‫القائمة‬.‫ألن‬jsp:useBean‫لـ‬ ً‫االفتراض‬ ً‫البان‬ ً‫ٌستدع‬ ‫سوف‬bean‫ونحن‬ ‫إنشاء‬ ‫بعد‬ ‫خصائص‬ ‫تعٌل‬ ‫إلى‬ ‫األحٌان‬ ‫من‬ ‫كثٌر‬ ً‫ف‬ ‫نحتاج‬bean. ‫لـ‬ ‫أنشاء‬ ‫أول‬ ‫عند‬ ‫فقط‬ ‫التعدٌالت‬ ‫هذه‬ ‫تجعل‬ ‫أن‬ ‫علٌك‬ ‫ٌجب‬ ً‫البان‬ ‫لمحاكاة‬bean‫الـ‬ ‫إلى‬ ‫الوصول‬ ‫عند‬ ‫ولٌس‬bean ‫تعدٌله‬ ‫علٌك‬ ‫ٌفترض‬ ً‫الت‬ ‫القائمة‬.‫بوضع‬ ‫وذالك‬ ‫هذا‬ ‫فعل‬ ‫ٌمكنك‬ ‫فإنه‬ ‫مشكلة‬ ‫ال‬jsp:setProperty‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬ ‫تاغ‬jsp:useBean‫إلى‬ ‫الوصل‬ ‫فٌها‬ ‫ٌتم‬ ً‫الت‬ ‫األولى‬ ‫الصفحة‬ ‫ولكن‬ ‫صفحات‬ ‫عدة‬ ً‫ف‬ ‫هذا‬ ‫فعل‬ ‫وٌمكنك‬bean‫فٌه‬ ‫سٌتم‬ ‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬ ‫ما‬ ‫تنفٌذ‬jsp:useBean. ‫فٌه‬ ‫القادم‬ ‫المثال‬ ً‫ف‬ ‫لٌنا‬ ‫المثال‬ ‫سبٌل‬ ‫على‬bean‫هما‬ ‫خاصٌتان‬ ‫وله‬accessCount‫و‬firstPage‫الخاصٌة‬ accessCountً‫ف‬ ‫تنفٌذها‬ ‫وٌتم‬ ‫ببعضها‬ ‫صلة‬ ‫ذات‬ ‫صفحات‬ ‫مجموعة‬ ‫ضمن‬ ‫من‬ ‫صفحة‬ ‫أي‬ ‫إلى‬ ‫الوصول‬ ‫عدد‬ ‫ٌسجل‬ ‫الخاصٌة‬ ‫أما‬ ‫الصفحات‬ ‫كل‬firstPage‫تنفٌذها‬ ‫ٌتم‬ ‫فإنه‬ ً‫وبتال‬ ‫علٌها‬ ‫الحصول‬ ‫تم‬ ‫صفحة‬ ‫أول‬ ‫اسم‬ ‫بتخزٌن‬ ‫ٌقوم‬ ‫فأنه‬ ‫نضع‬ ‫فإننا‬ ‫ذالك‬ ‫ولتنفٌذ‬ ً‫ال‬‫أو‬ ‫إلٌها‬ ‫الوصول‬ ‫تم‬ ً‫الت‬ ‫الصفحة‬ ً‫ف‬jsp:setProperty‫الخاصٌة‬ ‫بتعدٌل‬ ‫تقوم‬ ً‫الت‬ firstPage‫التاغ‬ ‫ونهاٌة‬ ‫بداٌة‬ ‫بٌن‬jsp:useBean‫الـ‬ ‫أنشاء‬ ‫عند‬ ‫واحدة‬ ‫مرة‬ ‫تنفٌذها‬ ‫ٌتم‬ ً‫لك‬bean. ‫لـ‬ ‫بالنسبة‬jsp:setProperty‫الخاصٌة‬ ‫تعدل‬ ً‫الت‬accessCount‫المشروط‬ ‫اإلنشاء‬ ‫خارج‬ ‫تكون‬ ‫فإنها‬. ‫النهج‬ ‫هذا‬ ‫ٌستخدم‬ ‫صفحات‬ ‫ثالث‬ ‫مثالنا‬ ً‫وف‬. ‫الصف‬AccessCountBean.java package coreservlets; /** Simple bean to illustrate sharing beans through * use of the scope attribute of jsp:useBean. */ public class AccessCountBean { private String firstPage; private int accessCount = 1; public String getFirstPage() { return(firstPage); } public void setFirstPage(String firstPage) { this.firstPage = firstPage; } public int getAccessCount() { return(accessCount); } public void setAccessCountIncrement(int increment) { accessCount = accessCount + increment; } } ‫الصفحة‬SharedCounts1.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  • 13. <HTML> <HEAD> <TITLE>Shared Access Counts: Page 1</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <TABLE BORDER=5 ALIGN="CENTER"> <TR><TH CLASS="TITLE"> Shared Access Counts: Page 1</TABLE> <P> <jsp:useBean id="counter" class="coreservlets.AccessCountBean" scope="application"> <jsp:setProperty name="counter" property="firstPage" value="SharedCounts1.jsp" /> </jsp:useBean> Of SharedCounts1.jsp (this page), <A HREF="SharedCounts2.jsp">SharedCounts2.jsp</A>, and <A HREF="SharedCounts3.jsp">SharedCounts3.jsp</A>, <jsp:getProperty name="counter" property="firstPage" /> was the first page accessed. <P> Collectively, the three pages have been accessed <jsp:getProperty name="counter" property="accessCount" /> times. <jsp:setProperty name="counter" property="accessCountIncrement" value="1" /> </BODY></HTML> ‫الثانٌة‬ ‫الصفحة‬ ً‫ه‬ ‫لها‬ ‫وصل‬ ‫تم‬ ‫صفحة‬ ‫أول‬ ‫أنه‬ ‫هنا‬ ‫من‬ ‫ونجد‬ ‫الثالثة‬ ‫الصفحة‬ ‫هذه‬ ‫الـ‬ ‫مشاركة‬Bean‫مثال‬ ‫مع‬ ‫مختلفة‬ ‫طرق‬ ‫أربع‬ ً‫ف‬ ‫الـ‬ ‫الستخدام‬ ‫المختلفة‬ ‫الجوانب‬ ‫لتوضح‬ ‫مفصل‬ ‫شرح‬ ‫نشرح‬ ‫سوف‬ ‫الفقرة‬ ‫هذه‬ ً‫ف‬Bean: ‫سٌكون‬ ‫الذي‬ ‫الصف‬ ‫ننشأ‬ ‫سوف‬ ً‫ال‬‫أو‬bean‫الصفحات‬ ً‫ف‬JSP. ‫الـ‬ ‫مشاركة‬ ‫عدم‬ ‫استخدام‬ ً‫ا‬ٌ‫ثان‬Bean(‫الـ‬ ‫رؤٌة‬ ‫مجال‬bean‫أي‬ ‫الصفحة‬ ‫ضمن‬pagescope=) ‫الـ‬ ‫مشاركة‬ ً‫ا‬‫ثالث‬Bean‫الطلب‬ ً‫ف‬(requestscope=) ‫الـ‬ ‫مشاركة‬ ً‫ا‬‫رابع‬Bean‫الجلسة‬ ً‫ف‬(sessionscope=) ‫الـ‬ ‫مشاركة‬ ً‫ا‬‫خامس‬Bean‫التطبٌق‬ ً‫ف‬(applicationscope=)
  • 14. ‫قبل‬‫االنتقال‬‫إلى‬‫األمثلة‬‫وهو‬ ‫واحد‬ ‫تحذٌر‬ ‫هناك‬‫تخزٌن‬‫الـ‬Beansً‫ف‬‫رؤٌة‬ ‫مجالت‬‫مختلفة‬‫تأكد‬‫من‬‫استخدام‬‫أسماء‬ ‫مختلفة‬‫لكل‬bean‫السرفر‬ ‫ٌخلط‬ ‫أن‬ ‫الممكن‬ ‫من‬ ‫فأنه‬ ‫ذالك‬ ‫خالف‬ ‫حدث‬ ‫إذا‬ ‫ألنه‬‫الـ‬ ‫بٌن‬beans‫الـ‬ ‫لنا‬ ‫وٌعٌد‬bean‫الخطأ‬. ‫الصف‬BakedBean.java package coreservlets; /** Small bean to illustrate various bean-sharing mechanisms. */ public class BakedBean { private String level = "half-baked"; private String goesWith = "hot dogs"; public String getLevel() { return(level); } public void setLevel(String newLevel) { level = newLevel; } public String getGoesWith() { return(goesWith); } public void setGoesWith(String dish) { goesWith = dish; } } ‫الصفحة‬ ‫رؤٌة‬ ‫مجال‬ ‫استخدام‬(‫الـ‬ ‫مشاركة‬ ‫عدم‬Bean) ‫نحن‬ ً‫ا‬‫حسن‬‫راضون‬‫أن‬‫الـ‬bean‫ٌعمل‬‫بشكل‬,‫صحٌح‬‫ونحن‬‫على‬‫استعداد‬‫الستخدامه‬ً‫ف‬‫صفحة‬JSP.‫مثال‬‫األول‬‫هو‬ ‫و‬ ‫أنشاء‬‫تعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫تماما‬ً‫ف‬‫غضون‬‫طلب‬‫صفحة‬‫واحدة‬.‫كما‬ ‫العملٌة‬ ‫سٌر‬ ‫وسٌكون‬ً‫ٌل‬: ‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="page"(‫استخدام‬ ‫عدم‬ ‫وٌمكنك‬scope‫ألن‬ ً‫ه‬ ‫االفتراضٌة‬ ‫القٌمة‬page). ‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*". ‫الـ‬ ‫إلى‬ ‫الوصول‬bean:‫سنستخدم‬jsp:getProperty. ‫صفحة‬BakedBeanDisplay-page.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Baked Bean Values: page-based Sharing</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H1>Baked Bean Values: page-based Sharing</H1> <jsp:useBean id="pageBean" class="coreservlets.BakedBean" /> <jsp:setProperty name="pageBean" property="*" /> <H2>Bean level: <jsp:getProperty name="pageBean" property="level" /></H2> <H2>Dish bean goes with: <jsp:getProperty name="pageBean" property="goesWith" /></H2> </BODY></HTML>
  • 15. ‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay-page.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬ ‫هذا‬ ً‫ف‬ ‫الرؤٌة‬ ‫مجال‬ ‫ألن‬ ً‫األول‬ ‫الطلب‬ ً‫ف‬ ‫القٌمة‬ ‫تظهر‬ ‫ولم‬ ‫االفتراضٌة‬ ً‫ه‬ ‫الخصائص‬ ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬ ‫هو‬ ‫المثال‬page. ‫الـ‬ ‫مشاركة‬ ‫استخدام‬Bean‫الطلب‬ ً‫ف‬ ‫ىـ‬ ‫اىوصوه‬ ‫و‬ ‫تعذيو‬ ‫و‬ ‫أّشاء‬ ‫هو‬ ‫اىثاّي‬ ‫اىَثاه‬bean‫اىغشض‬ ‫ّفس‬ ُ‫تشاسما‬ ِ‫ٍختيفتي‬ ِ‫صفحتي‬ َِ‫ض‬. ‫بواسطة‬ ‫اىثاّية‬ ‫اىصفحة‬ ‫استذعاء‬ ٌ‫ت‬ ‫إرا‬ ‫األوىى‬ ‫اىصفحة‬ ‫في‬ ‫اىَوجود‬ ‫اىغشض‬ ‫تشاسك‬ ‫اىثاّية‬ ‫اىصفحة‬ ‫أّه‬ ‫هْا‬ ‫ّزمش‬ jsp:include‫أو‬jsp:forward‫بـ‬ ً‫اىقيا‬ ً‫ا‬‫أيض‬ ‫ويَنْل‬include‫و‬forward‫اىطشيقة‬ ‫بواسطة‬RequestDispatcher. ‫اىَطيوب‬ ‫اىسيوك‬ ‫عيى‬ ‫وىيحصوه‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬:
  • 16. ‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="request". ‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*". ‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫األولى‬ ‫الصفحة‬ ً‫ف‬:‫سنستخدم‬jsp:getProperty.‫سنستخدم‬ ‫وبعدها‬ jsp:include‫الثانٌة‬ ‫الصفحة‬ ‫الستدعاء‬. ‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫الثانٌة‬ ‫الصفحة‬ ً‫ف‬:‫سنستخدم‬jsp:useBean‫نفس‬ ‫له‬ ‫وسٌكون‬idً‫ف‬ ‫الموجود‬ ‫سٌكون‬ ‫و‬ ‫األولى‬ ‫الصفحة‬scope="request"‫سنستخدم‬ ‫ذالك‬ ‫وبعد‬jsp:getProperty. ‫األولى‬ ‫صفحة‬BakedBeanDisplay-request.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Baked Bean Values: request-based Sharing</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H1>Baked Bean Values: request-based Sharing</H1> <jsp:useBean id="requestBean" class="coreservlets.BakedBean" scope="request" /> <jsp:setProperty name="requestBean" property="*" /> <H2>Bean level: <jsp:getProperty name="requestBean" property="level" /></H2> <H2>Dish bean goes with: <jsp:getProperty name="requestBean" property="goesWith" /></H2> <jsp:include page="BakedBeanDisplay-snippet.jsp" /> </BODY></HTML> ‫الثانٌة‬ ‫الصفحة‬BakedBeanDisplay-snippet.jsp <H1>Repeated Baked Bean Values: request-based Sharing</H1> <jsp:useBean id="requestBean" class="coreservlets.BakedBean" scope="request" /> <H2>Bean level: <jsp:getProperty name="requestBean" property="level" /></H2> <H2>Dish bean goes with: <jsp:getProperty name="requestBean" property="goesWith" /></H2>
  • 17. ‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- request.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫الصفحة‬ ‫أن‬ ‫ونجد‬ ‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬ ‫القٌم‬ ‫نفس‬ ‫أخذت‬ ‫المضمنة‬. ‫القٌم‬ ‫نفس‬ ‫أخذت‬ ‫المضمنة‬ ‫الصفحة‬ ‫أن‬ ‫ونجد‬ ‫االفتراضٌة‬ ً‫ه‬ ‫الخصائص‬ ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫تكون‬ ‫الشكل‬ ‫فبهذا‬ ‫الـ‬ ‫مشاركة‬ ‫تمت‬bean‫الطلب‬ ً‫ف‬. ‫الـ‬ ‫مشاركة‬ ‫استخدام‬Bean‫الجلسة‬ ً‫ف‬ ‫أما‬‫المثال‬‫الثالث‬‫ٌتضمن‬‫جزأٌن‬.,‫أوال‬‫نحن‬‫نرٌد‬‫إلنشاء‬‫وتعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫داخل‬‫الصفحة‬.,ً‫الثان‬‫إذا‬‫كان‬ ‫العمٌل‬‫نفسه‬‫عاد‬ ‫قد‬‫إلى‬‫فٌجب‬ ‫الصفحة‬‫أن‬‫ٌرى‬‫الـ‬bean‫من‬ ‫تعدل‬ ‫كما‬‫قبل‬.‫الدرس‬ ً‫ف‬ ‫الجلسات‬ ‫مثل‬ ً‫ا‬‫تمام‬ ‫ٌجري‬ ‫هذا‬ ‫التاسع‬‫اىَطيوب‬ ‫اىسيوك‬ ‫عيى‬ ‫وىيحصوه‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬: ‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="session". ‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*". ‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫البارمترات‬ ‫استقبال‬ ‫عند‬:‫سنستخدم‬jsp:getProperty.‫استدعاء‬ ‫تم‬ ‫بعدما‬ jsp:setProperty. ‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫الصفحة‬ ‫لنفس‬ ً‫ا‬‫الحق‬:‫سنستخدم‬jsp:getProperty‫ٌتم‬ ‫لن‬ ‫المرة‬ ‫هذه‬ ً‫ف‬ ‫ولكم‬ ‫بارمترات‬ ‫تضمٌن‬‫استدعاء‬ ‫ٌتم‬ ‫ولن‬jsp:setProperty‫العمٌل‬ ‫نفس‬ ‫من‬ ‫الصفحة‬ ‫الطلب‬ ‫كان‬ ‫إذا‬(‫خالل‬ ‫الجلسة‬ ‫فترة‬). ‫الصفحة‬BakedBeanDisplay-session.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Baked Bean Values: session-based Sharing</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H1>Baked Bean Values: session-based Sharing</H1> <jsp:useBean id="sessionBean" class="coreservlets.BakedBean" scope="session" /> <jsp:setProperty name="sessionBean" property="*" /> <H2>Bean level: <jsp:getProperty name="sessionBean" property="level" /></H2> <H2>Dish bean goes with:
  • 18. <jsp:getProperty name="sessionBean" property="goesWith" /></H2> </BODY></HTML> ‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- session.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬. ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌمة‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫الطلبات‬ ‫بٌن‬ ‫نفسها‬ ‫تبقى‬ ‫الـ‬ ‫مشاركة‬ ‫هو‬ ‫هذه‬ ‫الجلسة‬ ‫نفس‬ ً‫ف‬ ‫الزبون‬ ‫نفس‬ ‫كان‬ ‫إذا‬bean‫الجلسات‬ ً‫ف‬.
  • 19. ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫آخر‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫افتراضٌة‬ ‫قٌمة‬ ً‫ه‬ ‫أخذها‬ ً‫الت‬bean‫بٌن‬ ‫نفسها‬ ‫تبقى‬ ‫لم‬ ‫جدٌدة‬ ‫جلسة‬ ‫تكون‬ ‫أو‬ ‫أختلف‬ ‫قد‬ ‫هنا‬ ‫الزبون‬ ‫ألن‬ ‫الطلبات‬. ‫استخدام‬‫الـ‬ ‫مشاركة‬Bean‫التطبٌق‬ ً‫ف‬ ‫المثال‬‫واألخٌر‬ ‫الرابع‬‫ٌتضمن‬‫جزأٌن‬.,‫أوال‬‫نحن‬‫نرٌد‬‫إلنشاء‬‫وتعدٌل‬‫والوصول‬‫إلى‬‫الـ‬bean‫داخل‬‫الصفحة‬.ً‫ا‬ٌ‫الثان‬‫إذا‬ ‫الـ‬ ‫ٌرى‬ ً‫أن‬ ‫ٌجب‬ ‫العمٌل‬ ‫فهنا‬ ‫الحق‬ ‫وقت‬ ً‫ف‬ ‫الصفحة‬ ‫إلى‬ ‫عمٌل‬ ‫أي‬ ‫أتى‬bean‫قبل‬ ‫من‬ ‫تعدٌلها‬ ‫تم‬ ‫كما‬‫عيى‬ ‫وىيحصوه‬ ‫اىَطيوب‬ ‫اىسيوك‬‫كما‬ ‫العملٌة‬ ً‫ف‬ ‫نسٌر‬ ‫سوف‬ً‫ٌل‬: ‫الـ‬ ‫أنشاء‬bean:‫سنستخدم‬jsp:useBean‫مع‬scope="session". ‫الـ‬ ‫قٌمة‬ ‫تعدٌل‬bean:‫سنستخدم‬jsp:setProperty‫مع‬property="*". ‫الـ‬ ‫إلى‬ ‫الوصول‬bean‫البارمترات‬ ‫استقبال‬ ‫عند‬:‫سنستخدم‬jsp:getProperty.‫استدعاء‬ ‫تم‬ ‫بعدما‬ jsp:setProperty. ‫الـ‬ ‫إلى‬ ‫الوصول‬beanً‫ا‬‫الحق‬:‫سنستخدم‬jsp:getProperty‫بارمترات‬ ‫تضمٌن‬ ‫ٌتم‬ ‫لن‬ ‫المرة‬ ‫هذه‬ ً‫ف‬ ‫ولكم‬ ‫بحاجة‬ ‫لسنا‬ ً‫والتال‬jsp:setProperty.‫ألنه‬ ‫أخر‬ ‫عمٌل‬ ‫أو‬ ‫نفس‬ ‫العمٌل‬ ‫الصفحة‬ ‫طلب‬ ‫من‬ ‫ٌهم‬ ‫ال‬ ‫وهنا‬ ‫تعدٌلها‬ ‫تم‬ ‫كما‬ ‫القٌمة‬ ‫سٌرى‬. ‫الصفحة‬BakedBeanDisplay-application.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Baked Bean Values: application-based Sharing</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H1>Baked Bean Values: application-based Sharing</H1> <jsp:useBean id="sessionBean" class="coreservlets.BakedBean" scope=" application" /> <jsp:setProperty name="applicationBean" property="*" /> <H2>Bean level: <jsp:getProperty name="applicationBean" property="level" /></H2> <H2>Dish bean goes with: <jsp:getProperty name="applicationBean" property="goesWith" /></H2> </BODY></HTML>
  • 20. ‫الصفحة‬ ‫لـ‬ ً‫األول‬ ‫الطلب‬ ‫هذا‬BakedBeanDisplay- application.jsp‫الـ‬ ‫خصائص‬ ‫وهنا‬bean‫البارمتر‬ ‫من‬ ‫قٌمتها‬ ‫أخذت‬. ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌمة‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫الطلبات‬ ‫بٌن‬ ‫نفسها‬ ‫تبقى‬. ‫قٌمة‬ ‫وهنا‬ ‫الصفحة‬ ‫لنفس‬ ‫أخر‬ ‫عمٌل‬ ‫من‬ ‫أخر‬ ‫الحق‬ ‫طلب‬ ‫هذا‬‫الـ‬ ‫خصائص‬ ‫أن‬ ‫هنا‬ ‫ونجد‬ ‫السابقة‬ ‫القٌم‬ ‫نفس‬ ‫أخذها‬ ً‫الت‬bean‫تبقى‬ ‫الـ‬ ‫مشاركة‬ ‫هو‬ ‫هذه‬ ‫مختلفة‬ ‫جلسة‬ ‫أو‬ ‫مختلف‬ ‫العمٌل‬ ‫كان‬ ‫إذا‬ ‫حتى‬ ‫الطلبات‬ ‫بٌن‬ ‫نفسها‬bean‫التطبٌق‬ ً‫ف‬. ‫الدرس‬ ‫نهاٌة‬