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

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

بدأه rohaili في 12 نوفمبر 2009 · 15 رد · 1,588 مشاهدة · في JavaEE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بســم الله الـرحمــن الرحيــم

السلام عليكــم ورحمـة الله وبركاتــه ،،

عندي applet يوجد به دالة تعود بقيمة نصية string ، كيف استدعي هذه الدالة واحفظ القيمة المعادة ( النص ) في مربع نص في نفس الصفحة أو في كائن request أو session ؟

لو أمكن تفصيل الحل بقدر الإمكان لكان أفضل وجزاكم الله خيرا .

300_130.gif

#2

لماذا لا تقوم بعمل صفحة تستقبل الطلبات من الـ applet وتقوم بإضافتها على session؟

تحياتي

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

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

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

728x90.png

#3

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

هل تقصد أن يقوم الأبلت بالاتصال بالانترنت وطلب صفحة وتمرير البيانات لها عن طريق get أو post ؟

300_130.gif

#4

بالضبط

تحياتي

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

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

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

728x90.png

#5

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

سوف أحاول رغم أني لم أجرب ذلك أبدا باستخدام أبلت ، فمثلا في السيرفلت نطلب الصفحة كالتالي ، ونمرر لها request


javax.servlet.RequestDispatcher dp =
this.getServletContext().getRequestDispatcher("/add.jsp");
dp.forward(request, response);

فهل الأمر كذلك في الأبلت ، وهل يمكن طلب صفحة في داخل المجلد web-inf ، وهل يمكن استدعاء السيرفلت مباشرة ؟

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

300_130.gif

#6

السلام عليكم

فعلا أخ rohaili أسألتك دى مهمة ومهم جدا يجاوبنا عليها أحد المشرفين أو الخبراء

على فكرة هذه طريقة استدعاء صفحة فى الابليت

getAppletContext().showDocument(new URL("http://www.yahoo.com/Login"));

وبهذا يمكنك استدعاء السيرفلت مباشرة بكتابة عنوانه الموجود فى الملف web.xml

لكن هذه الطريقة ستقوم بتغيير الصفحة الحالية التى تحتوى على الابليت

فماذا لو كانت فاتورة مثلا وحدث خطأ ولم يتم حفظها ثم اضطر المستخدم للعودة الى صفحة الفاتورة فسيجد الابليت فقد كل البيانات التى ادخلها من قبل

وسيضطر لكتابتها كلها مرة ثانية وربما ثالثة ورابعة و أظن انه سيترك برنامجنا ولن يعمل عليه مرة ثانية ونخسر شغلنا ونقعد فى البيت

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

فعندى حل وهو باستخدام Ajax

وهو ان نقوم بارسال البيانات التى يتضمنها الابليت بطريقة ال Javascript كما تعلم ونرسلها فى Ajax الى سيرفلت او صفحة jsp

ونجعل هذه الصفحة تعيد قيمة boolean فاذا أعادت true نستخدم الدالة alert الموجودة فى Javascript لنخبر المستخدم انه قد تم حفظ الفاتورة بنجاح

والا فنخبره بفشل عملية الحفظ فيحاول مرة أخرى وهو فى نفس الصفحة دون ان يفقد اى بيانات قام بادخالها

وبكده نكون مريحين المستخدم عالاخر وهى دى شغلتنا :cry:

فاذا وجدت حلا اعرضه والا فنستخدم اقتراحى سويا

موفق

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 28 نوفمبر 2009 في 22:57


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#7

بالنسبة لshowDocument فهناك شكل آخر ينتظر String بالإضافة إلى الURL

showDocument(URL url, String target)

ممكن استعمالها لإظهار الصفحة في نافذة جديدة وذلك باستعمال" _blank"

getAppletContext().showDocument(new URL("http://www.yahoo.com/Login"), "_blank");
#8

السلام عليكم

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

فنقوم باخفاء شريط العنوان وكذلك شريط الادوات ونحدد ابعادها كما نفعل فى الJavaScript باستخدام window.open

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

ولكن اذا لم نتحكم بها فأظن أنها لن تكون جيدة ويكون استخدام Ajax أفضل

