Bitos Java [applet - Php]

Bitos Java [applet - Php] - Java - Programmation

Marsh Posté le 17-05-2004 à 12:05:15    

Bonjours à tous.
 - J'aurai souhaité faire un applet permettant d'administrer mes 2 sites internet. Le sites est en PHP/Mysql.
Avant l'administration se faisait via une page HTMl généré via php (truc bateau quoi ;)). Maintenant je souhaite le faire via une application avec interface graphique.  
Pourquoi ? Parce que cela me permettra de me familiariser avec la syntaxe et l'environnement java.  
Ma question est : Que je ne souhaite pas forcement que l'applet puisse communiquer avec la base de données directement (je pense pas que mon hebergeur le permet) mais je souhaitais que l'applet ne soit qu'un interface visuel et envoy les ordres a des fichiers php qui eux feront toute l'opération en back office et ce dernier lui répond en XMl.
 
BDD => php => XML => Applet => Requette(?) => PHP => BDD.
 
Est ce que cela est possible et viable au final.
Je répète, c'est juste pour avoir une elle interface que je fais à ma sauce et me familiariser avec Java.
Merci  :jap:  
 
 
 
 
 
hop hop hop , allé les vaches encore 10!...
 [:bigoudi33]


Message édité par Berceker United le 17-05-2004 à 13:06:41
Reply

Marsh Posté le 17-05-2004 à 12:05:15   

Reply

Marsh Posté le 17-05-2004 à 12:17:29    

Berceker United a écrit :

j'ouvre cette section pour moi afin d'y déposer mes question


 
[:mlc]

Reply

Marsh Posté le 17-05-2004 à 13:03:48    


bon ok je retire, ce que je voulais dire par là c'etais que si j'ai plusieur question , je vais pas ouvir plusieurs topics cela restera que sur celui-ci.
désolé !


Message édité par Berceker United le 17-05-2004 à 13:07:58
Reply

Marsh Posté le 17-05-2004 à 23:40:19    

il est dur hein :D


Message édité par veryfree le 17-05-2004 à 23:40:32
Reply

Marsh Posté le 18-05-2004 à 10:22:38    

veryfree a écrit :

il est dur hein :D


oui je vois c'la et toujours pas de réponse  :(

Reply

Marsh Posté le 18-05-2004 à 12:48:53    

spa compliqué, t'utilise JDBC mais bon c'est pas genial dans une applet :/

Reply

Marsh Posté le 25-05-2004 à 16:58:27    

veryfree a écrit :

spa compliqué, t'utilise JDBC mais bon c'est pas genial dans une applet :/


JDBC c'est pas connexion au base?  
Moi je veux pas passer par cela. Mon hebergeur n'as pas je veux juste pouvoir faire des requette HTTP sur le server en gros je veux que l'applet puisse faire un post ou get sur un fichier php qui lui gere son bizenesse derriere. l'applet ne serait qu'un interface graphique d'une application web?

Reply

Marsh Posté le 25-05-2004 à 17:01:32    

tu veux utiliser l'applet comme simple formulaire HTML c'est ca?
 
quel interet [:le kneu]

Reply

Marsh Posté le 25-05-2004 à 17:05:08    

sinon je crois que ca peux t'aider:
 

Code :
  1. String login=tfLogin.getText();
  2. String pass=new String(tfpass.getText());
  3. HttpURLConnection cnx = (HttpURLConnection) url.openConnection();
  4.               cnx.setRequestMethod("POST" );
  5.      
  6.               StringBuffer sb = new StringBuffer("login=" );
  7.               sb.append(user);
  8.               sb.append("&pass=" );
  9.               sb.append(pass);
  10.               cnx.setDoInput(true);
  11.               cnx.setDoOutput(true);
  12.               cnx.connect();
  13.      
  14.               OutputStreamWriter out = new OutputStreamWriter(cnx.getOutputStream());
  15.               out.write(sb.toString());
  16.               out.write("\r\n" );
  17.               out.flush();
  18.               out.close();
  19.      
  20.               cnx.disconnect();

Reply

Marsh Posté le 25-05-2004 à 17:17:18    

