[APPLET] ECRIRE UN OBJET (SERIALIZE) SUR LE SERVEUR

Messages postés
3
Date d'inscription
mercredi 12 janvier 2005
Statut
Membre
Dernière intervention
14 janvier 2005
- - Dernière réponse : brahimaitsaad
Messages postés
3
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
26 mai 2009
- 26 mai 2009 à 20:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28686-applet-ecrire-un-objet-serialize-sur-le-serveur

brahimaitsaad
Messages postés
3
Date d'inscription
mardi 29 juillet 2008
Statut
Membre
Dernière intervention
26 mai 2009
-
j'ai un problem si quelqu'un a une solution n'hisiter pas

en fait j'ai un applet qui envoi un fichier xml a une servlet j'ai utilisé la methode post mais je sais pas pourquoi il n'y a pas de communication entre les deux
c a dire la servlet n'enregistre pas le fichier envoyé

voici mon code ;
code applet :
String xmlfile = "C:\\Documents and Settings\\admin\\Bureau\\xmlenvoye.xml";
try{

URL urlservlet = new URL(getDocumentBase(),"ReceptionXml"); // BufferedReader reponse new BufferedReader (new InputStreamReader(urlservlet.openStream())); HttpURLConnection connexion (HttpURLConnection)urlservlet.openConnection(); connexion.setRequestMethod("POST");
connexion.setDoInput(true);
connexion.setDoOutput(true);
connexion.setUseCaches(false);
// DEBUT Script pour envoyer fichier de Programme vers servlet
File fFichierOrigProg = new File(xmlfile);
long lengthFichierOrigProg = fFichierOrigProg.length();
byte[] tabByteFichierOrigProg = new byte[(int) lengthFichierOrigProg];
// Creation d'un byte[] correspondant au fichier a envoye
FileInputStream fisOrigProg = new FileInputStream(xmlfile); fisOrigProg.read(tabByteFichierOrigProg);

fisOrigProg.close();
connexion.setRequestProperty("Content-Type","application/octet-stream");
// Envoi de fichier (sous forme de byte[]) vers la servlet
OutputStream outProg = new ObjectOutputStream(connexion.getOutputStream());
// OutputStream outProg = connexion.getOutputStream();
outProg.write(tabByteFichierOrigProg, 0, tabByteFichierOrigProg.length);
outProg.flush();
outProg.close();

// FIN Script pour envoyer fichier de Programme vers servlet

code servlet :

public class ReceptionXml extends HttpServlet {

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
InputStream instrServlet = req.getInputStream();
byte[] tabByteFichierRecupParServlet = new byte[instrServlet.available()];
instrServlet.read(tabByteFichierRecupParServlet);
instrServlet.close();
// Ecriture du fichier sur le serveur

File cibleServeur = new
//j'enregistre mon fichier dans un autre emplacelment
File("C:\\Documents and Settings\\admin\\Bureau\\xmlreçu.Xml");
FileOutputStream fos = new FileOutputStream(cibleServeur);
fos.write(tabByteFichierRecupParServlet);
fos.close();
}}
merci d'avance
psyjc
Messages postés
182
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
18 avril 2008
-
Que tu passe par Post ou par Get, tes data passeront en clair..
Par contre si tu passe un objet sérialisé, tu risque d'avoir quelques soucis pour la lire coté PHP... Et la je vois pas comment faire.
Le plus simple c'est que tu passe ton entier simplement par Get (ou Post au choix).
docv266
Messages postés
13
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
5 décembre 2017
-
La méthode GET est celle que j'ai en ce moment, mais justement je veut changer car je veut pas que les utilisateurs puisse voir cette valeur, d'où le POST...
Je ne veut pas t'ennuyer, si tu veux j'arrete de te poser des questions.

Voilà ou j'en suis :

J'ai une classe "entier" dans laquelle le conctructeur affecte un entier simplement.
Je crée une instance de cette classe et je la sérialize à l'aide de ton code.
Cependant ça ne marche toujours pas? Aurais tu une suggestion?
Sinon, merci pour tout quand même. :-)
psyjc
Messages postés
182
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
18 avril 2008
-
Si tu veux juste passer un entier et le recuperer vers PHP tu peux faire beaucoup plus simple.
Par exemple en java tu fais un GET vers ta page PHP avec en param ton entier.
Du cote de PHP tu fais un simple $_GET['MonInt'].

Ca fait pas mal de temps que jai laisse tomber le java pour des choses plus saines. je ne pourrai pas t'en dire plus.
docv266
Messages postés
13
Date d'inscription
mardi 14 mars 2006
Statut
Membre
Dernière intervention
5 décembre 2017
-
Merci de m'accorder du temp.
Je pense que ton idée de mettre mon entier dans un objet est bonne.
Cependant connais tu un moyen pour récupérer cet entier en php, puisque c'est là que je veut manipuler ma variable?
Je suis un débutant, tu l'auras compris, et j'ai une autre question :
Pour mettre mon entier dans un objet je dois créer une classe dont l'un des attributs est un entier c'est ça?

Merci d'avance.