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

الدرس الأول : مفهوم jsp :

مغلق
بدأه nardien28 في 3 أكتوبر 2004 · 30 رد · 13,085 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الدرس الأول : مفهوم jsp :

*********************

بالنسبة لتنزيل التومكات تم شرحه على الرابط /index.ph...ndpost&p=222179

Java Server Pages(jsp) :

هي بكل بساطة عبارة عن ملفات نصية (وثائق) تصف كيفية معالجة طلب (request) من المستخدم(client) ليتم تحديد ووصف طريقة الاستجابة (response) من السيرفر عبر بروتروكول معين (البروتوكول الافتراضي هو HTTP ) وذلك بهدف بناء تطبيقات تضيف محتويات ديناميكية لصفحة الويب (نموذج طلب-استجابة أو form) بحيث يتم تغليف صفحة الويب بإمكانات الجافا .

تملك تقنية الjsp مفاتيح رئيسية تمثل أدوات العمل وهي :

· Directives

· Actions

· Scriptlets

· Tag Libraries

قبل التطرق الى شرح المفاهيم السابقة سأدرج مثال بسيط لنموذج (طلب-استجابة) لتوضيحه لمن يجهله :

افتح النوتباد واكتب فيه (لا تنقل التعداد الرقمي !!!) :

1. <html><body>
2. <% String name=request.getParameter("yrname"); 
3. if(name!=null){
4. %>
5. <p> hellow <font color="red"><%=name%> </font>
6. <%  } else{ 
7. %>
8. <form action="my_page.jsp" method="get">
9.  type your name then click Submit
10. <input  type="text"        name="yrname">
11. <input  type="submit"   value="Submit">
12. </form>
13. <% } %>
14. </body></html>

سمي الملف my_page.jsp وافتح مجلد التومكات تجد فيه مجلد اسمه webapps افتح فيه مجلدك الخاص

my_dir مثلا وضع فيه الملف السابق

افتح الاكسبلورر واكتب http://localhost:8080/my_dir/my_page.jsp وستظهر صفحة تحوي مربع نص لتكتب اسمك .. عند ضغطك على زر Submit فأنت تقوم ب(طلب)

ما يحدث انه في السطر 2 استعملنا لغة الجافا ضمن اقواس من الشكل <% …%> لتعريف متحول نصي name يأخد قيمة ما تكتبه في مربع النص yrname طلما ليس فارغا ليقوم باستدعاء هذا المتحول في السطر 5 بالشكل <%=name%> لكتابة hellow ثم اسمك باللون الأحمر في صفحة جديدة (استجابة)

طبعا أول مره لفتحك الصفحة سيكون المربع فارغ بالتالي name=null حتما فيتم تجاهل if الى else في السطر 6حيث يتم عرض الفورم

ستتساءل عن العبارة request.getParameter("yrname"); من هو request ومن أين أتى

Request هو متحول ضمني Implicit) ) تم اسناده ضمنيا كنموذج للواجهة HttpServletRequest التي تمثل طلب المستخدم موجودة في الحزمة javax.servlet.http

أما getParameter( ) فهي دالة معرفة في الواجهة HttpServletRequest وهي تأخذ بارامتر يمثل اسم الوسيط الذي سيأتي بمعطيات الطلب (هنا هو مربع النص yrname) ويحوله الى وسيط استجابة name

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#2

الله يعطيك الف عافية

والله نحنا نتظر هذه الدروس من زمان

#3

جيد جدا ... اي مساعدة انا جاهز

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#4

اخت نردين جزاك الله الف خير وجعلها فى ميزان حسناتك يوم لا ظل الا ظله

اشكر لك الاستجابه للطلب والله فى عوت العبد ......................

ملحوظه :

الرابط لايعمل بشكل صحيح وشكرا

عبده المصباحى

#5

رابط تنزيل التوم كات /index.ph...ndpost&p=222179

ملاحظة : بعض نسخ التوم كات تستلزم وضع مجلدك الخاص في المجدل ROOT الموجود داخل webapps

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#6

Directive ( الموجهات ) :

******************

<%@directive_name {أحدالخصائص ="قيمة"}%>

الشكل العام :