veryfree a écrit :

tu veux utiliser l'applet comme simple formulaire HTML c'est ca?
 
quel interet [:le kneu]


Merci pour le bout de code.
Concernant le pourquoi je l'ai expliqué, effectivement cela n'a aucun interet en soit mais c'est juste pour me familiarisé avec java dans des cas ou je pourrais m'en servire. J'ai un autre projet de faire une base de donnée en XML. je sais qu'il y en a des milliers de déjà fait. :)

Reply

Marsh Posté le 25-05-2004 à 17:17:18   

Reply

Marsh Posté le 05-01-2005 à 12:13:25    

hop petit up!
je souhaite justement faire passer un objet serializé venant d'un applet pour le sauvegarder sur le serveur au travers d'une requete http qui serait recuperé par un fichier php qui l'ecrirait sur le serveur! (pfiou)
si je veux faire ca , cest car je ne peux pas utiliser de servlet et que je ne vois aucune autre maniere de serialiser un objet a partir d'un applet sur le serveur :(

Reply

Marsh Posté le 05-01-2005 à 12:44:16    

et ton php il va le déserializer comment ton objet java?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 12:44:35    

c'est quoi la question ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 12:45:07    

the real moins moins a écrit :

et ton php il va le déserializer comment ton objet java?


j'avais cru comprendre que c'était juste pour être sauvegardé en base ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 12:49:21    

ha ouais.
jsais meme pas si on peut recuperer un flux directement en php; j'ai comme un doute


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 12:51:17    

the real moins moins a écrit :

ha ouais.
jsais meme pas si on peut recuperer un flux directement en php; j'ai comme un doute


je connais pas PHP, mais je vois vraiment pas pkoi on pourrait pas ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 12:51:57    

benou a écrit :

je connais pas PHP, mais je vois vraiment pas pkoi on pourrait pas ...


ben alors tais-toi [:spamafote]
que tu me dises "ça serait con", je serais d'acc' avec toi, mais que tu me dises que tu "vois pas pq on pourrait pas", alors que tu connais pas...


Message édité par the real moins moins le 05-01-2005 à 12:52:42

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 12:57:23    

De nombreux site en PHP accepte l'"upload" de document. Donc il est possible d'ouvrir une socket vers le serveur et d'y faire un POST de l'objet sérialisé.

Reply

Marsh Posté le 05-01-2005 à 12:58:54    

ben vu que tu peux récupérer le contenu d'un fichier que tu upload, vu que tu peux récupérer un flux xml, vu que tu peux récupérer les champs d'un formulaire, je vois pas pkoi tu pourrais pas récupérer n'importe quel type de flux.
 
Ce serait completement idiot pour un framework web se genre de limitation... donc je ne connais pas, mais ca m'empeche pas d'être persuadé que c'est faisable.  [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 13:02:08    

Bah je vois pas trop pkoi passer par une applet pour faire ça... Pkoi pas une appli java normal qui dialogurait avec ta page php. Je pense que code l'info (commandes et retours) sous format xml serait pas mal : en xml-rpc par exemple (voir http://fr.php.net/manual/fr/ref.xmlrpc.php et http://www.xmlrpc.com/). Mais attention ça doit être long et complexe à faire...
 
on peut bien poster du binaire (images par exemple) donc pourquoi des objets sérialisés (qui ne sont que tu binaire après tout)... mais bon faudrait trouver le bon type de POST et maitriser pas mal le protocol HTTP.

Reply

Marsh Posté le 05-01-2005 à 13:05:08    

phnatomass a écrit :

De nombreux site en PHP accepte l'"upload" de document. Donc il est possible d'ouvrir une socket vers le serveur et d'y faire un POST de l'objet sérialisé.


l'upload de fichier en php : $_FILE['truc']; t'as pas acces au flux là.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 13:07:18    

benou a écrit :

ben vu que tu peux récupérer le contenu d'un fichier que tu upload, vu que tu peux récupérer un flux xml, vu que tu peux récupérer les champs d'un formulaire, je vois pas pkoi tu pourrais pas récupérer n'importe quel type de flux.
 
