[ Struts ] générer un compteur journalier
bonjour,
j'utilise le framework Struts dans une appli web.
problématique : dans la fonction execute d'une action struts, je dois avoir un numéro unique journalier et incrémenté (entre 1 et 6 chiffres)
une solution partielle est d'avoir un compteur "id" dans le ServletContext : il est identique pour tous les internautes, je peux l'incrémenter dans l'execute de mon action :
Code:
1 2 3 4 5 6 7 8
| public ActionForward execute() {
// modifier le compteur du contexte
ServletContext sc = getServlet().getServletContext();
if (sc.getAttribute("id") != null)
transaction_id = ((Integer) sc.getAttribute("id")).intValue();
sc.setAttribute("id", new Integer(++transaction_id));
// utiliser la variable transaction_id pour le métier
.... |
je pensais déclarer ce compteur dans le web.xml à l'initialisation des paramètres de l'actionServlet
Code:
1 2 3 4 5 6 7
| <servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>id</param-name>
<param-value>1</param-value>
</init-param> |
mais si l'application est arrêtée puis relancé, 2 cas possibles :
- si l'arrêt et le redémarrage sont effectués le même jour alors le compteur doit reprendre là où il en était (id = 23 par exemple)
- si l'arrêt et le redémarrage sont faits à des jours différents alors le compteur doit reprendre à 1
comment procéder ?