Forum Programmation.java Commençons doucement : Stocker des données pour un applet

Posté par  (site web personnel) .
Étiquettes : aucune
0
23
juin
2004
Voilà, ça fait cinq ans que je n'ai plus fait de Java et j'essaies tant bien que mal de m'y remettre, d'abord avec Netbeans puis finalement Eclipse.

Je souhaite développer un programme Java accessible en ligne et facilement hébergeable (donc logiquement sous forme d'applet). Ce programme nécessite de stocker de l'information. Au départ, j'avais pensé utiliser des fichiers texte mais je rencontre des problèmes (ce qui ne m'étonne pas, sachant qu'il y a des restrictions au niveau I/O pour des raisons de sécurité).

En testant le programme dans un environnement Apache local, l'applet est capable de lire et d'écrire dans des fichiers situés dans le même répertoire que le .class. Par contre, une fois remis sur Free.fr (Online en fait, mais c'est du pareil au même), l'écriture ne fonctionne plus.

Ma question est double :
- comment résoudre le problème ?
- y a-t-il une façon plus intelligente de procéder ?

Merci d'avance !
  • # Bac à sable

    Posté par  . Évalué à 3.

    Ce n'est pas possible, tu n'as pas le droit d'écrire sur le disque local de l'utilisateur, ou alors il faut passer par un mécanisme de signature plutot complexe.

    La bonne méthode est de socker les données sur le serveur qui héberge l'applet. Plutot en HTTP afin de pouvoir passer les proxys.
    • [^] # Re: Bac à sable

      Posté par  (site web personnel) . Évalué à 2.

      > La bonne méthode est de socker les données sur le serveur qui héberge l'applet

      C'est bien ce que je veux faire, car j'avais quand même compris cette limitation par rapport au disque de l'utilisateur.

      De toute manière, je veux que l'information soit centralisée (et je ne fais pas en PHP pour ne pas être gêné par les 'time out' des pages écrites en PHP (certains traitements que je veux implémenter peuvent être relativement longs).

      > Plutot en HTTP

      Qu'entends-tu par là ? Si tu as un code exemple (ou au moins les fonctions sur lesquelles je devrais me documenter dans ce cadre d'utilisation), ce serait génial !
      • [^] # Re: Bac à sable

        Posté par  (site web personnel) . Évalué à 3.

        > Plutot en HTTP

        Qu'entends-tu par là ? Si tu as un code exemple (ou au moins les fonctions sur lesquelles je devrais me documenter dans ce cadre d'utilisation), ce serait génial !


        A mon avis, l'idée est d'ouvrir une connexion HTTP avec le serveur où se trouve l'applet pour éviter les problèmes de signature d'applet et de faire un POST contenant le fichier que tu veux stocker.

        Côté client utilise les classes URL et HttpURLConnection pour faire un POST. Pour cela utilise la méthode setRequestMethod("POST") de HttpURLConnection. Attention avec la JVM microsoft quand on ouvre une connexion sur une URL de type http://example.org(...) l'objet URLConnection renvoyé par openConnection() dans la classe URL n'est pas de type HttpURLConnection, cf google pour plus de détails.

        Côté serveur un simple script PHP/Perl/Python récupère le contenu du POST et le sauvegarde.
  • # Re

    Posté par  . Évalué à 3.

    Salut,

    pour qu'une applet puisse acceder aux ressources clientes ( matériels divers,
    les disques par exemple ) , elle doit être signée.

    un exemple de A à Z est fourni ici :

    http://www.developer.com/java/other/article.php/3303561(...)

    En gros, un fois ton applet correctement signée, si l'utilisateur accepte
    de truster ta signature, tu peux modifier les regles de sécurité de
    java et donc accèder a des ressources qui ne sont pas pas disponibles
    par défaut.
  • # Java Web Start

    Posté par  (site web personnel) . Évalué à 2.

    Juste par curiosite, as-tu pris en compte la possibilite de faire une application Java Web Start ? En plus, il me semble qu'avec JWS si ton application veut ecrire sur le disque et qu'elle n'est pas signee, l'utilisateur a la possibilite de l'autoriser qd meme a le faire (une boite de dialogue le previent que l'application veut ecrire sur le disque et lui demande s'il est d'accord).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.