Ce serait completement idiot pour un framework web se genre de limitation... donc je ne connais pas, mais ca m'empeche pas d'être persuadé que c'est faisable.  [:spamafote]


 
oui mais là je pensais plutot au flux http complet, pas un flux artificiel créé par le framework en découpant le flux http sur base des entetes (parce que je pensais a pousser vers un UrlOutputStream comme un bourin [:kapukapu] )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 13:10:11    

the real moins moins a écrit :

l'upload de fichier en php : $_FILE['truc']; t'as pas acces au flux là.


Ben qu'est ce que ça change ?
Coder en java l'upload HTTP de fichier c'est faisable. Je ne vois pas pourquoi tu t'obstines sur l'accès au flux vu que l'upload de fichier fonctionne très bien en php.
2eme choix faire un POST de l'objet serialisé si l'on sait à l'avance que cet objet n'est pas trop gros.

Reply

Marsh Posté le 05-01-2005 à 13:14:03    

the real moins moins a écrit :

oui mais là je pensais plutot au flux http complet, pas un flux artificiel créé par le framework en découpant le flux http sur base des entetes (parce que je pensais a pousser vers un UrlOutputStream comme un bourin [:kapukapu] )


j'ai bien compris, mais ca doit être faisable, c'est obligé ...
l'accès au file ou aux paramêtre logiquement c'est juste une surcouche de facilitation, comme le getParameter() est une facilitation utilisant le getInputStream() dans une servlet quoi ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 14:40:38    