هذا فقط ان لم يكن هناك طريقة للتحكم بالنافذة الجديدة

وشكرا لك


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#9

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

جزاكم الله خيرا .

بالنسبة للأجاكس لا أفقه فيها شيئا .

الطريقة التي استخدمها هي :

من لوحة التحكم يضغط المستخدم على زر ينقله لصفحة الأبلت ، فيقوم الأبلت بجمع البيانات من قاعدة المستخدم ويحفظها كنص ، يضغط المستخدم بعد ذلك على زر في نفس صفحة الأبلت يقوم باستدعاء دالة جافا سكربت ، وتجلب هذه الدالة البيانات من الأبلت وتضعها في مربع نص مخفي ، يضغط المستخدم على زر آخر في نفس صفحة الأبلت ، يستدعي سيرفلت فيقوم السيرفلت بجلب البيانات من مربع النص المخفي ويعالج هذه البيانات ثم يحفظها في قاعدة بيانات الموقع ، ثم يعرض صفحة تحكم المستخدم ويعرض رسالة تفيد المستخدم باتمام العملية بنجاح أم لا .

حل ممل لكن لم أجد غيره .

تم تعديل هذه المشاركة بواسطة rohaili في 29 نوفمبر 2009 في 16:48

300_130.gif

#10

السلام عليكم

أخ rohaili لكل منا طريقته ولكن نحاول معا ان نصل الى اقوى واسرع طريقة

طريقتك سليمة طالما انها تؤدى الغرض منها

لكن لو استخدمت ال Ajax فستوفر عليك الخطوة الاخيرة وهى تغيير الصفحة الى السيرفلت الذى يستقبل البيانات

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

وبما أنك تستدعى البيانات من الابليت باستخدام JavaScript فانت قريب جدا من Ajax

فكل ماتحتاجه هو اضافة بسيطة جدا لكود JavaScript الذى كتبته

ولولا أن هذا القسم لJ2EE وليس لAjax كنت كتبت لك الكود كاملا

ولكن أفضل أن تتصفح Ajax بنفسك فهى سهلة جدا

وهذا أحسن مصدر تتعلم منه Ajax

Ajax Tutorial

واتوقع ان تتقنها فى ساعتين لا أكثر

ولو فى أى مشكلة أكتبها لكن فى قسم ال JavaScript && Ajax

وأساعدك فيها ان شاء الله

بالتوفيق


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#11

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

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

في الحقيقة أن كلامك شجعني على البدء بتعلم الأجاكس من الرابط السابق ، وسوف أبدأ من الآن بحسب ما يتاح لي من الوقت ، وإن عرض لي تساؤل فسوف اطرحه في قسم الأجاكس .

جزاك الله خيرا ، وجعل ذلك في ميزان حسناتك .

300_130.gif

#12

وأنا من المتابعين وفقك الله


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#13

طيب دعونا نقوم بشيء قريب من ذلك في جافا

وذلك من خلال استخدام الفئة HTTPConnection

هذه الدالة تقوم بعمل طلب للصفحة بشكل غير ظاهر للمستخدم

وتقوم بإرجاع الرد أيضاً بنفس الطريقة

تجدون أننا تقريباً نعمل كأننا Ajax لكن مع إمكانيات الجافا الكبيرة

تريدون رأيي لولا أن الجافا تحتاج إلى module إضافية ربما لما كان هناك وجود لتقنية Ajax أصلاً

تحياتي

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

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

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

728x90.png

#14

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

هل ممكن أن تشرح لنا باختصار وتوضح كيف تقوم بإرجاع الرد .

300_130.gif

#15

كنا تكلمنا عنه كذا مرة في كذا مكان في المنتدى

لكني لا أثكر أين بالضبط

على العموم هذه وصلة لشيء مشابه

http://java.sun.com/docs/books/tutorial/networking/urls/readingWriting.html

http://java.sun.com/j2se/1.4.2/docs/api/java/net/HttpURLConnection.html

يمكن أن يفيدك في شيء

تحياتي

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

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

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

728x90.png

#16

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

300_130.gif

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…