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

فكرة عمل Chat

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

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

لدي فكرة لعمل جات وهي كما يلي :

1- واجهة الدخول الى الجات وتكون كلمة السر واسم المستخدم اليها هي نفسها في التسجيل الرئيسي .

2- بعد الدخول يكون كتابة الرسالة المرسلة الى الجانب الاخر هي في مربع حوار تحت اسم Type Message and Click Send وبعد كتابة الرسالة سوف ترسل الى الشخص الاخر عند الضغط على

SEND

3-هناك لدي بعض التنبيهات وهي كالاتي عند حدوث شىء معين وهي تدل على ذلك من معناها :

Please Repeat

Break Time

Don’t Understand

وبعد اختيار احدها طبعا حسب الحاجة سوف اضغط على SEND ALERT

4-وكذلك استخدم الامر REFRESH وذلك من اجل حالة الانعاش الى الجات

البرمجة هي :

1- عمل Chat1.jsp الى الشخص الاول وهي واجهة الادخال

و يكون كتابة الرسالة المرسلة الى الجانب الاخر هي في مربع حوار و عند الضغط على SEND

او

اختيار احد

Please Repeat

Break Time

Don’t Understand

ثم الضغط على

SEND ALERT

سوف ياخذ البيانات الى قاعدة بيانات اسمها Chat1

ويخزنها فيها ثم يعرضها في مربع حوار الى الشخص الاخر اي مربع الاستقبال Chat2.jsp

2- عمل Chat2.jsp

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

SEND

او

اختيار احد

Please Repeat

Break Time

Don’t Understand

ثم الضغط على SEND ALERT

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

Chat2

ويخزنها فيها ثم يعرضها في مربع حوار الى الشخص الاخر اي مربع الاستقبال

Chat1.jsp

فهل اباشر واتوكل على الله واجد منكم المساعدة والافكار

وهذا ما ارجوه

طبعا سوف ارفق صورة من الواجهة

سلامي

محمود سامي

post-202915-1264022300963_thumb.gif

#2

هل متأكد أن ال jsp/servlet يصلح لمثل هذا التطبيق؟؟

#3

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

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

و اليوم في الصباح :wub: سوف اوضح الشيء الذي افكر بيه بصورة اكثر

لانه سوف انام على الحاسبة :sleep: :sleep:

سلامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 21 يناير 2010 في 03:10

#4

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

اخي هذه البرمجة الى فكرة chat

1- هذا كود الادخال اي الى نافذه الدخول الى chat والصورة الاولى تمثل النفيذ

<%-- 
    Document   : inputchat
    Created on : Jan 21, 2010, 10:29:48 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title>CHAT</title>
</head>

<body>

<table  align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
      <tr>
     <td width="240" align="center"> CHATING  </td>
      </tr>
      <tr>
     <td width="240" align="center"> <img src="image/img01.gif" width="80" height="80" /> </td>
      </tr>
      <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
</table>


     <form action="loginchat.jsp" method="post" >

 <!-- UserName -->
   <table width="240" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#FFFF00">
<!-- first part of information -->
<!-- student user name and password-->
    <tr>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   </tr>
   <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" size="2" face="Arial">UserName</font></td>
   <td  align="left" width="150"><input align="left" size="15" maxlength="100" type="text" name="user"  /></td>
   </tr>


<tr>
<td  bgcolor="#FFFF00"  align="center" height="7"></td>
</tr>

    <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" face="Arial" size="2">Password</font></td>
   <td  align="left" width="150"><input align="left" size="15" maxlength="100" type="password" name="pwd" /></td> <br />
   </tr>
   <!-- submit --> <!-- greate account -->
   <tr>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   </tr>
   <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" size="2" face="Arial"></font></td>
   <td  align="left" width="150"><input align="left" size="2"  type="submit" value="Login" /></td>
   </tr>
    </table>
    </form>


<table align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
        <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
      <tr>
     <td width="240" align="center">
     <STYLE TYPE="text/css">
