Gestion de la webapp données de session/contrôleur de débit pour plusieurs onglets

J'ai une application web Java qui stocke des données dans la session. Les données de la session, les modifications que l'utilisateur interagit avec l'application (par exemple, le flux est géré par un contrôleur, chaque contrôleur dispose de plusieurs pages de formulaire, sur chaque page du formulaire de certaines données est mise à jour lors de la session de flux et va à la prochaine page de formulaire).

Le problème est que certains utilisateurs sont l'ouverture de plus d'un onglet à l'application, chaque onglet avec une autre étape dans le flux. À ce stade, les données de la session est foiré depuis les onglets de partager la même session (app utilise des cookies gérés sessions).

Dire les usagers à utiliser les différents navigateurs pour éviter de partager le même id de session (par exemple, une fenêtre de Firefox et une fenêtre IE) n'est pas une option, car sûrement à un certain point que quelqu'un oublie de le faire et au lieu d'utiliser les onglets, ainsi gâcher leurs données.

L'ajout de certaines vérifications qui permettent de détecter qu'un autre flux est demandé à partir d'un autre onglet et afficher un message à l'utilisateur, en disant: ce n'est pas autorisé n'est pas une option non plus car il pisse des utilisateurs et nous ne voulons pas que faisons-nous? 😀

Le fait est que l'utilisation d'un autre onglet est utile pour les utilisateurs, car ils sont plus efficaces dans ce qu'ils utilisent l'application, donc je garde cette option. Mais la question est maintenant la meilleure façon de gérer une session de données pour plus d'onglets?

Ce que j'en pensais, c'était d'avoir le contrôleur de générer un jeton lorsqu'il commence l'écoulement et de transmettre ce jeton à chaque page de formulaire qui envoie à son tour en arrière pour s'identifier. Si un autre onglet demande le même contrôleur de l'action quand il y a un flux continu puis générer un autre jeton et le passer autour.

Fondamentalement, je veux que chaque flux d'avoir un jeton et à l'intérieur de la session, je ne sera pas seulement de garder un ensemble de données, mais ont un ensemble de données pour chaque jeton, puis faites correspondre les demandes fondées sur le jeton.

Maintenant, le problème est que cette approche aura besoin de beaucoup de réécritures pour l'application et je me demandais si il ya des meilleures pratiques pour la gestion d'une telle situation ou quelqu'un peut-il suggérer d'autres approches. Je suis ouvert aux idées des autres.

Avez-vous rencontré cette situation? Comment avez-vous gérer cela?

  • Il n'y a pas de différence entre l'utilisation de différents onglets et des fenêtres séparées. La portée de Session est navigateur-grande, car il est mis en œuvre en utilisant des cookies (le plus souvent). Ce que la technologie de la pile utilisez-vous? JSP+servlets? JSF?
  • Balle: je suis à l'aide de Servlets+Jsp. J'ai mis à jour ma question. Je sais que la session s'étend sur l'ensemble du navigateur, c'est pourquoi j'ai mentionné les deux fenêtres pour être l'un c'est à dire les autres Firefox.
  • Ok, c'était le libellé "utilisation des fenêtres différentes au lieu d'un onglet à éviter de partager le même id de session" lorsque vous vraiment dire "utiliser différents navigateurs."
InformationsquelleAutor Gabriela | 2010-12-18