الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس فى الjsp

بدأه رااحيل في 24 يوليو 2010 · 18 رد · 3,415 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ما هى ال jsp

هى امتداد لتقنية ال servlet الموجودة فى الجافا.

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

دعنا نقوم بعمل مقارنة بين تقنية ال jsp و تقنية ال servlet

post-210352-040166900 1279919483_thumb.p

حاولت اعملها فى جدول على الورد لكن لما نقلته فى الموضوع ملامحه ضاعت

و من اهم مميزات ال jsp هى الفصل بين فئة العمل (Business logic ) و بين فئة الواجهة التى تظهر للمستخدم(presentation logic ).

هذا مثال بسيط لل jsp

<!-- CurrentTime.jsp -->
<HTML>
<HEAD>
<TITLE>
CurrentTime
</TITLE>
</HEAD>
<BODY>
Current time is <%= new java.util.Date() %>
</BODY>
</HTML>

و كما ترى ان الكود تقريبا كله عبارة عن html و لكنك سترى كود جافا من خلاله = new java.util.Date() الخاص باظهار الوقت.

و هذا الكود سيقوم بعمل الاتى::

اظهار صفة ويب يكون بداخلها مكتوب

Current time is+الوقت و التاريخ

كيف تستطيع ادماج اكواد جافا مع اكواد ال html

هناك ثلاث انواع تستطيع ان تدمجها

1- Expressions

2- Scriptlets

3- Declarations

هيا نرى كيف نقوم بادماج كل من هذة المكونات:::::::::

1-لكى تقوم بادماج Expressions تستعمل هذا الوسم

<%= Java-expression %>

و تتحول نتيجة ال Expressions الى قيمة نصية ثم ترسل الى ال servlet..

2-لكى تقوم بادماج Scriptlet تستعمل هذا الوسم

<% Java statement %>

و هى تمكنك من ادماج بعض جمل الجافا مثل المناداة على دالة معينة

3-لكى تقوم بادماج Declaration تستعمل هذا الوسم

<%! Java method or field declaration %>

و هى تمكنك من تعريف بعض المتغيرات او انشاء الدوال داخل هذا الوسم

ماذا لو نريد ادماج تعليق comment ؟؟

تستخدم هذا الوسم لكتابة اى تعليق على برنامجك

نعرف ان كتابة تعليق داخل ملف ال html

<!-- HTML Comment -->

اما لكتابة تعليق داخل ملف ال html مع عدم ظهوره مع النتيجة النهائية تستخدم هذا الوسم

<%-- JSP Comment --%>

لاحظ هذا المثال::::

<HTML>
<HEAD>
<TITLE> Factorial </TITLE>
</HEAD>
<BODY>
<%  for (int i = 0; i <= 10; i++) { %>
Factorial of <%= i %> is
<%= computeFactorial(i) %> <br>
<%  } %>
<%! private long computeFactorial(int n) {
      if (n == 0)
        return 1;
      else
        return n * computeFactorial(n - 1);
    } %>
</BODY>
</HTML>

و ستكون النتيجة كالآتى:::::

post-210352-064116600 1279919880_thumb.p

تعرف على JSP Directives

هى عبارة عن جملة للاعطاء معلومات للJSP container عن صفحة ال jsp

أولا:::: page directives

<%@ page import="java.util.*" %>

ثانيا:::: Include directives

<%@ include file="footer.html" %>

انظر لهذا المثال:::::::

<!-- FactorialInput.html -->
<HTML>
<HEAD>
<TITLE> 
FactorialInput 
</TITLE>
</HEAD>
<BODY>
<FORM method="post" action="http://localhost:8080/examples/jsp/ComputeFactorial.jsp">
Enter an integer  <INPUT NAME="number"><BR><BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Compute Factorial">
<INPUT TYPE="RESET" VALUE="Reset">
</FORM>
</BODY>
</HTML>

