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

hraa2 Messages postés 22 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 7 octobre 2007 - 30 juin 2005 à 15:43
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 - 1 juil. 2005 à 17:10
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

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
1 juil. 2005 à 17:10
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
0
Rejoignez-nous