passage de parametres entre une applet et une servlet - Java - Programmation
Marsh Posté le 09-10-2002 à 15:25:46
clair et précis, félicitations
réponse toute aussi précise :
tu passes les paramètres par http
Marsh Posté le 09-10-2002 à 15:52:39
persepolis a écrit a écrit : Yes, mais encore Can you developpe a little bit? |
wait, faut que je sorte ma boule de crystal
http://fr.lifestyle.yahoo.com/astro/oracle/
Marsh Posté le 09-10-2002 à 16:04:30
lorill a écrit a écrit : wait, faut que je sorte ma boule de crystal http://fr.lifestyle.yahoo.com/astro/oracle/ |
Marsh Posté le 09-10-2002 à 16:16:20
persepolis a écrit a écrit : La servlet est lancée par l'applet (Création d'une socket avec l'url de la servlet) |
Marsh Posté le 09-10-2002 à 16:23:42
DarkLord a écrit a écrit : |
Bout de code :
Url de la servlet : http://localhost/stlupload/servlet/parserupload
..............
DataOutputStream dataout = null;
BufferedReader datain = null;
try{
URL url = new URL(uploadURL);
StringBuffer boundary = new StringBuffer();
boundary.append("-----------------------------" );
boundary.append(getRandomString().toString());
long contentLength = totalFilesLength;
StringBuffer[] head = setAllHead(files, boundary);
StringBuffer[] tail = setAllTail(files.length, boundary);
for(int i = 0; i < files.length; i++){
contentLength += head[i].length();
contentLength += tail[i].length();
}
StringBuffer header = new StringBuffer();
// Line 1.
header.append("POST " );header.append(url.getPath());
header.append(" HTTP/1.0\r\n" );
// Line 2.
header.append("Content-type: multipart/form-data; boundary=" );
header.append(boundary.substring(2, boundary.length()) +"\r\n" );
// Line 3.
header.append("Content-length: " );
header.append(contentLength);header.append("\r\n" );
// Line 4.
header.append("\r\n" );
// If port not specified then use default http port 80.
sock = new Socket(url.getHost(), (-1 == url.getPort())?80:url.getPort());
dataout = new DataOutputStream(new BufferedOutputStream(sock.getOutputStream()));
datain = new BufferedReader(new InputStreamReader(sock.getInputStream()));
Est ce que c'est plus clair ?
Marsh Posté le 09-10-2002 à 16:43:39
lorill a écrit a écrit : wait, faut que je sorte ma boule de crystal http://fr.lifestyle.yahoo.com/astro/oracle/ |
Qu'est ce que t'a dit ta boule de crustal ?
Marsh Posté le 09-10-2002 à 16:50:48
persepolis a écrit a écrit : Qu'est ce que t'a dit ta boule de crustal ? |
Je lui ai demandé s'il était possible de passer des parametres d'une applet a une servlet, et elle m'a répondu "les oracles sont plutot défavorables" (véridique)
Marsh Posté le 09-10-2002 à 16:54:32
lorill a écrit a écrit : Je lui ai demandé s'il était possible de passer des parametres d'une applet a une servlet, et elle m'a répondu "les oracles sont plutot défavorables" (véridique) |
Je vais peut-être te donner mes dates et lieu de naissance .
Des fois que dans mon thème astral , les oracles me prédisent une autre voie que l'informatique ..... et Java
Marsh Posté le 09-10-2002 à 17:17:16
persepolis a écrit a écrit : Est ce que c'est plus clair ? |
en aucune manière
Marsh Posté le 09-10-2002 à 17:23:01
persepolis a écrit a écrit : Je vais peut-être te donner mes dates et lieu de naissance . Des fois que dans mon thème astral , les oracles me prédisent une autre voie que l'informatique ..... et Java |
Marsh Posté le 09-10-2002 à 19:23:16
Code :
|
et la methode pour envoyer l'objet
Code :
|
Marsh Posté le 10-10-2002 à 09:21:44
HappyHarry a écrit a écrit : bon deja la socket tu oublies URLConnection c bcp mieux |
J'ai ouïe dire que URLConnection ne permettait pas d'uploader des fichiers de grande taille et qu'il fallait créer une socket pour pallier le blème ???
Marsh Posté le 10-10-2002 à 09:26:16
persepolis a écrit a écrit : J'ai ouïe dire que URLConnection ne permettait pas d'uploader des fichiers de grande taille et qu'il fallait créer une socket pour pallier le blème ??? |
ah ? Et a ton avis, URLConnection il utilise quoi pour se connecter ? Il y va pied nus, ou il mets ses chaussettes, lui aussi ?
Marsh Posté le 10-10-2002 à 09:38:05
lorill a écrit a écrit : ah ? Et a ton avis, URLConnection il utilise quoi pour se connecter ? Il y va pied nus, ou il mets ses chaussettes, lui aussi ? |
C'est un bout de code repris et voici l'explication du géniteur :
* URLConnection instance given by the URL class openConnection() function
* can't handle uploading of large files.
*
* The reason being? URLConnection only does a post to the server after the
* getInputStream() function is called. So anything you write to the Output
* Stream before the getInputStream() is called will be written to memory.
* For large files this will caused the JVM to throw an Out of Memory exception.
*
* With the above reason I have decided to replace the use of URLConnection
* with sockets.
Marsh Posté le 10-10-2002 à 09:47:13
Ouais, parce qu'il bufferise tout avant d'envoyer, ok. Mais d'un autre coté, faut etre crétin pour envoyer un fichier de plus de 10Mo par http d'un seul coup...
Marsh Posté le 10-10-2002 à 09:57:32
lorill a écrit a écrit : Ouais, parce qu'il bufferise tout avant d'envoyer, ok. Mais d'un autre coté, faut etre crétin pour envoyer un fichier de plus de 10Mo par http d'un seul coup... |
Avec 2 mois de java dans les pattes , on fait ce qu'on peut .
Marsh Posté le 10-10-2002 à 09:59:17
rien a voir avec java, la... Tu crois que le mec devant son poste il va attendre une demi-heure le temps que tes 10mo passent ? Et encore, avec 10mo tu dois etre loin du OutOfMemory...
Marsh Posté le 10-10-2002 à 10:36:44
lorill a écrit a écrit : rien a voir avec java, la... Tu crois que le mec devant son poste il va attendre une demi-heure le temps que tes 10mo passent ? Et encore, avec 10mo tu dois etre loin du OutOfMemory... |
C'est pas un problème : le soft est destiné à un intranet sur un réseau qui pulse .
N'empêche que je ne sais tjs pas comment passer mon parametre...
Il ne serait pas possible de le passer avec une methode get (Nomservlet?param=param1) et d'appeler ma méthode doGet à partir de ma méthode doPost?
Marsh Posté le 10-10-2002 à 10:40:04
Ben faudrait savoir, t'as beaucoup de données ou t'en as pas beaucoup ? Et si tu fais du get, pourquoi tu veux absolument passer par doPost ?
Marsh Posté le 10-10-2002 à 10:48:54
lorill a écrit a écrit : Ben faudrait savoir, t'as beaucoup de données ou t'en as pas beaucoup ? Et si tu fais du get, pourquoi tu veux absolument passer par doPost ? |
J'te raconte tou ...
J'ai trouvé sur sourceforge un soft qui me permet d'uploader à partir d'une applet des fichiers/ répertoires du browser sur un serveur d'application .J'ai ensuite intégré une servlet qui ecrit les fichiers sur le serveur (Package MultipartParser de Jason Hunter)
Ne maîtrisant pour l'instant pas assez java (mais j'espère que ca viendra) et faute de temps , j'essaie d'adapter le code à mes besoins.
Je ne doute pas qu'utiliser ftp aurait été plus efficace ...
En ce qui concerne la méthode doPost, le code est fait comme ça...
Les transferts sont de 1 à 10 Megas.
Fréquence : 1 fois par semaine.
Marsh Posté le 10-10-2002 à 11:01:19
persepolis a écrit a écrit : Les transferts sont de 1 à 10 Megas. |
Bon, ben alors le GET, tu te le mets bien profond.
Par contre tu risque pas de choper des outofmemory, donc la methode de happyharry est adaptée, pourquoi tu veux pas l'utiliser ?
Marsh Posté le 10-10-2002 à 11:04:40
lorill a écrit a écrit : Bon, ben alors le GET, tu te le mets bien profond. Par contre tu risque pas de choper des outofmemory, donc la methode de happyharry est adaptée, pourquoi tu veux pas l'utiliser ? |
A priori, c'est du get que HappyHarry a envoye ...
Je vais le relancer pour son bon de code qu'il voulait renvoyer
Marsh Posté le 10-10-2002 à 11:05:40
HappyHarry a écrit a écrit : euh ... ah merde j'ai oublié l'autre morceau j'edite |
Et l'autre morceau ?
Merci
Marsh Posté le 10-10-2002 à 11:07:16
persepolis a écrit a écrit : Et l'autre morceau ? Merci |
Il a édité 5 mn apres avoir posté... Si tu regarde mieux tu verras qu'il a les 2 exemples, GET et POST
Marsh Posté le 11-10-2002 à 08:12:20
HappyHarry a écrit a écrit : on voit ceux qui lisent tout avant de dire des betises |
Merci quand mêmmmmmmmmmmme
Marsh Posté le 11-10-2002 à 09:29:30
lorill a écrit a écrit : ah ? Et a ton avis, URLConnection il utilise quoi pour se connecter ? Il y va pied nus, ou il mets ses chaussettes, lui aussi ? |
Marsh Posté le 11-10-2002 à 09:56:50
Ca y est, j'ai trouvé :
pour ceux que ça interesse :
format des données envoyées :
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="Nom"
John DOE
--AaB03x
content-disposition: form-data; name="fichier1"; filename="file.txt"
Content-Type: text/plain
... contenu du fichier file.txt ...
--AaB03x
content-disposition: form-data; name="fichier2"; filename="image.gif"
Content-type: image/gif
Content-Transfer-Encoding: binary ...
..contenu du fichier image.gif..
--AaB03x--
A très bientôt pour de nouvelles aventures
Marsh Posté le 09-10-2002 à 15:22:44
Bonjour,
j'essaye de passer des parametres entre une applet et une servlet
La servlet est lancée par l'applet (Création d'une socket avec l'url de la servlet)
Methode DoPost
Sank Qiu.