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

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

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

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

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

يمكن تمرير البيانات للأبلت ولكن هل يمكن للأبلت أن يعود بقيمة ؟ فإن كان ممكنا فكيف يكون ذلك ؟

يستخدم الأبلت الأمر getparameter لإحضار القيم الممرة إليه ، فهل يمكن استخدام الأمر setparameter لحفظ قيمة في الجلسة session أو أي مكان يمكن لصفحة jsp أو السيرفلت الوصول إليه ؟

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

300_130.gif

#2

لن تستطيع ذلك الا بعمل Connection من الأبليت للموقع وبعدها أرسل وأستلم ما تريد مثله مثل أي برنامج عادي using input/output straems

انظر هنا :

http://www.jguru.com/faq/view.jsp?EID=45661

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#3

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

300_130.gif

#4

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

اخى rohaili

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

ويجعلك قادر على التعامل مع الابليت كاى جزء من الصفحة

الخطوات:

1- نقوم بانشاء الابليت التالى

كود الابليت

package applets;



import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;



import java.awt.Font;

import java.awt.Rectangle;



import javax.swing.BorderFactory;

import javax.swing.JApplet;

import javax.swing.JTextField;

import javax.swing.SwingUtilities;

import javax.swing.border.BevelBorder;



public class myApplet extends JApplet {



private JTextField userNameField = new JTextField();

private String userName="";



public void init(){

try{ 

SwingUtilities.invokeAndWait(new Runnable(){



public void run(){

jbInit();

}



});



userName=getParameter("userName");

setUserName(userName);



}catch(Exception ex){

ex.printStackTrace();

}



}





private void jbInit(){

this.setSize(new Dimension(400, 135));

this.getContentPane().setLayout(null);

userNameField.setBounds(new Rectangle(53, 45, 295, 45));

userNameField.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));

userNameField.setHorizontalAlignment(JTextField.CENTER);

userNameField.setFont(new Font("Tahoma", 0, 12));

userNameField.setForeground(new Color(0, 66, 198));

this.getContentPane().add(userNameField, null);

}



public void setUserName(String name){

this.userNameField.setText(name); 

}



public String getUserName(){

return (this.userNameField.getText());

}



}

لاحظ setter && getter للخاصية userName

2- نقوم بانشاء صفحة JSP والتى تحتوى على الابليت

كود الصفحة

<%@ page language="java" %>
<%@ page contentType="text/html;charset=windows-1256" %>
<%@ page isThreadSafe="true" %>
<%@ page session="true" %>
<%! 

    String name=""; // declarations

%>
<%

 request.setCharacterEncoding("windows-1256");
 response.setCharacterEncoding("windows-1256");

 name=request.getParameter("appletCell");

 name= name==null? "":name;

%>
<html>
 <head>
  <title> get Applet Field </title>
  <meta http-equiv="Content-Type" content="text/html;charset=windows-1256">
  <script language="JavaScript">

  function getName(){
      document.myForm.appletCell.value=document.myapplet.getUserName();
  }

  </script>
 </head>
 <body>
   <br><br><br>
   <applet name="myapplet" code='applets.myApplet' archive='app_jars/applets.jar' width=500 height=150 >
     <param name="userName" value="<%= name %>"/>
   </applet>
   </table>
   <br/><br/>
   <form name="myForm" method=POST action="ShowApplet">
        <input type=HIDDEN name="appletCell">
        <input type=SUBMIT value="Print Name" onClick="getName();">
   </form>
   <br/><br/>
   <%
       out.println("<b> You Entered : </b><font name='Arial' size='16' color='RED' weight='BOLD' >"+ name +"</font>");
   %>
 </body>
</html>

يمكنك تغيير المسار للكلاس فى وسم <applet> كما هو موجود لديك

بالتوفيق

تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 17 نوفمبر 2009 في 18:49


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

الأنفال ۳۳                                  
 

#5

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

حل رائع يعتمد على الجافا سكربت .

ملخص الحل :

1 - إضافة form لصفحة jsp يحتوي على زر submit عند الضغط عليه يستدعي الدالة getName الموجودة في الجافا سكربت .

2 - تستدعي الدالة getName الدالة getUserName من الأبلت المسمى myapplet ( يتم تسمية الأبلت في وسم الأبلت في الصفحة ) .

3 - حفظ القيمة المعادة من الدالة getUserName في مربع النص المسمى appletCell الموجود في الفورم form المسمى myForm ( يتم تسمية الفورم في وسم الفورم في الصفحة ) .

4 - يمكن الأن حفظ قيمة appletCell في session أو استدعائها من صفحة أخرى بواسطة الأمر request.getparameter

.

300_130.gif

#6

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

اخ rohaili ولا حتى كلمة شكرا اخى

انت زعلان منى ولا ايه؟

عالعموم مبروك عليك الحل وانا ثوابى على الله

بالتوفيق


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

الأنفال ۳۳                                  
 

#7

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

وعليكــم السـلام ورحمة الله وبركاتـه.. مرة أخرى لأني قد نسيتها في الرد السابق .

شكرا لك أخي الكريم ، ألف شكر لك .

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

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

ملاحظة : نستخدم كثيرا كلمة شكرا في معاملاتنا مع الآخرين وهذا خطأ لأن الشكر إنما يكون بالفعل لا بالقول ، فشكر الله يكون بطاعته وإجتناب معصيته وليس بقول الشكر لله .

300_130.gif

#8

أؤيد الأخ وجدي في حله

تستطيع أن تقوم بإرسال البيانات مباشرة من الـ applet دون الحاجة إلى التحرك من الصفحة أصلاً

وهذا شيء يشبه ajax تقريباً لولا أن applet يحتاج إلى VM لكنت أفضله على ajax

بالمناسبة على كل أول مرة أعرف أن js تستطيع مناداة دوال في applet بأمانة هذا شيء مفيد جداً

جزاك الله خير أخ محمد

تحياتي

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

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

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

728x90.png

#9

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

اخى rohaili افحمتنى بردك

وشكرا لمشرفنا علاء الصالحى

سلام


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

الأنفال ۳۳                                  
 

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

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

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

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

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