2010-07-26 10 views
1

Ours avec moi afin que je puisse expliquer la disposition de mon problème. Je travaille sur un site web/application web qui implique des clients à la recherche d'informations immobilières. Une fonctionnalité sur le site Web implique le client effectuant une recherche sur une page (bien appeler cette page A) et la page suivante (Page B) renvoie une liste d'éléments de ligne qui représentent des informations immobilières (agents, maisons, etc). Après que le client ait pu voir cette liste d'informations, il peut sélectionner "Afficher le profil" pour afficher l'un de ces éléments d'informations immobilières. Cela les amènera ensuite à une page pour afficher un profil (Page C) des informations sélectionnées.Problème de conception/implémentation - Java/JSP/Servlets

Le problème que j'ai est de concevoir/mettre en œuvre l'une des spécifications pour cette fonctionnalité. Les exigences stipulent qu'une fois qu'un client a procédé à Page B où ils regardent l'information. S'ils ne choisissent pas d'aller à Page C alors un email doit être envoyé. Ils peuvent aller et venir entre A et B autant de fois qu'ils le veulent, mais s'ils ne choisissent pas d'aller à l'étape suivante, alors un email doit être envoyé.

Je m'excuse si c'est une mauvaise description, mais je suis malheureusement incapable de donner une description plus détaillée du problème. J'espère pouvoir expliquer cela assez bien pour comprendre.

Répondre

1
  • Conserver un état pour chaque session http. Avoir 3 états de session - 'VisitedA', 'VisitedB' et 'VisitedC'. L'état de démarrage lorsque l'utilisateur atterrit sur PageA est 'VisitedA'. Une fois que l'utilisateur passe à PageB, changez l'état en 'VisitedB' et une fois que l'utilisateur passe à PageC, changez l'état en 'VisitedC'.
  • Conserver l'heure de la dernière activité pour chaque session http en enregistrant les horodatages des événements GET, POST ou d'autres événements sur le site.
  • Decide sur une durée de seuil d'inactivité, disons « ThresholdTime », après quoi l'utilisateur sera considéré comme ayant abandonné le site. Par exemple, si 'ThresholdTime' est de 30 minutes, alors si l'heure de la dernière activité pour une session http est supérieure à 30 minutes, l'utilisateur associé sera considéré comme ayant abandonné le site.
  • Utilisez une API de planificateur, par ex. Quartz et planifier un travail qui se penchera sur les données stockées pour toutes les sessions http et découvrir les sessions dont la période d'inactivité est supérieure à « ThresholdTime » et dont l'état est « VisitedB ». Il enverra alors des courriels aux utilisateurs associés à ces sessions http.

Notez que vous devez gérer l'heure de la dernière activité et l'état de chaque session http. Vous devrez chercher l'endroit approprié pour stocker ces données, par ex. dans une table HttpSession.