Question

Quel est le meilleur moyen de conserver l'état utilisateur avec Tomcat / Scala? Ma première pensée est de garder les informations de compte sur la session à tout moment et de rediriger l'utilisateur vers une page de connexion s'il n'y a pas d'informations sur la session pour le compte. Est-ce un modèle viable ou existe-t-il un moyen plus intelligent de conserver les informations des utilisateurs? J'essaie de reproduire un site de panier d'achat de base, et je réfléchis simplement au problème en ce moment.

Était-ce utile?

La solution

Il existe de nombreuses manières de peauner ce chat. Vous pouvez stocker vos informations dans la session, à condition que vos objets soient suffisamment légers (et que vos volumes de trafic soient suffisamment bas). C’est probablement la solution la plus simple, mais vous pouvez rencontrer des difficultés lorsque vous devez faire évoluer votre cluster ou votre cluster.

Par expérience, la mise à l'échelle, la mise en cluster, le magasin de sessions, etc. de Tomcat ne fonctionnaient pas très bien pour moi.

Une autre solution consiste à gérer votre propre jeton avec un cookie. Vous stockez ensuite les informations réelles pour un jeton d'utilisateur donné sur le serveur. L'implémentation la plus naïve aurait simplement une carte en mémoire, mais cela aurait l'inconvénient de perdre toutes les données lorsque vous redémarrez l'application.

Vous pouvez conserver les informations dans la base de données et effectuer une recherche avec le jeton utilisateur à chaque demande (éventuellement avec une stratégie de mise en cache). Cela vous permet également d’évoluer vers plusieurs serveurs d’application sans trop vous préoccuper de la mise en cluster: chaque instance recherche simplement le jeton de l’utilisateur et effectue une demande de recherche sur la base de données partagée.

Si vous encapsulez l'implémentation réelle derrière une interface conviviale, vous pouvez commencer par la solution de session simple / économique et passer progressivement à une implémentation plus complexe si vous en avez besoin ultérieurement. Un inconvénient est que vous devrez faire très attention de ne pas laisser d'informations sur les servlets dans l'interface lors de votre première implémentation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top