IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Java/Web : Session expirée


Sujet :

Développement Web en Java

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut Java/Web : Session expirée
    Bonjour,
    Dans une appli web en java, j'ai indiqué 30 en session-timeout dans le fichier web.xml.
    Je souhaiterais savoir s'il est possible de récupérer le fait que la session de l'utilisateur a
    expirée, et aussi comment prolonger provisoirement la session.
    Merci.

  2. #2
    Membre averti
    Homme Profil pro
    Architecte technique
    Inscrit en
    Mai 2020
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mai 2020
    Messages : 324
    Points : 435
    Points
    435
    Par défaut
    Bonjour,

    Il me semble qu'il existait un SessionListener mais c'était peut-être spécifique à un serveur et je ne sais pas si l'expiration était gèrée dans ce listener. Mais c'est peut-être une piste.

    Ou alors filtrer les réponses pour identifier celles qui ont une session mais qui sont refusées..

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il y a bien l'interface HttpSessionListener qui permettra de faire des actions à la création d'une session et à sa destruction mais ce sera trop tard, on n'a pas la possibilité de prolonger la session dans la méthode.

    Pour prolonger la session, il faut la solliciter avant son timeout.

    Personnellement, je le fais par un appel Ajax d'une servlet (au chargement de la page) qui accédera à la session (pas besoin de faire plus qu'un request.getSession(false)).
    Cette servlet me sert à récupérer en retour la durée en milliseconde de la durée de la session, ce qui me permet de caler un appel via setTimeout(...) de l'appel Ajax.

    Exemple :

    La servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    @WebServlet(urlPatterns = "/sessionActivationServlet")
    public class SessionActivationServlet extends HttpServlet
    {
        private static final long serialVersionUID = 1;
     
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
     
            HttpSession session = request.getSession(false);
            if (session != null)
            {
                PrintWriter out = null;
                int maxInactive = session.getMaxInactiveInterval();
                try
                {
                    response.setContentType("text/plain");
                    out = response.getWriter();
                    out.write(Integer.valueOf((maxInactive-30) * 1000).toString());
                }
                finally
                {
                    out.close();
                }
            }
        }  
    }
    Le code javasript à appeler au chargement de la page

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    function sessionActivation()
    {
        var targetURL = WEB_ROOT + "/sessionActivationServlet";
     
        $.ajax({
            url: targetURL,
            async: true,
            cache: false,
            success:function(interval) {
                if (interval == null || interval === undefined)
                {
                    interval = 240000;
                }
                sessionActivationTimeoutID = setTimeout("sessionActivation()", interval);
            },
            error:function(xhr) {
                showSessionError(xhr);    
            }
        });
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Février 2015
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Février 2015
    Messages : 402
    Points : 153
    Points
    153
    Par défaut Java/Web : Session expirée
    Ok merci beaucoup.

Discussions similaires

  1. JAVA connection session WEB
    Par gdiette dans le forum Général Java
    Réponses: 1
    Dernier message: 19/11/2011, 21h26
  2. Sessions Java Web Start
    Par FranT dans le forum Général Java
    Réponses: 3
    Dernier message: 04/05/2011, 10h56
  3. [Info]Développement Java Web Start
    Par szdavid dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 26/01/2005, 17h59
  4. java web start qui veut pas se lancer
    Par calvin dans le forum JWS
    Réponses: 4
    Dernier message: 30/06/2004, 12h42
  5. [JNDI] Equivalent avec Java Web Start ?
    Par cameleon2002 dans le forum Java EE
    Réponses: 8
    Dernier message: 18/09/2003, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo