Question

mon problème est de stocker des entrées utilisateur dans applet pour réduire les opérations de l'utilisateur. J'utilise des champs statiques pour cela. Mais je remarque que si l'utilisateur va à plusieurs onglets dans le navigateur - Thr nouveau « thread » (ou quelque chose comme ça) a commencé, et ma classe statique dans ce nouveau thread est vide. Peut-être il y a une autre solution pour sauver certaines données dans applet?

Modifier

Ok. Plus de détails. J'ai une applet pour la signature numérique. Utilisateur une fois le certificat de sélection (X509Certificate) et l'utiliser pour signer tous les documents. J'ai une classe comme ceci:

   public class CertificateContainer
    {
        private static X509Certificate certificate;
        ...
Était-ce utile?

La solution

Applets dans différents onglets du navigateur sont des programmes indépendants. En fonction du navigateur et Java Plugin ils peuvent même fonctionner dans une autre machine virtuelle, mais même si dans la même machine virtuelle, ils ont le plus probablement des chargeurs de classes indépendantes et ne seront pas en mesure de communiquer par des variables statiques.

Si vous avez besoin de données utilisateur du magasin, vous pouvez utiliser le API JNLP , par exemple le PersistenceService.

Avec le 1.6 Sun Plugin, ce sera uniquement disponible si votre applet a été chargée par JNLP, dans le plug-in IcedTea (distribué avec certaines versions de OpenJDK), il est également disponible pour les applets chargés par la balise applet habituelle (sans JNLP) .

(Je ne sais pas comment un CookieHandler serait utilisé par Applets.)

Autres conseils

Utilisation des champs statiques pour passer l'entrée d'utilisateur entre les parties d'une application est un très mauvaise pratique . Les données doivent être stockées dans les objets qui sont passés en tant que nécessaire.

Mais dans votre cas, pour le partage de données entre plusieurs applets, la meilleure solution serait de le stocker dans les cookies du navigateur à l'aide java.net.CookieHandler

On dirait que vous ne devriez pas utiliser des champs statiques pour stocker les données utilisateur. Je ne pense pas également un nouvel onglet de navigateur serait de créer un nouveau thread, car il devrait être une instance complètement distincte de votre applet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top