<!-- ComputeFactorial.jsp --> 
<HTML>
<HEAD>
<TITLE>ComputeFactorial</TITLE>
</HEAD>
<BODY>
<%@ page import ="java.text.*" %>
<%@ page errorPage = "FactorialInputError.jsp" %>
<%  NumberFormat format = NumberFormat.getNumberInstance();
    int number = Integer.parseInt(request.getParameter("number")); %>
Factorial of <%= number %> is
<%= format.format(computeFactorial(number)) %> <p>
<%! private long computeFactorial(int n) {
      if (n == 0)
        return 1;
      else
        return n * computeFactorial(n - 1);
    }
%>
</BODY>
</HTML>

<!-- FactorialInput.html -->
<HTML>
<HEAD>
<TITLE> 
FactorialInput 
</TITLE>
</HEAD>
<BODY>
<FORM method="post" action="http://localhost:8080/examples/jsp/ComputeFactorial.jsp">
Enter an integer  <INPUT NAME="number"><BR><BR>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Compute Factorial">
<INPUT TYPE="RESET" VALUE="Reset">
</FORM>
</BODY>
</HTML>

و ستكون النتيجة كالتالى::::

post-210352-033874800 1279920099_thumb.p

post-210352-055315100 1279920170_thumb.p

post-210352-032950200 1279920222_thumb.p

طبعا اعذرونى لو يوجد اى شىء مبهم او خطأ(اطلب التعديل على الموضوع مباشرة ان وجد)....لانى مبتدئة جدا

المرفقات
diff.pngالمضروب .pngerr1.pngerr2.pngerr3.png
1
00020309t.gif

1958_1963.gif
#2

شكرا يا اسراء

سوف اكون احذ تلاميذك هنا بالدروس

تم تعديل هذه المشاركة بواسطة محمد عرسان في 24 يوليو 2010 في 00:31

#3

ربنا يسهل اخى محمد..........

00020309t.gif

1958_1963.gif
#4

شكرا اسراء ولكن متى نستخدم الـ Servlet في صفحات الانترنت وهل ملفات الـ JSP تولد أكواد الـ الـ Servlet

#5
اقتباس
شكرا اسراء ولكن متى نستخدم الـ Servlet في صفحات الانترنت

تستخدم ال servlet اذا كان موقعك يوجد فيهBusiness logic اكثر

00020309t.gif

1958_1963.gif
#6

موضوع جميل

جزاكى الله خيرا

وعاوزه تحذفى العضويه امال مين اللى هيشرح لينا JSP

يلا منتظرين المزيد ان شاء الله على ما ربنا يسهل واوصل ليها فاضل شبترين كدا :lol:

Software Developer
Mahmoudkelany.com


 

#7

و هذا موضوع أخر مميز من مواضيعك المميزه أختي إسراء.... laugh.gif

تم تعديل هذه المشاركة بواسطة هويدي في 24 يوليو 2010 في 08:27

#8

ارجو ان يكون الموضوع بدون اخطاء ان شاء الله

علشان اكتب اللى بعده ان شاء الله

00020309t.gif

1958_1963.gif
#9

ماشاء الله نفرتاري :D

لكن لي ملاحظة صغيره جدا... ال JSP و ال Servlet ليسا ندين, بل متكاملتين سويا ...

#10
اقتباس
لكن لي ملاحظة صغيره جدا... ال JSP و ال Servlet ليسا ندين, بل متكاملتين سويا ..

تقصد انى ممكن استخدمهم مع بعض فى نفس التو و اللحظة

00020309t.gif

1958_1963.gif
#11

بل أقصد أنه يجب أن تستخدميهم مع بعض إن كنتي تريدين كتابة تطبيق ويب إحترافي (إقرأي عن ال MVC )

#12
هويدي كتب:

بل أقصد أنه يجب أن تستخدميهم مع بعض إن كنتي تريدين كتابة تطبيق ويب إحترافي (إقرأي عن ال MVC )

استاذي الكريم هويدي انافي الحقيقة لم استطع الفصل بين الـ JSP والـ Servlet ؟ وهذا العائق الذي جعلني ابتعد عن تعلم هذه التقنيات فهل يوجد هنالك مثال عملي بسيط حتى افهم ماذا يجري وماذا يفعل الـ Tomcat Srver حتي تظهر الصفحات في المستعرض .. لان جميع الدروس التي في هذا القسم لم افهم منها كيفية عمل هذه التقنيات ؟

