-
Session ou requête ?
Bonjour,
dans mon appli web sur les concours de peche, j'utilise un objet central appelé Enduro.
Enduro contient des equipes
Equipe contient des pecheurs
Pecheur contient des prises
A plusieurs endroits du site, j'ai besoin d'afficher des listes de pecheurs, d'équipes ou encore des prises. Pour le moment, je possède l'objet enduro en session ce qui me permet d'avoir tout à tout moment tout les objets.
Donc lorsque je veux afficher la liste des prises ,par exemple, dans ma jsp,
je suis obligé de faire plusieurs boucles:
<c:foreach equipes
...
<c:foreach pecheur
...
<c:foreach prise
Ma question est: est-ce la meilleure solution ? ou est-il préférable de faire une requete dans la servlet ( ou action avec struts) du genre "select * from Prise" à chaque fois que je veux afficher une liste ?
Qu'est ce qui est le plus rapide et le plus propre ?
Est-ce intelligent de transporter l'objet enduro en session ou est-il préférable d'avoir seulement l'id?
J'attends toutes vos idées
Un grand merci
-
Le plus rapide est certainement de mettre ton objet en session car tu n'as pas à faire des accès à ta base de données à chaque fois que tu veux afficher des informations.
Ce qui peut d'ailleurs poser un problème : si ta base est mise à jour alors qu'un utilisateur a déjà récupéré en session ton objet enduro, il n'aura pas ces modifications.
Après, ca dépend de l'utilisation de ton appli :
- Est-ce qu'il y aura beaucoup d'utilisateurs à consulter les infos au même moment ? (problème d'espace mémoire sur le serveur)
- Est-ce que les mises à jour sont courantes ? (problème de transmission des modifications)
- ...
-
Un seul personne consultera les données en même temps donc je vais rester sur l'objet en session si cela semble correct.
Merci
-
Correct pour une appli de test. Sinon non recommandé pour une application d'entreprise.
Les sessions peuvent entrainer des problemes de performances (et oui...) et également un risque de perte de données lors de la fin de la session.