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

Servlets/JSP Java Discussion :

[JSP] thread ? Message d'avancement des operations en cours


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut [JSP] thread ? Message d'avancement des operations en cours
    Bonjour,

    désolé pour le titre, je ne savais pas quoi mettre d'autre.

    après recherche vaine sur le forum, j'ai une simple question.
    Dans une page JSP, j'effectue un traitement lourd (indexation d'une centaine de fichiers PDF).
    La page met un temps long à s'affcher du fait de ce traitement.
    J'aimerais pouvoir ouvrir une pop-up par exemple, qui m'indique où j'en suis dans mon traitement genre :
    Indexation de fichier n°2 en cours Avancement : 1%
    Indexation de fichier n°3 en cours Avancement : 3%
    Indexation de fichier n°6 en cours Avancement : 5%
    comment puis je faire ?
    quelqu'un m'a parlé de faire un thread ? est ce le seul moyen et est ce propre ? je ne m'y connais pas trop en thread

    merci à tous d'avance

  2. #2
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    j'ai deja fait un truc similaire et c galere.

    le mieux ct de passer par une page temporaire avec un message et qui se recharge automatiquement toutes les x secondes.

    Et sur la nouvelle page qui s'affiche régulierement, tu integres une données qui donne l'avancement.

    L'interet de la chose c qu'en passant un int par exemple tu peux generer une page avec une barre de progression ( en fait une image dont le int représente la taille sur une dimmension ...)

    @+

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    ok, je vois vaguement l'idée mais j'ai pas bien compris comment implementer tout ça :
    pour l'instant ma page fait un truc du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(...){
           Appel fonction Indexation()
     
           //ici actualiser le message pour l'avancement
    }
    il faudrait actualiser le message à chauqe passage dans la boucle mais comment faire, j'ai pas bien compris...

  4. #4
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    ah non ne passe pas par une boucle.

    Tu as d'un coté ta classe qui fait l'indexation et qui sait sur quel ficher elle est ( disons le 59 eme ).

    A chaque fois qu'elle a finit l'indexation d'un fichier elle mets a jour une variable publique ou une varible privée accessible par un accesseur getIndex().

    Ensuite tu crée une page jsp simple avec un autoreload dans le header pour qu'elle se recharge toute seule (en n'oubliant pas de desactiver le cache)

    Et dans cette page lorsqu'elle s'affiche elle fait appel à la variable d'index ou au getIndex directement dans la classe d'indexation.

    Ensuite pour ce qui est graphique je te laisse faire .

    Si tu a un doute sur un truc n'hésites pas...


    @+

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    ok, je comprends mieux, je vais faire quelques tests et je te tiens au courant
    au fait, tant que j'y suis, comment on specifie le reload de la JSP...?
    merci en tout cas

  6. #6
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    reload toutesd les 20 secondes par exemples:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <META HTTP-EQUIV="refresh" CONTENT="20">
    N'oublies pas de spécifier aussi que qd t arrivé a 100 % il faut repartir sur une page "normale".

    Mais ca en jsp c facile , tu tests sur le getIndex et si c 100, tu fait un RequestDispatcher.forward(une autre page)...

    pour le cache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dans <head>
    <META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
    <META HTTP-EQUIV="Expires" CONTENT="Tue, 26-Oct-1965 12&#58;00&#58;00"> 
    <META HTTP-EQUIV="Expires" CONTENT="NOW"> 
    <META HTTP-EQUIV="last modified" CONTENT="NOW"> 
    ou
    <META HTTP-EQUIV="Expires" CONTENT="0">

    @+

  7. #7
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736

  8. #8
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    merci, ça a l'air bien interessant, je vais peut être me replier sur cette solution car jen'arrive pas à faire marcher la methode de RandomX, il ne m'affiche le message qu'une fois le traitement terminé ..?!

  9. #9
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    je pense que la methode de randomX et celle de l'article ne font qu'un

  10. #10
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    hue j'ai lu tres rapidement mais c pas exactement pareil mais ca m'a l'air pas mal comme méthode.

    Disons qu'au moins la solution est complete là.

    @+

  11. #11
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 109
    Points : 111
    Points
    111
    Par défaut
    merci à vous deux même si maintenant, je n'en n'est plus besoin, en fait mais en tout cas, je saurais le faire la prochaine fois

  12. #12
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    la méthode présentée plus haut.
    Comment faire pour lancer le traitement.
    Par exemple, au premier chargement de la page, instancier ma classe statique (c bien ça statique?) qui se débrouille pour traiter tous les fichiers.
    Ensuite à chaque reload on récupère une variable public de la classe.
    Et quand c'est fini, on peut désinstancier la classe ?

    Le problème, si plusieurs utilisateurs lancent la même page (bien évidemment sur des données différentes, mais même genre de traitement)... comment faire pour l'instance de ma classe ? parce que si elle est statique, y'a qu'une seule instance pour tout le monde, non?

    ou alors peut-être qu'il faut que je l'instancie au démarrage du serveur et que je ne l'arrête jamais...
    Membre éclairé, lol !

  13. #13
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    ben non pas statique justement sinon tu tombes sur le probleme que tu souleves.

    Chaque utilisateur crée son thread s'en sert et le met à null qd c fini....

    si tu regardes bien il y a une methode start et une methode stop ( c un thread )


    @+

  14. #14
    Membre éclairé
    Avatar de iubito
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2003
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2003
    Messages : 389
    Points : 655
    Points
    655
    Par défaut
    mais alors ce que je capte pas, c comment il retrouve la classe, quand la jsp fait un des multiples rechargement ?
    Membre éclairé, lol !

  15. #15
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    il le recupere dasn la session utilisateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <jsp&#58;useBean id="task" scope="session"
        class="com.devsphere.articles.progressbar.TaskBean"/>

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

Discussions similaires

  1. [servlet]affichage des messages d'avancement de l'éxécution
    Par moabomotal dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 09/05/2007, 16h08
  2. [JSP SERVLET]Moment d'expiration des objets du scope Request
    Par Little_Goldo dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 25/08/2005, 14h18
  3. Commande date. Faire des opération sur l'heure?
    Par fidififouille dans le forum Linux
    Réponses: 9
    Dernier message: 23/08/2004, 16h16
  4. afficher la signature des opérations dans XDE
    Par ChristopheH dans le forum Rational
    Réponses: 1
    Dernier message: 24/05/2004, 16h41
  5. [JSP][Tomcat] : forcer la compilation des jsp.
    Par Ekros dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 29/04/2004, 12h27

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