تمثل رسائل يتم ارسالها الى السيرفر حاوي الjsp

لها 3 انواع :

· page : يتم فيه تعريف عدد من خصائص صفحة jsp للسيرفر الحاوي الjsp

مثال :

 <%@page {pageEncoding="ISO-8859-1"}%>

هنا يقوم الموجه بتنبيه السيرفر ان الصفحة تخضع لترميز ISO-8859-1

وذلك بوضعه كقيمة للخاصية pageEncoding

ملاحظة : الخواص كثيرة ولمن يريد الحصول عليها الرجوع للمراجع أو البحث في الانترنت

· Taglib : يقوم هذا الموجه بتعريف ان الصفحة تستعمل مكتبة tags

( افترض ان الجميع يعرف ما هو الtag) عبر تعريف مسار المكتبة المستخدمة قيمة للخاصية uri وتعريف اسم الtag الأول ( للتفرقة بين اسم الtag واسم ال action ) وذلك بجعله قيمة للخاصية prefix بالشكل التالي :

<%taglib uri="tag_library_url" prefix="tag_prefix %>

اعرف ان المفهوم لا يزال غير واضح ولكن سيوضح أكتر عند فهم الaction

· include : يستخدم لدمج ملف خارجي (txt,jpg,html,..etc ) ضمن صفحة الjsp خلال زمن الترجمة ( قبل حدوث طلب) وله خاصية وحيدة file قيمتها هي مسار هذا الملف

مثال :

<%@include file="my_image.jpg"%>

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#7

وفقك الله اخت نردين ... والى الامام دوما

عندى استفسار بسيط ..........

