2017-10-20 33 views
0

Je me demande si c'est une mauvaise pratique de garder un attribut "URL" dans le HttpSession pour garder une trace de la page précédente que l'utilisateur a visité. Je veux connaître l'URL précédente afin que je puisse effectuer différentes tâches conditionnellement en fonction de ce que la page précédente était.HttpSession pour stocker l'URL

Un exemple serait une classe de contrôleur qui change la couleur de la page Web en fonction de la façon dont l'utilisateur accède à cette page. Si l'utilisateur appuie sur le bouton "example.com/blue", il doit rediriger vers la page en cours et le rendre bleu. (Si "example.com/pink", cela devrait rendre la page rose, etc.). Ceci est fait à partir de

Url url = httpSession.getAttribute (url);
si (url.equals (bleu)) {// faire la page bleue} if (
url.equals (rose)) {// faire la page rose}

Espérons que cela fait sens.

Merci!

Répondre

0

Oui, c'est une mauvaise pratique. Ce sera difficile à maintenir. Comment écrivez-vous même un test unitaire?

Les tags de cette question impliquent que vous utilisez un framework MVC, mais votre solution ressemble à une mauvaise compréhension du modèle MVC. Les URLs appartiennent à 'controller', le style de page est 'view' et l'historique de l'utilisateur est 'model'. Si vous avez besoin de stocker des informations dans HttpSession, rendez-le indépendant du protocole. Je considérerais stocker une sorte d'énumération. Alternativement, le bouton peut simplement passer la couleur en tant que paramètre de requête.

En outre, il existe des utilisateurs qui ouvriront votre page dans deux onglets. Essayez d'implémenter votre application de telle sorte que lorsque vous décidez de réorganiser la structure de la page, vous n'avez pas besoin de réorganiser HttpSession.

+0

Merci pour la réponse! Ce que vous avez dit fait beaucoup de sens, surtout en utilisant le MVC. – BGui