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

Tomcat et TomEE Java Discussion :

cache tomcat ?


Sujet :

Tomcat et TomEE Java

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut cache tomcat ?
    Bonjour,

    Je vous fais part d'un problème sur lequel je bloque depuis plusieurs jours :

    J'utilise Mysql pour stocker des images dans des attributs binaires BLOB, une servlet "media" qui génère une image dynamiquement, et une autre servlet qui génère une page web contenant un tableau d'images. Les attribut <img src font appel à la servlet "media". C'est la première fois que je fait ça avec des servlet, mais je l'ai déjà fais avec succès en C/CGI.

    Si je mets l'url de la servlet "media" dans mon navigateur, ca marche parfaitement. Le problème ici c'est que les images affichées dans le tableau d'images via la deuxième servlet ne sont pas les bonnes, la plus part des images sont affichées plusieurs fois (alors qu'elles devraient l'être qu'une seule fois).

    Tous me laisse penser que c'est un problème de cache mais ne connaissant pas bien Tomcat, je ne sais pas d'où vient vraiment le problème..

    J'ai mis les header no-cache dans toutes mes servlet et désactivé le cache de mon navigateur mais ça ne marche toujours pas. Auriez vous une idée du côté de la configuration de Tomcat ?

    Merci d'avance,
    Stephane

  2. #2
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    oui donnes un peu de tes codes servlet de mise en page.

  3. #3
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 263
    Par défaut
    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
     
    /**
         * supprimer le cache
         * @param response response
         */
        protected static void noCache(HttpServletResponse response)
        {
            // la page expire dans un passé lointain.
            response.setHeader("Expires", "0");
     
            // en-têtes no-cache HTTP/1.1 standard.
            response.setHeader("Cache-Control",
                    "no-store, no-cache, must-revalidate, proxy-revalidate");
     
            // en-têtes no-cache HTTP/1.1 étendues de IE (utilise addHeader).
            response.addHeader("Cache-Control", "post-check=0, pre-check=0");
     
            // en-têtes no-cache HTTP/1.0 standard.
            response.setHeader("Pragma", "no-cache");
        }
    Avec tomcat, je n'ai jamais eu de problèmes avec cette méthode.

    A+

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Par défaut
    Peux-tu mettre le code de ta servlet tableau d'images ?

  5. #5
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par défaut
    Salut !

    Merci pour vos réponses, j'ai essayé les headers de Mister Nono mais toujours sans succès
    Voici quelques extraits de mon code :

    Un peu du début :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
    	response.setContentType("text/html");
            response.setHeader("Expires", "0");
            response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
            response.addHeader("Cache-Control", "post-check=0, pre-check=0");
            response.setHeader("Pragma", "no-cache");		
     
    	PrintWriter out = response.getWriter();
    	root = getServletContext().getRealPath("/" );
    	html = request.getServerName();
    Et le tableau d'images :

    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
     
    for (int i=(page*perpage); i<max; i++) {
    	item = (Entry) v.elementAt(i);
    	media = item.getMedia();
     
    	if (i != 0 && i%4 == 0) out.println("</tr>");
    	if (i%4 == 0) out.println("<tr>");
    	out.println("<td style='width:256px;height:192px'><div onclick=\"clic(this);\" style=\"border-style:solid;border-color:#555555\" id=\""+item.getId()+"\" alt=\"d"+item.getId()+"\" name=\"divs\" >");
     
    	//out.println("<center><img title=\""+item.getId()+"\" src=\"http://"+html+":8080"+((item.getUrl()).substring((item.getUrl()).lastIndexOf("/tmp/"), (item.getUrl()).length()))+"\" width=\"100%\" height=\"100%\" /></center>");
    	out.println("<center><img id=\""+item.getId()+"\" alt=\""+item.getId()+"\" title=\""+item.getId()+"\" name=\""+item.getId()+"\" src=\"http://"+html+":8080/media?key="+item.getId()+"&time="+System.currentTimeMillis()+""+generator.nextInt(1000)+"\" width=\"100%\" height=\"100%\" /></center>");
     
    	out.println("</div>");
    	out.println("</td>");
    }
    Notez que la ligne commentée fonctionne, les images sont alors récupérées via leur adresse physique sur le disque..

    Dites moi si quelques chose vous saute aux yeux, ou si vous auriez une autre idée !

    Merci

Discussions similaires

  1. Problème de cache tomcat
    Par xino972 dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 25/06/2007, 22h08
  2. [Tomcat 5.5.16] Problème de cache
    Par vallica dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 29/05/2006, 14h59
  3. désactiver cache navigateur pour pages JSP/Tomcat 5.5
    Par iubito dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 24/03/2006, 17h50
  4. [Tomcat, JSP] probleme de cache
    Par tatayoyo dans le forum Tomcat et TomEE
    Réponses: 10
    Dernier message: 11/08/2005, 11h54
  5. [TOMCAT] prb avec le cache de certains users
    Par osmoze dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 07/06/2004, 15h21

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