- ماهو الفرق بين page {pageEncoding="ISO-8859-1 وال charset ؟

وكذلك ما وجه العلاقه بينهم وال encoding الموجود فى بداية ملف XML والذى يتم استدعاء ملفات ال JSP من خلاله ؟

وهل استخدام <%@ page language="java" %> هو السبب الذى يجعل الحروف العربيه من قاعدة بيانات الاوراكل تحت نظام التشغيل UNIXWARE تظهر على الشكل ????????????????? ام هو بسبب عدم كتابة pageEncoding

بالمره ؟

ارجو ان لا اكون قد اثقلت عليك .......... وكثر الله من امثاللك ...مع الشكر

عبده المصباحى

#8

ملاحظة مهمة : الأقواس { } في الdirectives قصدت بها التوضيح .. لا تكتبوها

*********************************************************

Scriptlets :

**********

أحد الامكانات الأساسية في تقنية jsp تمكن المبرمج من ادخال كود جافا مباشرة في الصفحة وذلك بالشكل <%.. your code..%>

ملاحظة : الشكل التالي <%=variable%> يستخدم لتحويل متحول ما تم تعريفه سابقا الى String وتعرضه على صفحة الاستجابة بشكل مباشر (يمكنك تطبيق مؤثرات html عليه حيث سيتم ترجمته الى نص)

ملاحظة: الشكل <%!..code..%> يستخدم لتعريف متحولات أو توابع methods مثلا <%!int x=0;%>

Actions :

********

الشكل العام : <jsp:the_action>….</jsp:the_action> يوجد في مجموعة جاهزة فيjsp أهمها :

· <jsp:include> دمج ملفات خارجية (txt,html,jpg,..etc) في الصفحة حيث تضعها (ضمن خلية جدول مثلا) ولها خاصة

page : تأخذ قيمة هي مسار الملف المطلوب (عنوانه على السيرفر)

· <jsp:forward> تحمل طلب المستخدم بأعضائه بمحتوياته بمعطياته من الصفحة

الحالية الى صفحة jsp أخرى تضع مسارها في الخاصة page

· <jsp:param> تستعمل مع include و forward لنقل معطيات – إضافية - للطلب

مثلا: سمي الصفحة التالية my_page1.jsp

<%   String name=request.getParameter("yrname"); 
if(name!=null){   %>

<jsp:forward  page="my_page2.jsp">
<jsp:param name="drink" value="milk"/>
</jsp:forward>

<% } else{ %>	
<form action="my_page1.jsp" method="get">
type your name then click Submit
<input  type="text"        name="yrname">
<input  type="submit"   value="Submit">
</form>
<% } %>

وسمي الصفحة التالية my_page2.jsp وضعها مع الملف السابق والصورة image.jpg في المجلد my_dir :

<p> hellow 
<font color="red"><%=request.getParameter("yrname")%></font>
<br>Do you like 
<font color="red"><%=request.getParameter("drink")%></font><br>

· <jsp:useBean> : تمكن المبرمج من انشاء objects (طبعا ضمن كلاس في بيئة جافا) والوصول

اليها والعمل معها ضمن الصفحة

له خاصة id تأخد قيمة اسم تختاره يمثل نموذج instance للكلاس كأننا نقول

my_class id_value=new my_class();

له خاصة class تأخد قيمة مسار الكلاس (ضمن السيرفر ضمن المجلد classes) الذي يحوي الobject المطلوب

مثال صغير : اكتب الكلاس التالي في بيئة جافا طبعا اسمه سيكون counter وضع الحزمة my_class

في مجلد في التوم كات اسمه classes

package my_class;

import java.util.*;

public class counter {
      int numGuesses=0;
      public counter() { }
public int getNumGuesses() { return ++numGuesses;  }

}

والان في مجلدك الخاص my_dir لنكتب صفحة jsp بسيطة تستعمل هذا ال Bean

1.<%@ page import = "my_class.counter" %>
2.
3.<jsp:useBean id=" numguess " class="my_class.counter" scope="session"/>
4.<jsp:setProperty name=" numguess " property="*"/>
5.
6.<html>
7.<head><title>Number Guess</title></head>
8.<body bgcolor="white">
7.<p>
9.this site have been visited <%=numguess.getNumGuesses() %> times.
10.</body></html>

السطر 2 : فيه action مهمة فهي اوتوماتكيا ستنقل مكونات الBean من توابع methods وحقول fields

لتصبح جزءا من الطلب بحيث تحتفظ بنفس الاسماء التي اخترتها لها ضمن بيئة جافا ونلاحظ بذلك

استعمالنا للتابع getNumGuesses() في السطر 9

بقي ان أنوه انه يمكنكم اختراع actions بأنفسكم ولكن هذا أمر يطول شرحه ويخرج عن نطاق هذا الدرس المتواضع

بالنسبة للأخ عبده المصباحي جرب :

<%@page contentType="text/html;charset=windows-1252" %>

لاحظت ان العبارة السابقة تحتفظ بالترميز في صفحة الاستجابة والطلب بينما

<%@page pageEncoding="windows-1252" %>

تفقد الترميز الى علامات ؟؟؟؟ في صفحة الاستجابة لذلك استنتجت انها تستخدم في الصفحات الساكنة (التي لا تحوي طلب) ... (هذه ملاحظتي انا لا اعرف مدى صحتها ..!!!)

وأتمنى المساعدة ممكن لهم تعامل مع يونكس واوراكل لأني متأكدة انهم موجودون !!!!

كما ان وجدت الترميزات التي تدعم اللغة العربية هي

" windows-1252"

windows-1250""

" ISO-8859-6 " لا اعلم اذا يوجد غيرهم

جرب كل من العبارتين في بداية الصفحة واحرص ان يكوون الencoding في قائمة view في الاكسبلورر على Arabic[windows] أو على Unicode(UTF-8) والله ولي التوفيق

أما <%@ page language="java" %> لا تتعلق أبدا بترميز الصفحة حيث يقصد بlanguage هنا scripting language (لغة البرمجة التي دمجتها ضمن الصفحة) وهي لا يمكن أن تأخذ أي قيمة غير "java" في بيئة الtomcat ( في الوقت الحاضر !!)

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#9

كل هذا مفهوم فقط الله يعيننا لم تبلشي بالدروس... هه

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#10

طبعا خرجنا عن نطاق الدرس الأول ..

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#11

شهر مبارك وكل عام وانتم بخير nardien and all brothers

استسمحكم عذرا اذا كنا خرجنا بالسؤال عن نطاق الدرس

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

وهناك شفره يجب ان عملها وسوف اضعها لاحقا وشكرا

#12

اقول احقاقا للحق وتنسيب العلم الى اهله ان الشفرة التاليه ليست من عملى وانا اقتبستها من هذا المنتدى الغنى بالمعلومات

 <%@ page contentType="text/html; charset=windows-1256" language="java" import="java.sql.*, java.util.*" errorPage=""%>

<% request.setCharacterEncoding("windows-1256");%>

ومن الرابط الاتى

www.arabteam2000-forum.com/index.php?act=Post&CODE=06&f=43&t=48049&p=234159

ولكن بقيت مشكله وهى ان الاتجاه تبع صفحة الويب مايزال من اليسار الى اليمين الااذا عملت له تغيير يدوى من خصائص المتصفح .

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

#13

استبدل <html> ب

<html dir=rtl>

سيمضي ركبنا العملاق لن يركع .. بإيمان لغير الحق لا يصدع

عزيزا شامخا كالمجد بل أروع .. فسجل أيها التاريخ ما تسمع :

فلسطين لنا الآمال والمطمع .. نعاهد أن نحررها وأن ترجع

ونقسم نستعيد الأرض أو نصرع .. ويبقى رمزنا الزيتون والمدفع

Palestine.gif

#14

بانتظار الدرس الثاني بلهفة،،،

وفيه سؤالين:

الأول : هل أستخدم أوراكل أم ماي اس كيو إل ؟؟

الثاني: كيف الربط بينها و بين صفحة الجي اس بي؟؟

#15

رائع يا نارادين :)