بالمناسبة ايضا يوجد هنالك JSF مالفرق بينها وبين الـ JSP ? هل هي الجيل الجديد للتعامل مع صفحات الويب ؟

ما أكثر التقنيات الخاصة بالجافا !!

#13
اقتباس
بالمناسبة ايضا يوجد هنالك JSF مالفرق بينها وبين الـ JSP ? هل هي الجيل الجديد للتعامل مع صفحات الويب ؟

تقريبا.. نعم

اقتباس
ما أكثر التقنيات الخاصة بالجافا !!
و هنا تكمن قوة و جمال الجافا...

نصيحتي لك أخي أن تأخذ كتاب يتحدث عن ال JSP /Servlet و تقرأ منه ... أنصحك ب Head First Servlets/JSP ... أو أي كتاب أخر إن لم يتوفر لك الكتاب الأول...

#14
  %> <%@ page errorPage = "FactorialInputError.jsp" %>

سطر جديد ،

هل هذه الطريقة المستخدمة هي الافضل في اقتناص الأخطاء ؟ هل يتم اقتناص الأخطاء التي في نفس الصفحة؟ يعني لازم يقع استثناء في نفس الصفحة jsp حتى نذهب إلى الصفحة error.jsp ؟

يا ليت لو نرى كود صفحة error أيضاً .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#15
اقتباس
يا ليت لو نرى كود صفحة error أيضاً .

<%@ page isErrorPage="true" %>

<%=exception.getMessage() %>

تذكر, صفحات ال errors يوجد بها الكائن exception ضمنيا :D

منور المنتدي أخ شمري

#16

الله يعافيك أخ هويدي ،

الأمر سهل !

لكن فيه صعوبة على ما أظن لو كان عندنا أكثر من exception ونحن نريد exception معين ،

وأيضاً الأخطاء التي تنطلق من servlet ؟

عشان كذا ما استخدمت هذه الطريقة في اقتناص الاخطاء عندما استخدم jsp/servlets :- )

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#17

متأسفة انا ما اخدتش بالى خالص انى كررت الكود

عامة كود صفحة الخطأ::::

<!-- FactorialInputError.jsp -->
<HTML>
<HEAD>
<TITLE>
FactorialInputError
</TITLE>
</HEAD>
<BODY>
<%@ page isErrorPage = "true" %>

<b>Error</b> -- Input is not an integer.

</BODY>
</HTML>

تم تعديل هذه المشاركة بواسطة نفرتاري في 25 يوليو 2010 في 23:44

00020309t.gif

1958_1963.gif
#18

في رأيي فإن error page توضع للإمساك بالأخطاء الغير محسوبة من قبل المستخدم

هذا يضمن لك أن لا ينكشف جزء من كودك لدى العميل الذي يمكنه ببساطة أن يستغل معرفته بهذا الجزء

في أغراض سيئة

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#19

@الشمري

اقتباس
لكن فيه صعوبة على ما أظن لو كان عندنا أكثر من exception ونحن نريد exception معين ،

مممم,, و ماذا عن ال polymorphism ؟ :D

في رأيي... ال JSP/Servlet لا تفضل إلا لتعلم برمجة الويب,, فهذه الأيام يوجد العديد و العديد من ال frameworks التي تيسير العمل مع تطبيقات الويب في الجافا ... :D

على كل يا شباب أنا لا أفضل إستخدام pure JSP/Servlets و إن إستخدمتها فأفضل أن أطبق MVC و ذلك كالتالي:

لا أضع كود جافا في صفحة ال JSP قدر المستطاع و بالتالي كود الجافا سيكون في ال Servlets و ال JSP لا يوجد بها إلا مجموعه من ال tags (عن طريق JSTL, custom tags) ,,,,, و فقط

تم تعديل هذه المشاركة بواسطة هويدي في 27 يوليو 2010 في 19:31

مواضيع مشابهة