A { text-decoration: none; }
A:link { color: #000000; }
A:visited { color: #000000; }
</STYLE>
     <a href="">LOGOUT</a> </td>

      </tr>


</table>

</body>

</html>

2- وهذا كود برنامج الاتصال بقاعدة البيانات

<%--
    Document   : login
    Created on : Jan 3, 2010, 10:58:25 AM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>

<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
String userid=request.getParameter("user");
session.putValue("userid",userid);
String pwd=request.getParameter("pwd");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st= con.createStatement();
ResultSet rs=st.executeQuery("select * from users1 where user_id='"+userid+"'");
if(rs.next())
{
if(rs.getString(2).equals(pwd))
{
response.sendRedirect("chating.jsp");

}
else
{
response.sendRedirect("inputchaterror.jsp");
}
}
else
%>



    </body>
</html>

وهذه قاعدة البيانات

DROP TABLE IF EXISTS `mahmood`.`users1`;
CREATE TABLE  `mahmood`.`users1` (
  `user_id` varchar(45) collate utf8_unicode_ci NOT NULL,
  `password` varchar(45) collate utf8_unicode_ci default NULL,
  `fname` varchar(45) collate utf8_unicode_ci default NULL,
  `lname` varchar(45) collate utf8_unicode_ci default NULL,
  `email` varchar(70) collate utf8_unicode_ci default NULL,
  `Are you human` varchar(70) collate utf8_unicode_ci default NULL,
  PRIMARY KEY  (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

3- وهذه واجهة ال chat مع الصورة الثانية التي تمثل التنفيذ

<%-- 
    Document   : chating
    Created on : Jan 21, 2010, 10:31:42 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title>CHAT</title>
</head>

<body>

<table  align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
      <tr>
     <td width="240" align="center"> CHATING  </td>
      </tr>
      <tr>
     <td width="240" align="center"> <img src="image/img01.gif" width="80" height="80" /> </td>
      </tr>
      <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
</table>


      <form action="inputmessage.jsp" method="post">

<table  align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
      <!-- print("welcome" + userid) -->
<tr>
<td align="center" height="10" bgcolor="#FFFF00" >
<font face="Arial Rounded MT Bold" color="#FF0000" size="1">
<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
String user=session.getValue("userid").toString();
%>
Welcome to <%=user %>
</font>
</td>
</tr>

<tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
      <tr>
     <td width="240" align="left"> Recive Message :  </td>
      </tr>
      <tr>
          <td width="240" align="left"><textarea size="30" name="recive"></textarea>  </td>
      </tr>
      <tr>
     <td width="240" align="left"> Type Message And Click Send:  </td>
      </tr>
      <tr>
       <td width="240" align="left"><input size="30" type="text" name="sent"/>  </td>
      </tr>
      <tr>
     <td width="240" align="left"> <input type="submit" value="SEND" /> </td>
      </tr>
</table>
       </form>



       <form action="inputmessage.jsp" method="post">
<table  align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
      <tr>
     <td width="240" align="left">

       <input type="radio" name="repeat" value="Please Repeat"/>Please Repeat<br />
       <input type="radio" name="breaktime" value="Break Time"/>Break Time  <br />
       <input type="radio" name="dontunder" value="Dont Understand" />Dont Understand  <br />

      </td>

      </tr>

      <tr>
     <td width="240" align="left"> <input type="submit" value="SEND ALERT" /> </td>

      </tr>
</table>
      </form>

<table align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
        <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
      <tr>
     <td width="240" align="center">
     <STYLE TYPE="text/css">
A { text-decoration: none; }
A:link { color: #000000; }
A:visited { color: #000000; }
</STYLE>
     <a href="inputchat.jsp">LOGOUT</a> </td>

      </tr>


</table>

</body>

</html>

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

<%--
    Document   : reg
    Created on : Jan 3, 2010, 10:59:28 AM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
String messsage=request.getParameter("sent");
session.putValue("sent",messsage);
String repeat1=request.getParameter("repeat");
String breaktime=request.getParameter("breaktime");
String dontunder=request.getParameter("dontunder");
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st= con.createStatement();
ResultSet rs;
int i=st.executeUpdate("insert into chati values ('"+messsage+"','"+repeat1+"','"+breaktime+"','"+dontunder+"')");


%>

<jsp:forward page="welcome.jsp"/>


    </body>
</html>

وهذه قاعدة البيانات

DROP TABLE IF EXISTS `mahmood`.`chati`;
CREATE TABLE  `mahmood`.`chati` (
  `sent` longtext,
  `repeat1` varchar(40) default NULL,
  `breaktime` varchar(40) default NULL,
  `dontunder` varchar(40) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;

4- وهذا كود النافذه التي تخرج عند دخول الخطا والصورة الثالثة هي المعبرة عن الحالة

<%--
    Document   : inputchat
    Created on : Jan 21, 2010, 10:29:48 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
  <title>CHAT</title>
</head>

<body>

<table  align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
      <tr>
     <td width="240" align="center"> CHATING  </td>
      </tr>
      <tr>
     <td width="240" align="center"> <img src="image/img01.gif" width="80" height="80" /> </td>
      </tr>
      <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
</table>


<table width="240" height="15" border="0" cellpadding="0" cellspacing="0" align="center">
<tr>
<td  bgcolor="#FFFF00"  align="center" width="240" height="15" valign="top"></td>
</tr>
<tr>
<td  bgcolor="#FFFF00"  align="center" width="240" height="15" valign="top"><font face="Cooper Black" size="1" color="#FF0066">Invalid UserName or Password try again</font></td>
</tr>
</table>



     <form action="loginchat.jsp" method="post" >

 <!-- UserName -->
   <table width="240" border="0" cellpadding="0" cellspacing="0" align="center" bgcolor="#FFFF00">
<!-- first part of information -->
<!-- student user name and password-->
    <tr>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   </tr>
   <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" size="2" face="Arial">UserName</font></td>
   <td  align="left" width="150"><input align="left" size="15" maxlength="100" type="text" name="user"  /></td>
   </tr>


<tr>
<td  bgcolor="#FFFF00"  align="center" height="7"></td>
</tr>

    <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" face="Arial" size="2">Password</font></td>
   <td  align="left" width="150"><input align="left" size="15" maxlength="100" type="password" name="pwd" /></td> <br />
   </tr>
   <!-- submit --> <!-- greate account -->
   <tr>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   <td  bgcolor="#FFFF00"  align="center" width="10" height="8" valign="bottom"></td>
   </tr>
   <tr>
   <td  align="center" valign="baseline" width="90"><font color="#000000" size="2" face="Arial"></font></td>
   <td  align="left" width="150"><input align="left" size="2"  type="submit" value="Login" /></td>
   </tr>
    </table>
    </form>


<table align="center" bgcolor="#FFFF00" width="240" cellpadding="1" cellspacing="1">
        <tr>
     <td width="240" align="center" height="10" bgcolor="#FFFF00"> </td>

      </tr>
      <tr>
     <td width="240" align="center">
     <STYLE TYPE="text/css">
A { text-decoration: none; }
A:link { color: #000000; }
A:visited { color: #000000; }
</STYLE>
     <a href="">LOGOUT</a> </td>

      </tr>


</table>

</body>

</html>

طبعا الجانب الاخر نفس الاشياء

و الصورة الاخيرة توضح الفكرة التي اريدها بالضبط

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

اخوكم محمود

post-202915-12641130013562_thumb.gif

post-202915-1264113014814_thumb.gif

post-202915-12641130270138_thumb.gif

post-202915-12641130403887_thumb.gif

تم تعديل هذه المشاركة بواسطة mahmoodsami في 22 يناير 2010 في 01:32

#5

jsp/servlet لا يصلح لمثل هاته التطبيقات. لغات الويب بصفة عامة لا تصلح، لأن المستعمل يجب أن يعمل refrech دائما. إما أنك تستعمل شيئا مثل flash، أو تكتب تطبيق مكتبي بالجافا العادية

#6

هناك حل طبعاً يا عصام لكنه يحتاج إلى إمكانيات في java script

تحياتي

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

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

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

728x90.png

#7

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

#8

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

اخي العزيز herch لقد وجدة في بحثي في الانترنت

عملية chat بواسطة لغة jsp /servlet ولكن البرمجة لم استطع ان انزلها وسوف ارفق لك هذا الملف الذي يوضح هذه الطريقة علما انك تقول (( jsp/servlet لا يصلح لمثل هاته التطبيقات. لغات الويب بصفة عامة لا تصلح ))

اخي ماذا تقصد بـــ ((((( لأن المستعمل يجب أن يعمل refrech دائما )))))).

وماذا تقصد بـــــ(((( إما أنك تستعمل شيئا مثل flash، أو تكتب تطبيق مكتبي بالجافا العادية ))))) فارجوا ان كان هناك طريق او مشاركة الى هذا الامر او كتاب يدلني فارجو معونتي عليها الله يبارك فيك .

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

وهل تقصد انه مستحيل تنفيذ فكرتي وان اتركها ولا استمر بيها وان كان كذلك فبماذا تنصحني اخي العزيز من اجل اضافة هذه الخدمه ( chat ) الى موقعي

طبعا وانتم اهل الى هذا التوجيه , الله يبارك فيك ارجو توجيهي من اجل البداء بالفكرة

سلامي

اخوكم

محمود سامي

Java Chat Application using JSP and Servlets.rar

#9
mahmoodsami كتب:

اخي ماذا تقصد بـــ ((((( لأن المستعمل يجب أن يعمل refrech دائما )))))).

المستعمل لا يمكن أن يعرف أن الشخص الآخر أرسل له رسالة أو لا، لذلك قلت لك أنه لازم يعمل refrech للصفخة، حتى يسأل الخادم هل هناك رد أو لا.

mahmoodsami كتب:

وماذا تقصد بـــــ(((( إما أنك تستعمل شيئا مثل flash، أو تكتب تطبيق مكتبي بالجافا العادية )))))

flash هي تقنية معروفة لشركة Adobe، لكني لا اعلم عنها شيئا.

ما كنت أعنيه بتطبيق مكتبي أي برنامج عادي يشتغل عند المستخدم، وليس تطبيق ويب يعمل في الخادم.

على العموم لا شيء مستحيل. كل ما قلته أنها ليست الطريقة الأفضل.

#10

السلام عليكم

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

وهل حملة الملف المرسل لمشاهدة المشروع المبرمج

سلامي

#11

لن أفيدك فيما يتعلق بالكتب، فأغلب ما اقرأه هو مقالات أو دروس في الانترنت، وفي الغالب لا أتذكر مكانها.

#12

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

اخي العزيز علاء ارجو توجيهي الى الفكرة او الكتاي او الموقع الذي اجد فيه ضالتي على فكرة الجات ارجو مساعدتك

وانت قلت في تعليق سابق على مشاركتي هذه ( هناك حل طبعاً يا عصام لكنه يحتاج إلى إمكانيات في java script )

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

وانتم اهل لذلك

اخوكم

محمود سامي

#13

ليس لدي تفاصيل كثيرة

فلست أجيد AJAX بشكل جيد

لكن على العموم تحتاج إلى القراءة عن AJAX ببساطة

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

الموضوع كما قال عصام مكلف بعض الشيء لكنه ليس سيئاً على الإطلاق

تحياتي

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

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

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

728x90.png

#14

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

اخوتي الاعزاء بدات بالفراة عن AJAX

ولكن وجدته انه له علاقة بــــــ php وكذلك ASP حيث انه وجدت امثلة عن الـــــ chat بواسطته ولكن يوجد فيها كودات الى php

وكذلك وجدت امثلة عن برمجه بواسطه AJAX ولكن واجهتا هي php وحاوله ان احولها الى jsp ولكن لم تعمل بصورة صحيحة بالضبط كما اريد فهل انه يعمل بصورة جيدة مع JSP

ارجو توجيهي من اجل عمليه برمجة الجات

سلامي

محمود سامي

#15

لم أستطع فهم مطلبك بالضبط

أعد الصياغة من فضلك

تحياتي

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

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

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

728x90.png

#16

أساس ال AJAX هو Javascript والفئة XMLHttpRequest، لذلك فلا يهم أي لغة تستعمل في جهة الخادم.

هذا مثال.

عند كتابة إسم في ال textfield، فإنه يتم المناداة على الصفحة getNames.jsp، هاته الصفحة تعيد الاسماء التي تبتدأ بالحروف التي تمت كتابتها، ثم تتم كتابة هذه الأسماء في ال textarea

post-181903-12653035627308_thumb.png

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<script type="text/javascript">
		function getNames() {
			var input = document.getElementById("input").value;

			var httpRequest;
			if (window.XMLHttpRequest) { // Mozilla, Safari, ...
				httpRequest = new XMLHttpRequest();
			} else if (window.ActiveXObject) { // IE
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			httpRequest.onreadystatechange = function() {
				if (httpRequest.readyState == 4) {
					document.getElementById("names").value = httpRequest.responseText;
				}
			};
			httpRequest.open("GET", "getNames.jsp?input="+input, true);
			httpRequest.send("");
		}
	</script>
  </head>
  <body>
  	<input type="text" name="input" id="input" onkeyup="getNames()"/><br/>
  	<textarea name="names" id="names" rows="10" cols="40"></textarea>
  </body>
</html>

الدالة open تفتح اتصالا بين هذه الصفحة والصفحة getNames.jsp، وترسل لها ال parameter input، المعطىGET يمثل ال method، مثل التي نستعملها في الوسم form

الدالة send نستعملها فقط في POST، بما أننا نستعمل GET فيكفي أن نمرر لها جملة فارغة

onreadystatechange هي خاصية تنتظر دالة، هذه الداة هي التي سيتم المناداة عليها عند تغير الخاصية readyState.

readyState يمكن أن تساوي 5 قيم

0: not initialized.

1: connection established.

2: request received.

3: answer in process.

4: finished.

ما يهمنا طبعا هو بعد انتهاء إرسال النتيجة، لذلك نقوم بما نريده عندما تكون readyState تساوي 4

responseText تحتوي على ما أرسله اخادم، أي الصفحة getNames.jsp

getNames.jsp

<%@page contentType="text/plain" pageEncoding="UTF-8"%>
<%
	String[] names = {"Ahmed", "Amine", "Alaa", "Farid", "Fadel", "Fatima", "Samir", "Sophia", "Salim"};
	String start = request.getParameter("input");
	StringBuilder builder = new StringBuilder();
	for (String name : names) {
		if (name.startsWith(start)) {
			builder.append(name + "\n");
		}
	}
	out.print(builder.toString());
%>
1
#17

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

اخي لقد وجدت اثناء بحثي في الانترنت برنامج عن عمل الجات وهو كما ياتي في المرفقات

ولكن لم افهم قسم منه كونه بعض من اجزائه هي مكتوبه بالغة php

فارجو ان استفاد منكم وان يكون تعديل البرنامج الى jsp

لكي يكون عمله مع عمل jsp

وانتم اهل لهذا

اخوكم

محمود سامي

AJAX Chat Tutorial.rar

#18

دائما يخطر ببالي سؤال عندما أرى الجافا متربعة على صفحات الانترنت في كل مكان

لما الجافا ؟؟؟؟

صدقني الى الان لم اجد الجواب !!

اخي الكريم انتا مشروعك عبارة عن شات

وعلى ما يبدو هي شات muti User يعني الكل يدخل بالكل الحابل بالنابل ( يعني ليست noe to multi )

لن اتكلم شئ عن JSP لاني لا افقه فيها شي والحمد لله

لكن هناك موضوع شدني عن فكرة Refresh تريد الجهة المقابلة ان تعلم بكل جديد

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

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

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

ليس موضوعنا !!

بما انك مصر (بضم الميم ) على الجافا

ففعلا كلام الاخ herch منطقي في ان تقوم بكتابة تطبيق محلي ثم تحاول ان تحرف من وتيرته قليلا لتحوله لــ Applet

الجافا ابلت مازلات عائشة فلما تهجروها في تطبيقات الويب ؟؟؟

فكر في كلامي قليلا بانشاء تطبيق محلي Desktop applection وابحث عن بعض المكتبات التي تساعدك

ثم حوله applet ......

اذا اقتنعت ...دعهم يرجعوا الموضوع الى القسم العام للجافا :)

لكي نساعد

بالتوفيق

#19

أنا عن نفسي لا أعرف php لذا لا يمكنني إفادتك أًصلاً

لو أحببت أن تقوم بعمل واحد جديد كـ jsp فلا مانع لدي من مساعدتك

ولو أردت التحول إلى معمارية client/server مع applet فلا مشكلة

وسأقوم بتحويل الموضوع إلى قسم الجافا

تحياتي

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

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

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

728x90.png

#20

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

اخوتي الاعزاء بعد العناء تمكنت من عمل فكرة بسيطة الى chat

(((

فارجو من اخوتي الكرام واخص بالذكر ( herch ,rohaili,علاء و هويدي و العيافي وباقي اخوتي الذين ان لم يشاركوني بالعمل فكانوا يشاركوني بالدعاء ) وهم اصاحب الفضل على طبعا بعد الله في البرمجة ان يقراؤ فكرتي بتمهل وان يدعموني

لانهم إن شاء الله سوف ينتهي مشروعي من الناحية العملية بعد اكمال هذه الفكرة . وإن شاء الله ان كملت هذه الفكرة فانها سوف تعم الفائدة الى الجميع (إن شاء الله تعالى ). انتظر مشاركاتكم اخوتي الله يبارك فيكم :wub:

)))

حيث تعرض صفحة عند كل مشترك فيها

1- صفحة التي يكتب فيها .

2- صفحة يعرض فيها الذي كتبه والشخص الاخر الذي كتبه ايضا .

ملاجظة

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

البرنامج يعمل بصورة صحيحة الحمد لله ((( لكن ))) توجد حالة هو انه الشخص عندما يرسل له من شخص اخر لا يعرف ذلك الا ان يقوم بعملة refresh وهذا يسبب عملة اعادة كتابة بياناته التي ارسلها سابقا

كمثال توضيحي

احمد ارسل ( hi ) الى محمد

عندما محمد يدخل يجد كلمة (hi ) وعندما محمد يرسل (hellow ) الى احمد

فعلى احمد ان يقوم بعمل refresh ليجد ما كتبه محمد

ولكن المشكلة تكمن في انه عندما احمد يعمل refresh فانه سوف يتضاعف البيانات السابقة التي ارسالها اي عمليا يوضحه ما يلي

احمد

hi

محمد يجد hi

فيرد hellow

احمد لايستطيع ان يجد ما كتبه محمد الاعند عمل refresh فتحصل المشكلة حيث يجد

hi

hi

hellow

وهذه قاعدة البيانات

DROP TABLE IF EXISTS `mahmood`.`ch`;
CREATE TABLE  `mahmood`.`ch` (
  `chat` varchar(100) collate utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

DROP TABLE IF EXISTS `mahmood`.`ch1`;
CREATE TABLE  `mahmood`.`ch1` (
  `chat1` text collate utf8_unicode_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

وهذه البرمجة بالتسلسل الشخص الاول

<%-- 
    Document   : fieldset
    Created on : Mar 9, 2010, 7:04:16 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Chat</title>
    </head>
    <body text="#00CC66">
<%-- this is text area to veiw text--%>
<FIELDSET>
<LEGEND>Reading Text Areas</LEGEND>
  You typed:
<p>
    <TEXTAREA NAME="textarea2" ROWS="10" cols="25">
<%@ page import="java.sql.*" %>
<%-- this is DB of the first user--%>
<%
Connection conn = null;
Statement st = null;
ResultSet rs = null;

try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    conn = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

    st = conn.createStatement();
    rs = st.executeQuery("select * from ch");
    while(rs.next()) {
%>

<%= rs.getString("chat") %>

<%
     }
%>

<%
}  catch (Exception ex) {
    ex.printStackTrace();
    %>
Ooops, something bad happened:
<%
    }  finally {
    if (rs != null) rs.close();
    if (st != null) st.close();
    if (conn != null) conn.close();
    }
%>
<%-- this is DB of the second user--%>
<%
Connection conn1 = null;
Statement st1 = null;
ResultSet rs1 = null;

try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    conn1 = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

    st1 = conn1.createStatement();
    rs1 = st1.executeQuery("select * from ch1");
    while(rs1.next()) {
%>

<%= rs1.getString("chat1") %>

<%
     }
%>

<%
}  catch (Exception ex) {
    ex.printStackTrace();
    %>
Ooops, something bad happened:
<%
    }  finally {
    if (rs1 != null) rs.close();
    if (st1 != null) st.close();
    if (conn1 != null) conn.close();
    }
%>

</TEXTAREA>
</p>
</FIELDSET>

<%-- this is text area to insert text by first user--%>
  <FIELDSET>
  <LEGEND>Submitting Text Areas</LEGEND>
   Please enter your text:
   <FORM METHOD="get" action="io.jsp">
            <BR>
            <TEXTAREA NAME="textarea1" ROWS="5" cols="25"></TEXTAREA>
            <BR>
            <INPUT TYPE="SUBMIT" VALUE="Submit">
  </FORM>
 </FIELDSET>
 </body>
 </html>

<%-- 
    Document   : io
    Created on : Mar 9, 2010, 7:29:00 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
String user=request.getParameter("textarea1");
session.putValue("textarea1",user);
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st= con.createStatement();
ResultSet rs;
int i=st.executeUpdate("insert into ch values ('"+user+"')");


%>
<jsp:forward page="fieldset.jsp"/>
</body>
</html>

وهذه برمجة الشخص الثاني

<%--
    Document   : fieldset
    Created on : Mar 9, 2010, 7:04:16 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Chat</title>
    </head>
    <body text="#0000FF">
  <%-- this is text area to veiw text--%>
<FIELDSET>
<LEGEND>Reading Text Areas</LEGEND>
  You typed:
<p>
    <TEXTAREA NAME="textarea2" ROWS="10" cols="25">
<%@ page import="java.sql.*" %>
<%-- this is DB of the first user--%>
<%
Connection conn = null;
Statement st = null;
ResultSet rs = null;

try
{
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    conn = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

    st = conn.createStatement();
    rs = st.executeQuery("select * from ch");
    while(rs.next()) {
%>

<%= rs.getString("chat") %>

<%
     }
%>

<%
}  catch (Exception ex) {
    ex.printStackTrace();
    %>
Ooops, something bad happened:
<%
    }  finally {
    if (rs != null) rs.close();
    if (st != null) st.close();
    if (conn != null) conn.close();
    }
%>
<%-- this is DB of the second user--%>
<%
Connection conn1 = null;
Statement st1 = null;
ResultSet rs1 = null;

try {
    Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    conn1 = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");

    st1 = conn1.createStatement();
    rs1 = st1.executeQuery("select * from ch1");
    while(rs1.next()) {
%>

<%= rs1.getString("chat1") %>

<%
     }
%>

<%
}  catch (Exception ex) {
    ex.printStackTrace();
    %>
Ooops, something bad happened:
<%
    }  finally {
    if (rs1 != null) rs.close();
    if (st1 != null) st.close();
    if (conn1 != null) conn.close();
    }
%>

</TEXTAREA>
</p>
</FIELDSET>
  <%-- this is text area to insert text by second user--%>
  <FIELDSET>
  <LEGEND>Submitting Text Areas</LEGEND>
   Please enter your text:
   <FORM METHOD="get" action="io2.jsp">
            <BR>
            <TEXTAREA NAME="textarea3" ROWS="5" cols="25"></TEXTAREA>
            <BR>
            <INPUT TYPE="SUBMIT" VALUE="Submit">
  </FORM>
 </FIELDSET>
</body>
</html>

<%--
    Document   : io
    Created on : Mar 9, 2010, 7:29:00 PM
    Author     : Mahmood2010
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
<%@ page import ="java.sql.*" %>
<%@ page import ="javax.sql.*" %>
<%
String user=request.getParameter("textarea3");
session.putValue("textarea3",user);
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost/mahmood","root","password");
Statement st= con.createStatement();
ResultSet rs;
int i=st.executeUpdate("insert into ch1 values ('"+user+"')");


%>
<jsp:forward page="fieldset1.jsp"/>
</body>
</html>

فارجو من اخوتي الكرام واخص بالذكر ( herch ,rohaili,علاء و هويدي و العيافي وباقي اخوتي الذين ان لم يشاركوني بالعمل فكانوا يشاركوني بالدعاء ) وهم اصاحب الفضل على طبعا بعد الله في البرمجة ان يقراؤ فكرتي بتمهل وان يدعموني

لانهم إن شاء الله سوف ينتهي مشروعي من الناحية العملية بعد اكمال هذه الفكرة

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

سلامي

اخوكم

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 12 مارس 2010 في 00:38

#21

أخ محمود لكي تحصل على دردشة chat جيدة أو على الأقل مقبولة

فأنت بحاجة إلى أن تقوم باستخدام java script بشكل واسع جداً

java script ستكون مسؤولة بشكل أساسي عن طلب الخادم server وفحص إذا كان هناك رد من الطرف الآخر

عن نفسي لست أعرف الكثير عن هذه اللغة لهذا فأنا أقترح عليك أن تذهب إلى منتدى Java script وتسألهم

فهناك يعرفون أكثر

تحياتي

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

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

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

728x90.png

#22

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

شكرا لك اخي العزيز والله يبارك فيك على توجيهك الى وانا حولت مشاركتي الى قسم java scrpit

فارجو من الله ان يعيوني على حل المشكلة

سلامي

اخوك

محمود سامي

#23

بإذن الله يساعدوك

أتمنى لك التوفيق

تحياتي

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

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

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

728x90.png

#24

استعمل Auto-Refresh

<script type="text/JavaScript">
<!--
function timedRefresh(timeoutPeriod) {
	setTimeout("location.reload(true);",timeoutPeriod);
}
//   -->
</script>
</head>
<body onload="JavaScript:timedRefresh(5000);">
<p>This page will refresh every 5 seconds. This is because we're using the 'onload' event to call our function. We are passing in the value '5000', which equals 5 seconds.</p>
<p>But hey, try not to annoy your users too much with unnecessary page refreshes every few seconds!</p>
</body>
</html>
#25

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

اخي العزيز اشكرك

ولكن انا لصعوبه الموضوع وطول الوقت الذي ياخذه تركته (وقصدي بالصعوبة هو ليس مستحيل )

وقمت بتنفيذ برنامج يعمل Forum

وبارك الله فيك .

سلامي

اخوك

محمود سامي

تم تعديل هذه المشاركة بواسطة mahmoodsami في 3 مايو 2010 في 18:58

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