موفقة بإذن الله

#16

أنتظر الدرس الثانيnardien28

لا إله إلا الله العظيم الحليم,لا إله إلا الله رب العرش العظيم,لا إله إلا الله رب السموات ورب الأرض ورب العرش الكريم.

#17

السلام عليكم

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

وكل عام وانتم بخير مقدما

ونحن فى غاية اللهفه ياخت نردين للدرس رقم 2

مع شكرى

#18

ربنا يوفقك 10\10

#19

مرحباً . . .

اشكر الجهود المبذولة من كل الاطراف و ابداء مساهماتي بإعطاكم رابط تحميل التوم كات من الموقع الأصلي و هو:

http://archive.apache.org/dist/jakarta/tomcat-5/v5.0.30/bin/

و هو الاصدار الخامس و الاخير تقريباً ..

و عندما تفتح الصفحة اذهب إلى اللنك التالي:

jakarta-tomcat-5.0.30.exe

....................................................................

مع التحية ، ، ، ،

#20

بالنسبة لسؤال الــ javaworld

عن كيفية ربط صفحة الجي اس بي مع قاعدة البيانات اس كيو ال فهي سهلة و عليك اولاً تعريف الــ Drive الخاص بـ الاس كيو ال

و سأعطي مثالاً في الربط اولاً مع الــ Access للتوضيح ثم مع الــ SQL.

مع التحية،،،،،

wildfire

#21

اخي العزيز wildfire اهلا بك معنا

يرجى منك ملاحظة ان تاريخ اقرب مشاركة هي Dec 18 2004

و هذا يعني ان الاخ javaworld لم يعد مهتم بسؤاله...

و مع ذلك لا باس من وضع الاجابة للفائدة العامة و الله يعطيك العافية

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#22

السلام عليكم ورحمة الله وبركاته ;)

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

هو ال jbuilder لا استطيع كتابة JSP بداخلة ؟

انا حقا اسف لهذه المداخلة السخيفة :(

ملحوظة :

هل من كتاب فى ال jsp

اقترب للناس حســــابهم و هم فى غفلة معرضون

#23

طبعا يوجد الكثير من الكتب قم بالبحث في المنتدى و سوف تجد الثكير

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

#24

ممكن أمثلة جاهزه علي عمليات الربط vedio confrance

#25

ممكن يا أخوه المسلمين والأخوات القانتات الرد علي سوالي :

كـــــــف نربط ال Oracle 9i or 8i مع صفحات ال Jsp

ممكن وبسرعه لانة عاوزه بمشروعي التخرج من الجامعة ... علي الإميل cubra2003salam@hotmail.com

هذا الموضوع مغلق.

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