une fois que j'ai attrapé mon objet serializé avec php je l'ecris dans un fichier et je le recupere directement en java!
bref, pour passer l'objet serialisé en http, jai trouvé XSTREAM qui a l'air pas mal du tout mais qui ne fonctionne pas avec les Applet ... :( alors je suis pas plus avancé..

Reply

Marsh Posté le 05-01-2005 à 14:53:56    

donc tu ne sais pas comment sérialiser un objet, en gros, c'est ça?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 05-01-2005 à 15:10:11    

bon, je progresse, jarrive a envoyer une requette http (POST) vers mon fichier php sur le serveur comme cela :

Code :
  1. try{                 
  2.           URL url = new URL(getCodeBase(),"writeobject.php" );
  3.           HttpURLConnection cnx = (HttpURLConnection) url.openConnection();
  4.          cnx.setRequestMethod("POST" );
  5.          
  6.          StringBuffer sb = new StringBuffer();
  7.          sb.append("message ecrit sur le serveur en passant par post" );
  8.        
  9.           cnx.setDoInput(true);
  10.          cnx.setDoOutput(true);
  11.          cnx.connect();
  12.          
  13.          OutputStreamWriter out = new OutputStreamWriter(cnx.getOutputStream());
  14.          out.write(sb.toString());
  15.          out.write("\r\n" );
  16.          out.flush();
  17.          out.close();
  18.        
  19.          BufferedReader reader = new BufferedReader(new InputStreamReader(cnx.getInputStream()));
  20.        String ligne;
  21.         while ((ligne = reader.readLine()) != null) {
  22.            System.out.print(ligne);
  23.         }
  24.         reader.close();
  25.        
  26.          cnx.disconnect();
  27.        }
  28.        catch(Exception e){
  29.         e.printStackTrace();
  30.        }


 
et voici mon code php :

Code :
  1. <?php
  2. $fp = fopen("file.txt","w" );
  3. /*
  4. il faut activer cette option dans php.ini pour activer la
  5. variable $HTTP_RAW_POST_DATA qui retourne l'entete RAW POST!
  6. ; Always populate the $HTTP_RAW_POST_DATA variable.
  7. always_populate_raw_post_data = On
  8. */
  9. fwrite($fp,$HTTP_RAW_POST_DATA);
  10. fclose($fp);
  11. ?>


 
j'ai bien un fichier "file.txt" qui s'ecrit sur le serveur et qui contient : "message ecrit sur le serveur en passant par post"
si j'arrive a faire marcher XStream, je pourrais envoyer mon objet serializé sous forme d'une chaine xml...
 
edit : quoique en faite nan, je dois pouvoir envoyer mon objet serialisé directement avec le mecanisme de java! je test :sleep:


Message édité par azubal le 05-01-2005 à 15:58:36
Reply

Marsh Posté le 05-01-2005 à 16:51:01    

bon bah j'ai reussi :)
voici le code :
 
la methode qui post l'objet a serialiser

Code :
  1. public void saveList(){
  2. ObjectOutputStream out;
  3. BufferedReader reader;
  4. HttpURLConnection cnx;
  5. try{
  6.  // nom du fichier qui va recevoir l'objet serialisé a ecrire
  7.           URL url = new URL(getCodeBase(),"writeobject.php" );
  8.           cnx = (HttpURLConnection) url.openConnection();
  9.          cnx.setRequestMethod("POST" );
  10.                                    
  11.           cnx.setDoInput(true);
  12.          cnx.setDoOutput(true);
  13.          cnx.connect();
  14.  out = new ObjectOutputStream(cnx.getOutputStream());
  15.                 // objet a serialiser :
  16.                 out.writeObject(monObjet);
  17.        
  18.          reader = new BufferedReader(new InputStreamReader(cnx.getInputStream()));
  19.        String ligne;
  20.         while ((ligne = reader.readLine()) != null) {
  21.            System.out.println(ligne);
  22.         }       
  23.           out.flush();
  24.  out.close();
  25.         reader.close();
  26.                 cnx.disconnect();
  27.        }
  28.        catch(Exception e){
  29.         e.printStackTrace();
  30.        }
  31. }


 
 
le code du fichier php qui recoit l'objet a serialiser et qui l'ecrit :

Code :
  1. <?php
  2. // nom du fichier qui recevra l'objet serialisé
  3. $fp = fopen("objectserialized.cmi","w" );
  4. /*
  5. il faut activer cette option dans php.ini pour activer la
  6. variable $HTTP_RAW_POST_DATA qui retourne l'entete RAW POST!
  7. ; Always populate the $HTTP_RAW_POST_DATA variable.
  8. always_populate_raw_post_data = On
  9. */
  10. fwrite($fp,$HTTP_RAW_POST_DATA);
  11. fclose($fp);
  12. ?>


 
 
 
la methode qui va chercher le fichier contant l'objet serialisé et qui le retourne :  
 

Code :
  1. public Object loadList(){
  2. Object cp = null;
  3. ObjectInputStream in;
  4. HttpURLConnection cnx;
  5. try{
  6.     // ouverture du fichier qui contient l'objet serialisé
  7.  URL url = new URL(getCodeBase(),"objectserialized.cmi" );
  8.  cnx = (HttpURLConnection) url.openConnection();
  9.  in = new ObjectInputStream(cnx.getInputStream());
  10.  // creation de l'objet (cast)
  11.  cp = (Object)in.readObject();
  12.  in.close();
  13.  cnx.disconnect();
  14. }
  15.        catch(Exception e){
  16.         e.printStackTrace();
  17.        }
  18.        return cp;
  19. }


 
j'ai testé ca marche :)
 
voili voilu, je pense ne pas avoir fait d'erreurs! jespere :)


Message édité par azubal le 05-01-2005 à 17:03:28
Reply

Marsh Posté le 05-01-2005 à 17:30:59    

on pourrait critiquer la gestion d'exception mais bon, c'est pas mal ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 19:48:51    

bah justement, est ce que tu pourrais la critiquer ?? (il n'y a que comme ca qu'on apprends, et je debute en java!) :D

Reply

Marsh Posté le 05-01-2005 à 19:54:49    

bha simplement tu ne gère pas tes exceptions. par exemple, ta méthode loadList() devrait cracher une exception si il y a un problême de communication avec le site distant ... elle pourrait cracher une autre Exception si l'objet est d'un type qui lui ait inconnu ... là tu te contente de logguer l'exception et de retourner null. ce qui fait que l'appelant sait qu'il y a eu un problême, mais il ne sait pas quel type de problême (et encore, en esperant qu'il teste que la aleur retournée est null, sinon => nullpointerexception :/), et donc il ne peut pas agir en conséquence [:spamafote]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed