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 :

probleme d'historique du navigateur


Sujet :

Développement Web en Java

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 11
    Points
    11
    Par défaut probleme d'historique du navigateur
    Bonjour,

    jai crééé un filtre de servlet qui a pour but de recuperer les urls des objets request et les stocke dans une base de données afin de connaitres les pages qui ont été visitées au sein d'un site web.
    Ca marche super bien sauf avec les pages html: la premiere fois qu'on clique sur un lien il est enregistré mais dès qu'on clique dessus un seconde fois il ne s'enregistre pas dans la base.
    Cause: le filtre n'est pas appelé car il n ya pas accès au serveur, la page se charge a partir du cache du navigateur: de l'historique !!!!!!
    et ca c est un gros probleme!

    Quelqu un connaitrait il une methode pour empecher une page d'etre enregistrées dans l'historique? ou de l'effacer apres son enregistrement??

    merci a tous d'avance

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    2 solutions :
    1. Forcer les entêtes HTTP Cache-Control et Expires (et éventuellement Pragma), soit dans la JSP, soit par un filtre (est-ce possible ?).
    2. Ajouter des balises <meta http-equiv> dans le head des pages HTML. La totale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <meta http-equiv="Cache-Control" content="no-cache">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="0">

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Salut

    Oui je pense que c'est la solution. Et je pense q'il est possible de le faire au moyen d'un filtre. Un filtre a accès aux objets request, response, context... et a lapossiblité de les modifier.
    je vais tester ca et je verrai bien

    merci beaucoup!

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    Ca marche nickel
    il suffit de placer le traitement de l objet response apres la methode chain.dofiltre() (puisque c'est la que le traitement relatif a la reponse se fait)
    c'est simple:


    chain.doFilter(request, response);

    //Tout le traitement qu il ya apres chain.doFilter(request, response) seffectue avant lappel de la ressource suivante
    if (response instanceof HttpServletResponse)
    {
    HttpServletResponse res = (HttpServletResponse) response;

    res.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    res.setHeader("Pragma","no-cache"); //HTTP 1.0
    res.setDateHeader ("Expires", 0); //empecher le caching au niveau du serveur proxy
    }

    decidement le filtrede servlet est une excellente chose

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 18
    Points : 11
    Points
    11
    Par défaut
    petite erreur a rectifier!!

    //Tout le traitement qu il ya apres chain.doFilter(request, response) seffectue apres la fin du traitement de la ressource precedente

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 23
    Dernier message: 11/12/2010, 10h57
  2. Réponses: 0
    Dernier message: 02/07/2010, 16h30
  3. Réponses: 4
    Dernier message: 17/12/2008, 14h45
  4. Modelisation : problème d'historique
    Par PtiBubu dans le forum UML
    Réponses: 5
    Dernier message: 15/10/2005, 18h35

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