Passer un paramètre d'une session http vers la couche donnée

Signaler
Messages postés
22
Date d'inscription
lundi 1 décembre 2003
Statut
Membre
Dernière intervention
7 octobre 2007
-
Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
-
J'ai une application web découpée en 3 couches :


- web (JavaBean)


- métier (tout ce qui ne concerne pas l'interface graphique ni les données)


- donnée (connexion JDBC, requête SQL...)





Cette application doit être capable de se connecter à plusieurs bases de données (production, développement...).


Le choix s'effectue via une page JSP où l'utilisateur choisi le nom de sa base puis valide le formulaire.


La base choisie peut être différente pour chaque utilisateur connecté.


Je dois donc stocker le nom de la base dans un objet HttpSession.





Mon soucis est que dans la couche "donnée", je ne veux pas attaquer la
session Http pour récupérer le nom de la base car ce n'est pas le
métier de cette couche.

Et j'aimerais éviter de passer le nom de la base comme paramètre à
chaque méthode de la couche métier, qui passerait le paramètre à chaque
méthode de la couche donnée.

Mais je ne peux pas utiliser d'attribut static ou de propriété
système pour ça car le nom de la base peut être différent pour chaque
utilisateur.





Y'a t-il un moyen propre et efficace de faire ça ?

MagicHr

1 réponse

Messages postés
764
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
8 mars 2011
8
ton pb est un peu insoluble en réalité.

si tu veux pas que tes objets métiers aillent voir les objets de session ou je ne sais koi d autre pr savoir a
quel base se connecter il faut le faire dans l autre sens (et c plus propre)

de + la solution static peut pas marcher parce qu au mieux tu pourrai rentrer dans une hashtable le couple identifiant session / nom de base mais tes objets metiers se devraient de connaitre l identifian.

je pense que chaque session crée un objet ds le style Connexion et cet objet est propre a chaque client. et c est sur cet objet que tu fais un setDataBase(base selectionnée), comme ca la couche metier reste indépendante de la présentation ( modele MVC !!)

++ Toinou