Submit Search
Upload
الدرس السادس عشر
•
1 like
•
373 views
Anas Aloklah
Follow
الدرس السادس عشر
Read less
Read more
Software
Report
Share
Report
Share
1 of 20
Download now
Download to read offline
Recommended
الدرس الرابع عشر
الدرس الرابع عشر
Anas Aloklah
تعلم HTML CSS و JavaScript
تعلم HTML CSS و JavaScript
Molham Al-Maleh
باللغة العربية jQuery دورة
باللغة العربية jQuery دورة
anees abu-hmaid
Bootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربية
anees abu-hmaid
لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)
anees abu-hmaid
PHP Advance 101 دورة
PHP Advance 101 دورة
anees abu-hmaid
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة
anees abu-hmaid
Angular js دورة
Angular js دورة
anees abu-hmaid
Recommended
الدرس الرابع عشر
الدرس الرابع عشر
Anas Aloklah
تعلم HTML CSS و JavaScript
تعلم HTML CSS و JavaScript
Molham Al-Maleh
باللغة العربية jQuery دورة
باللغة العربية jQuery دورة
anees abu-hmaid
Bootstrap3 دورة باللغة العربية
Bootstrap3 دورة باللغة العربية
anees abu-hmaid
لا تكرر نفسك DRY (Don't Repeat yourself)
لا تكرر نفسك DRY (Don't Repeat yourself)
anees abu-hmaid
PHP Advance 101 دورة
PHP Advance 101 دورة
anees abu-hmaid
باللغة العربية HTML5 دورة
باللغة العربية HTML5 دورة
anees abu-hmaid
Angular js دورة
Angular js دورة
anees abu-hmaid
باللغة العربية HTML دورة
باللغة العربية HTML دورة
anees abu-hmaid
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
anees abu-hmaid
باللغة العربية SASS دورة
باللغة العربية SASS دورة
anees abu-hmaid
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
anees abu-hmaid
باللغة العربية CSS دورة
باللغة العربية CSS دورة
anees abu-hmaid
مذكرة في لغة Html 2
مذكرة في لغة Html 2
خالد مراد
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
NoureddineHassi
مواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScript
Molham Al-Maleh
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Molham Al-Maleh
Web development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقع
iLink sa
الدرس الثالث عشر
الدرس الثالث عشر
Anas Aloklah
Bootstrap-1
Bootstrap-1
Mohamed Sherif
Java Server Pages
Java Server Pages
Kasun Madusanke
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
Jeado Ko
Java Server Pages
Java Server Pages
Shah Nawaz Bhurt
Jsp
Jsp
Priya Goyal
Jsp presentation
Jsp presentation
Sher Singh Bardhan
Jsp ppt
Jsp ppt
Vikas Jagtap
CashFear Arabic Presentation
CashFear Arabic Presentation
Alaa Sol
الدرس الثاني عشر
الدرس الثاني عشر
Anas Aloklah
functional requirements and non functional requirements
functional requirements and non functional requirements
AliMohammad155
مذكرة في لغة Html 2
مذكرة في لغة Html 2
خالد مراد
More Related Content
What's hot
باللغة العربية HTML دورة
باللغة العربية HTML دورة
anees abu-hmaid
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
anees abu-hmaid
باللغة العربية SASS دورة
باللغة العربية SASS دورة
anees abu-hmaid
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
anees abu-hmaid
باللغة العربية CSS دورة
باللغة العربية CSS دورة
anees abu-hmaid
مذكرة في لغة Html 2
مذكرة في لغة Html 2
خالد مراد
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
NoureddineHassi
مواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScript
Molham Al-Maleh
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Molham Al-Maleh
Web development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقع
iLink sa
الدرس الثالث عشر
الدرس الثالث عشر
Anas Aloklah
Bootstrap-1
Bootstrap-1
Mohamed Sherif
What's hot
(12)
باللغة العربية HTML دورة
باللغة العربية HTML دورة
مهووس الحاسوب Computer Geek
مهووس الحاسوب Computer Geek
باللغة العربية SASS دورة
باللغة العربية SASS دورة
java script course دورة جافا سكربت باللغة العربية
java script course دورة جافا سكربت باللغة العربية
باللغة العربية CSS دورة
باللغة العربية CSS دورة
مذكرة في لغة Html 2
مذكرة في لغة Html 2
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
بالعربيةAngular js(ar)تحميل كتاب دورة لتعلم
مواضيع متقدمة في JavaScript
مواضيع متقدمة في JavaScript
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Bootstrap 4 وتطوير قسم المستخدم باستخدام Angular 4
Web development تطوير و تصميم المواقع
Web development تطوير و تصميم المواقع
الدرس الثالث عشر
الدرس الثالث عشر
Bootstrap-1
Bootstrap-1
Viewers also liked
Java Server Pages
Java Server Pages
Kasun Madusanke
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
Jeado Ko
Java Server Pages
Java Server Pages
Shah Nawaz Bhurt
Jsp
Jsp
Priya Goyal
Jsp presentation
Jsp presentation
Sher Singh Bardhan
Jsp ppt
Jsp ppt
Vikas Jagtap
CashFear Arabic Presentation
CashFear Arabic Presentation
Alaa Sol
Viewers also liked
(7)
Java Server Pages
Java Server Pages
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
Java Server Pages
Java Server Pages
Jsp
Jsp
Jsp presentation
Jsp presentation
Jsp ppt
Jsp ppt
CashFear Arabic Presentation
CashFear Arabic Presentation
Similar to الدرس السادس عشر
الدرس الثاني عشر
الدرس الثاني عشر
Anas Aloklah
functional requirements and non functional requirements
functional requirements and non functional requirements
AliMohammad155
مذكرة في لغة Html 2
مذكرة في لغة Html 2
خالد مراد
Www.kutub.info 17040
Www.kutub.info 17040
Imad Modi
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
Prmigo
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
elmouhssini1
انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة
elmouhssini1
Database Administration
Database Administration
Mohamad Al Mdfaa
جافا سكريبت
جافا سكريبت
osman do
الدرس الخامس عشر
الدرس الخامس عشر
Anas Aloklah
Moodle plugins programing manual
Moodle plugins programing manual
Mohammad Tahsin Alshalabi
قوة الباك لينكس
قوة الباك لينكس
Marketing matic Seo Brand
Back links
Back links
sami dib
Web performance - الجزء الخامس
Web performance - الجزء الخامس
anees abu-hmaid
Object Oriented Programming
Object Oriented Programming
Omar Albelbaisy
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
جامعة القدس المفتوحة
محتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdf
HassanEssam4
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
MohamedMostafa897436
خلاصات Rss
خلاصات Rss
Khaled Safi
Articulate2
Articulate2
mohamad39
Similar to الدرس السادس عشر
(20)
الدرس الثاني عشر
الدرس الثاني عشر
functional requirements and non functional requirements
functional requirements and non functional requirements
مذكرة في لغة Html 2
مذكرة في لغة Html 2
Www.kutub.info 17040
Www.kutub.info 17040
المختصر السريع فى البرمجة غرضية التوجية فى Php
المختصر السريع فى البرمجة غرضية التوجية فى Php
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
امتلاك موقع تفاعلي تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة
انتاج موقع تفاعلي دون علم بقواعد البرمجة
Database Administration
Database Administration
جافا سكريبت
جافا سكريبت
الدرس الخامس عشر
الدرس الخامس عشر
Moodle plugins programing manual
Moodle plugins programing manual
قوة الباك لينكس
قوة الباك لينكس
Back links
Back links
Web performance - الجزء الخامس
Web performance - الجزء الخامس
Object Oriented Programming
Object Oriented Programming
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
ملخص تقنية تصميم صفحات الويب - الوحدة الخامسة
محتوي دورة السيو الشاملة.pdf
محتوي دورة السيو الشاملة.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
HTML - L4.pdfHTML - L4.pdfHTML - L4.pdfHTML - L4.pdf
خلاصات Rss
خلاصات Rss
Articulate2
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
Anas Aloklah
More from Anas Aloklah
(12)
مقدمة قواعد بيانات أوراكل
مقدمة قواعد بيانات أوراكل
الدرس الحادي عشر
الدرس الحادي عشر
الدرس العاشر
الدرس العاشر
الدرس التاسع
الدرس التاسع
الدرس الثامن
الدرس الثامن
الدرس السابع
الدرس السابع
الدرس السادس
الدرس السادس
الدرس الخامس
الدرس الخامس
الدرس الرابع
الدرس الرابع
الدرس الثالث
الدرس الثالث
الدرس الثاني
الدرس الثاني
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التطبٌق ًف. الدرس نهاٌة
Download now