16 October 2007

JSP Model1 and Model2 (MVC)

أنا بصراحه حابب أشاركم بصورتين حلوين جدا لمبرمجين ال Jsp بيوضحوا الفرق بين model1 و model2 في ال jsp /servlet
ممكن ميفهمش كلامي ده غير حد ليه في ال Jsp بس بجد صورتين واضحين جدا.

رابط الموضوع كده أهه

الصوره الاولي :



إيه بقه اللي بيحصل هنا ؟

اولا الطريقه دي في كتابة برامج ال Jsp تعتبر طريقة المبتدئين عشان هيا طريقه سلطه شويه ( عامله زي الطريقه اللي بيتبعها الاخوه بتوع الدوت نيت في كتابت برامج ال asp.net كل حاجه بتكون سايحه على بعضها )

ال request بيجي من المتصفح، بنستقبله بصفحة ال jsp و بيتم معالجته سواء عمل إستعلام من قاعدة البانات أو تخزين أو تعديل بيانات، مثلا إفرض إن الصفحه دي صفحة تسجيل دخول فهيحصل التالي :

في بداية الكود بتاع الصفحه هيفحص اسم المستخدم و كلمة المرور من قاعدة البيانات و بعد كده لو لقي المستخدم مرخصله الدخول ، هيوجهه لصفحه تانيه أو يظهرله في نفس الصفحه الحساب بتاعه، لو غير كده هيرجعه لنفس الصفحه و يقوله أعد إدخال البيانات.


نيجي بقه للطريق الاحترافيه ، طريقة ال MVC ( Model-View-Controller ):



اللي بيحصل هنا إن الموضوع منظم، ازاي ؟

دلوقتي عندنا بدل ما بنستخدم صفح jsp بس ، لا هنستخدم sevlets كمان ، و معروف إن كل واحد منهم ليه إستخدامه، فال jsp تستخدم للعروض فقط ( ال Presentation ) الكلام ده كبعا متحققش في الوضع الاول ، أحنا إستخدمنا صفحة ال Jsp في إننا نتأكد هل المستخدم ده عندنا ولا لأ ، و بكده نكون إستخدمنا Jsp في عمل حاجه خارج حدود ال presentation ، أما في الوضع التاني فإحنا هنستخدم ال Jsp استخدامن أمثل و نخليها تعرض بس و برضه ال servlet هنخليها تقوم بالمعالجه و عدم العرض .

طبعا الراجل بيروح يدخل البيانات في صفحة ، jsp أو html أهم حاجه صفحه فيها فورمه وخلاص، إحنا بقه في موديل 2 ( الوضع التاني ) هنخلى أول حاجه الراجل يقابلها في وشه هي ال servlet و هنفحص ، هل ال request اللي جايلك ده فيه قيم في ال متغيرات بتاعته ( request parameters ) ؟ لو لا يبقه الراجل لسه مشفش الفورمه ولسه مملهاش بالبيانات فنروح نعرض الفورمه ليه و نخليه يملاها ، و نخلى ال فورمه دي تبعت على ال servlet ـاني يعني نخلي المتغير action في ال form tag بتاع الفورمه ب ال servlet و بالتالي لما المستخدم يروح يمله الفورمه و يدوس submit تروح الفورمه بمتغيرتها لل servlet ، فيقوم ال servlet فاحص تاني ، هل الفورمه دي متغيرتها مليانه قيم ، لو لأ هيروح ينفذ الخطوه اللي فاتت لو أه هيروح يعالج القيم دي ، في حالتنا دي هيروح يفحص هل اسم المستخدم و كلمة المرور دول موجودين في قاعدة البانات ؟ لو أه روح إبعتني لصفحة jsp مناسبه لو لأا ، رجعني تاني للصفح ه الرئسيه.

ميزة الطريقه دي إننا خلينا صفحات ال Jsp للعرض فقط ، اما ال servlet فيكون فيها كا الكود التاني ، ال Business login يعني .

شوفتوا الحوار موش سيهل إزاي يبتوع الدوت نيت !!؟؟؟؟

و ده بيحصل مع كول فورمه عندنا في التطبيق بتاعنا .

أنا عارف إن الموضوع متعب شويه بس بجد منظم جدا ، و عشان هوا متعب فيه frameworks مخصوصه إتعملت بتساعد المبرمج في عمل الحوار ده من أشهرهم و أهمه ال struts وده مشروح مفتوح المصدر من المنظمه المشهوره جدا apache.org

الاسترتس بقه بتعمل كل حاجه كل اللي عليك إنته إنك تحدد ال process اللي إنتا عاوز تعملها في السيستم بتاعك و هي تقوم بالباقي ، بس موش بالبساطه دي!!!!!

الاسترتس دي متنفعش مع المشاريع الصغيره عشان هتعقد الدنيا ع الفاضي ، بس بجد لو المشروع كبير لازم framework تنظم الدنيا زي الاسترتس.

ودمتم في رعاية الله و أمنه.

No comments: