IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Equivalent httpcontext.current.Items en java


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Equivalent httpcontext.current.Items en java
    Bonjour,

    Je cherche l'équivalent de httpcontext.current.Items qu'on peut trouver sur dotnet.
    C'est à dire un objet instancié dans lequel je peux stocker des variables qui ne sont valides que pour la requete POST/GET en cours.

    Il faut également qu'on puisse y accéder de partout.
    C'est pour ca que request.getSession() ne convient pas, puis que ce n'est accessible que si la classe où on veut l'utiliser hérite de HttpServlet.

    En plus concret, j'aimerais à la création de la session, stocker un objet "myTest" de la classe "Test". Puis faire un singleton sur la classe Test qui me retournerait l'instance "myTest".

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Test
    {
      public String firstName;
      public String lastName;
     
      public static Test GetInstance()
      {
        // Avec httpcontext.current.Items à remplacer par du Java
        return (Test)(httpcontext.current.Items["myTest"]);
      }
    }
    Et ça à la création de la session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      public void sessionCreated(HttpSessionEvent hse)
      { 
        Test test = new Test();
        test.firstName = "A";
        test.lastName = "B";
     
        // Avec httpcontext.current.Items à remplacer par du Java
        httpcontext.current.Items["myTest"] = test;
      }
    J'espère que vous m'aurez compris

    En tout cas merci beaucoup d'avance.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Ca n'existe pas en base. L'accès au contexte http se fait via les paramètres accessibles dans les jsp ou servlet.

    Il existe cependant plusieurs possibilités. Si tu utilise JSF, tu as FacesContext.currentInstance(), via lequel tu peux accéder à plein d'info du contexte JSF et de la requete.

    Sinon, tu a la possibilité d'écrire un request Filter, qui va stocker les informations dont tu as besoin dans un singleton que toutes tes classes manipuleront.

    Attention! Tout ceci signifie que tes classes seront inutilisable en dehors d'une requete web!

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup,

    Je ne suis pas sur que je puisse gérer mon problème avec un Request Filter, puisque même si je récupéré les données, il va falloir que je les stock dans un "singleton" qui n'en est pas un réellement puisqu'il est juste limité à la requête en court, il n'est pas partagé par tous les utilisateurs.

    Je vais regarder la piste de JSF, mais j'utilise GWT, je ne sais pas si c'est compatible, mais si ca l'est, ca me parait parfait

    Par contre, j'imagine que je n'ai pas été très clair car je ne comprend pas comment sans ce mécanisme, on peut stocker et utiliser à la demande les "nom / prénom / Liste des sécurités de l'utilisateur / plus toutes les infos qui reviennent souvent et qu'on veut utiliser dans l'application".
    La seule méthode que je vois est récupérer la HttpSession dans la classe de la Servlet et de la passer en paramètre à toutes les fonctions de l'application quasiment au cas où on en a besoin. Ce qui est un peu lourd si on veut juste utiliser une variable de temps en temps.

    Pour ce qui est de l'utilisation limitée au Web, ça me va parfaitement.

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Dommage, mais je ne peux pas utiliser GWT et JSF ensemble en fait

    Peut être que je ne vois pas le problème de la bonne manière, si quelqu'un à une autre approche pour gérer ça, ça serait super !

Discussions similaires

  1. Réponses: 6
    Dernier message: 05/08/2007, 13h44
  2. Réponses: 3
    Dernier message: 21/06/2007, 17h25
  3. Equivalent listbox et treeview en Java
    Par AsmCode dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 05/03/2007, 23h17
  4. Equivalent d'un vector de Java ?
    Par GyZmoO dans le forum C
    Réponses: 12
    Dernier message: 23/06/2006, 21h40
  5. [Mac] Equivalents de Delphi, Pascal, C, Java, etc ?
    Par cyberjoac dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 02/04/2006, 13h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo