2010-02-18 5 views
0

Je viens de commencer à utiliser displayTag pour stocker l'ensemble de mes résultats d'objets à partir d'une requête de base de données et les afficher dans un format paginisé dans une JSP.Questions sur DisplayTag à propos de HttpSession

J'ai trouvé que je devais stocker le resultset entier dans le HttpSession, sinon le displayTag perd les données qui avancent à la page suivante. Ma question/préoccupation est de stocker ce grand graphique d'objet dans la session. Dois-je nettoyer manuellement la session après que l'utilisateur quitte le JSP qui utilise le displayTag? Ou peut-être qu'il me manque quelque chose. Ce serait bien si je pouvais stocker mon resultset dans la requête et que le displayTag gère la mémoire de ces objets.

Merci

Répondre

0

L'étiquette d'affichage utilise simplement les valeurs du contexte de la page, qui peut être l'une des page, request, session, or application portée. Quand j'ai fait des choses comme ce que vous décrivez, j'ai utilisé la portée de la requête, ce qui évite le problème que vous décrivez: si vous voulez mettre en cache des objets dans la session utilisateur, il n'y a rien d'autre que le timeout. . La mise en cache dans la session n'est pas très bonne, car un utilisateur peut simplement regarder cette page pendant 10 minutes, alors que cet ensemble de résultats se trouve juste sur votre serveur occupant de l'espace.

Si vous devez vraiment mettre en cache, il peut être préférable de mettre en cache globalement, si vous pouvez trouver un moyen de rendre vos données partageables entre les utilisateurs d'une manière ou d'une autre. Une autre option peut consister à extraire uniquement les données dont vous avez besoin pour des demandes spécifiques, par exemple, en paginant non pas en chargeant un ensemble de lignes entier et en affichant un sous-ensemble, mais en chargeant uniquement les sous-ensembles individuels.

+0

Merci, j'ai d'abord mis les résultats dans la demande, mais quand j'ai commencé à faire avancer les pages, les résultats ont disparu. Seule la page 1 s'affiche correctement. J'utiliserai la session mais j'essaierai de renvoyer un sous-ensemble de données de la base de données. –

Questions connexes