ما هى ال jsp
هى امتداد لتقنية ال servlet الموجودة فى الجافا.
و ال jsp هى تقنية تعمل على تطوير صفحات الويب التى تحتوى على محتويات ديناميكية.
دعنا نقوم بعمل مقارنة بين تقنية ال jsp و تقنية ال servlet
حاولت اعملها فى جدول على الورد لكن لما نقلته فى الموضوع ملامحه ضاعت
و من اهم مميزات ال 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>و ستكون النتيجة كالآتى:::::
تعرف على 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>
و ستكون النتيجة كالتالى::::
طبعا اعذرونى لو يوجد اى شىء مبهم او خطأ(اطلب التعديل على الموضوع مباشرة ان وجد)....لانى مبتدئة جدا




