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 :

Redirection vers une JSp avant fin traitement


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 17
    Points
    17
    Par défaut Redirection vers une JSp avant fin traitement
    Bonjour,

    Voila j'ai une page JSP avec un formulaire. Et lorsque je submit, j'ai une servlet qui fait plein de traitements, entre autres execution d'un programme R (langage de stat) puis envoie de mails pour les résultats...

    Ce qui se passe c'est que le script R est dure super longtemps à l'exécution, donc j'aimerais rediriger vers une page pour dire que j'enverrai un mail une fois le boulot terminé. Mais j'ai utilisé les eux méthodes de redirection (que je connais ) à savoir un RequestDispatcher et un response.sendRedirect(), même avant exécution de ma commande pour R, mais rien y fait, il effectue d'abord tout le traitement avant d'envoyer ma page.

    Alors si quelqu'un pouvait me donner une piste ou une précieuse aide ce serait cool


  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Il faut que tu fasses ton traitement en R dans une thread séparée. La thread se lancera en paralelle et retournera la main à l'instruction suivante du JSP.

    Le sendRedirect est une solution, mais dans ton cas, simplement renvoyer un text HTML par le flux de sortie te suffira.

    L'envoi de l'email de notification se fera également dans la thread de traitement.... du moins le stockage des résultats etc aussi.

    Ton appli semble sympat, en asynchrone via un client Web.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Février 2009
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Ah cool, ça semble bien ce que tu dis... Je vais tester!

    Mais du coup j'aurai 3 threads? Parce que en fait je lance mon scrit R à partir d'un runtime.exec() et le programme bloquait parce que je gérais pas trop les streams(input et error) qui du coup remplissaient les buffers de redirections d'E/S...
    Donc j'ai du traiter le InputStream et le ErrorStream de la la commande dans des threads différents, j'ai du faire quelque chose du genre:

    Process p = Runtime.getRunTime().exec(script_R_avec_des_arguments)
    try {
    // Traitement des flux (en parallèle dans )
    new Thread() {//pour InputStream}.start()
    new Thread() {//pour ErrorStream}.start()

    p.waitFor();
    } finally {
    // On détruit le process (au cas où)
    p.destroy();
    }
    Donc tu voudrais par exemple que je lance mon:
    Process p = Runtime.getRunTime().exec(script_R_avec_des_arguments)
    dans un autre thread? qui va ensuite rendre la main au deux suivants?
    Là j'avoue que je suis un tout petit peu bloqué parce que je suis pas un très grand érudit dans l'utilisation des threads...
    De plus tous les traitements R sont dans le "script_R_avec_des_arguments".
    Sinon
    Le sendRedirect est une solution, mais dans ton cas, simplement renvoyer un text HTML par le flux de sortie te suffira.
    me semble assez logique

    En tout cas merci beaucoup!


  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Redirection
    Bonjour a tous,

    J'ai exactement le meme problème

    J'ai un site développé en JEE qui va générer un fichier (cette action peut prendre du temps) j'aimerai informé les internautes que la procédure est en cours... soit je modifie le curseur de ma souris, soit je redirige le client vers une jsp avec un message puis a la fin de mon processus je reviens sur l'ancienne page... Aider moi svp

Discussions similaires

  1. [MVC] [débutante spring]redirect vers une jsp
    Par Antheadousa dans le forum Spring Web
    Réponses: 1
    Dernier message: 12/05/2011, 14h54
  2. redirection vers page JSP sans passer par une action
    Par pcouas dans le forum Struts 2
    Réponses: 2
    Dernier message: 27/05/2009, 15h55
  3. Bouton radio et redirection vers une JSP
    Par khaled.mann dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 31/03/2009, 10h07
  4. [JSP] Mauvaise redirection vers une page
    Par taroudant dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/07/2006, 14h06
  5. Réponses: 1
    Dernier message: 20/07/2006, 17h46

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