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][servlet] communication jsp servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 17
    Points
    17
    Par défaut [jsp][servlet] communication jsp servlet
    Bonjour,

    je désire faire communiquer une page jsp avec une servlet. J'ai utilisé la méthode "url.openConnection();" à la manière de la communication entre applet et servlet.

    Je ne sais pas exactement ce que je dois mettre comme url
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    url = new URL("http://localhost:8080/bfc/SendMailServlet");
    Sachant que SendMailServlet.class est mis sous bfc/WEB-INF/classes/bfc.
    Est ce que l'url spécifiée est juste ou pas?

    Voilà, merci

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    salut,

    je saisi pas très bien ce que tu veux faire, pour passer des informations de la jsp à la servlet tu peux passer par un formulair via la méthode SET ou GET.

  3. #3
    Membre régulier Avatar de java_fun
    Inscrit en
    Novembre 2004
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 117
    Points : 102
    Points
    102
    Par défaut
    bonjour, :o

    pour app une servlet à partir d'une jsp ta pas besoin de spé une url,
    généralement il faut faire la différence entre vue utilisateur ( tes jsp) et partie traitement côté serveur ( tes servlets) la jsp sert souvent comme un formulaire (voir html ) qui est remplie par l uitisateur et suivant ces données la servlet traite la demande du client et renvoit des résultats soit à la même page jsp ou soit à une autre selon les cas ( cas d erreur par exemple).

    pour app ta servlet depuis ta jsp il faut juste mentionner le chemin de ta servlet dans l attibuts action du tag html <from></from>.

    il faut penser bien sur à définire ce chemin dans ton fichier web.xml

    cordialement
    Java fun is back

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Dis-nous pourquoi tu désires faire communiquer ta JSP avec ta servlet?

    Om pourra ainsi mieux t'aiguiller vers une solution.
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    Pour t'aider, il faut savoir que ce sont généralement les pages HTML (produitent à partir des pages JSP) qui invoque les servlet.
    Les servlet répondent et appelent les pages JSP
    Ces dernières construise la page HTML à destination du navigateur.
    Et on recommence...
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Autre moyen pour communication client/serveur..
    AJAX, requetes synchrone ou asynchrone..

    regardez ce qu'on peut faire avec :
    http://www.netvibes.com/
    http://www.start.com

    NB: Gmail et googleEarth sont réalisés avec AJAX.

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 17
    Points
    17
    Par défaut re
    Au fait, j'ai développé un forum de discussion en jsp en incluant une réponse automatique par mail lorsqu'un utilisateur répond ou poste un message.

    SI je laisse à la page jsp le traitement de l'envoi des mails (à travers un bean), le temps de chargement de la page sera fonction du nombre de mails à envoyer (sachant que les mails sont personnalisés).

    Je désire donc faire passer à une servlet deux paramètres et lui laisser en charge le traitement de l'envoi des mails.

    Voilà en gros. SI vous voulez je peux vous envoyer un code.

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Points : 1 151
    Points
    1 151
    Par défaut
    JSP et Servlet sont tous les deux des composants synchrone...
    Clic me...
    CV en ligne

    Il y a 10 types de personnes, celui qui connait le binaire, et l'autre...

    Pas de réponse en MP...Merci

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Pour ton cas, il faut utiliser un système asynchrone. Je ne sais pas si c'est possible avec JavaMail.

    Tu peux utiliser un système de messages (un peu lourd).

    Une autre solution est d'écrire le courriels (un fichier par courriel) à envoyer dans un répetoire (spool). Un autre processus indépendant lit les fichiers du spool et les envoit au serveur de mail.
    Bien le bonjour chez vous
    Jowo

  10. #10
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par jowo
    Pour ton cas, il faut utiliser un système asynchrone. Je ne sais pas si c'est possible avec JavaMail.

    Tu peux utiliser un système de messages (un peu lourd).

    Une autre solution est d'écrire le courriels (un fichier par courriel) à envoyer dans un répetoire (spool). Un autre processus indépendant lit les fichiers du spool et les envoit au serveur de mail.
    Hello,

    Je pense que la creation de fichier par couriel peut etre une solution lourde de consequence. Si tous les utilisateurs se mettent à des mails cela risque de faire exploser le disque du serveur ...

    tu peux utiliser JMS couplé au pattern command, cela permet d'envoyer des messages de maniere asynchrone.
    Les commandes seront passé depuis la couche controle( Servlet)
    Tu pourrais créer un service dedier a l'envoie de mail suffisamment generique pour que celui ci soit reutilisable dans un autre contexte ou sur une autre application (enfin c'est une idée)
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


  11. #11
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par fabszn
    Citation Envoyé par jowo
    Pour ton cas, il faut utiliser un système asynchrone. Je ne sais pas si c'est possible avec JavaMail.

    Tu peux utiliser un système de messages (un peu lourd).

    Une autre solution est d'écrire le courriels (un fichier par courriel) à envoyer dans un répetoire (spool). Un autre processus indépendant lit les fichiers du spool et les envoit au serveur de mail.
    Hello,

    Je pense que la creation de fichier par couriel peut etre une solution lourde de consequence. Si tous les utilisateurs se mettent à des mails cela risque de faire exploser le disque du serveur ...

    tu peux utiliser JMS couplé au pattern command, cela permet d'envoyer des messages de maniere asynchrone.
    Les commandes seront passé depuis la couche controle( Servlet)
    Tu pourrais créer un service dedier a l'envoie de mail suffisamment generique pour que celui ci soit reutilisable dans un autre contexte ou sur une autre application (enfin c'est une idée)
    Pourtant c'est un des systèmes le plus utilisé. Les fichiers sont effacés après envoi ou ils sont remis dans un autre spool (undelivrable) s'ils n'ont pu être délivrés au serveur mail.

    Comment fonctionne ton système JMS? Il conserve tous les messages en mémoire (ressource plus limitée et préciseuse qu'un disque dur sur un serveur) ou les écrit-il dans un spool sur le disque?
    Bien le bonjour chez vous
    Jowo

  12. #12
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 17
    Points
    17
    Par défaut waw
    Au fait les gars, c très fort ce que vous dites. Je ne connais pas exactement Java Messaging Service mais je pense qu'il est inutile de voir tout ça. J'ai voulu juste faire passer deux variables d'une page jsp à une servlet. ça se fait entre applet-servlet.

    voilà le code de la méthode de connexion avec la servlet, elle est appelé dans une page jsp.

    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
    public void sendServletMail(int msg,int idf)
    {
    URLConnection uc;
    DataOutputStream fluxs;
    URL url;
    String qry = "";
    try
    {
    url = new URL("http://localhost:8080/bfc/SendMailServlet");							
    qry = URLEncoder.encode("parent") + "=" + URLEncoder.encode(msg) + "&" + URLEncoder.encode("idf") + "=" + URLEncoder.encode(idf);
    uc = url.openConnection();
    uc.setDoOutput(true);
    uc.setUseCaches(false);
    uc.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
    fluxs = new DataOutputStream(uc.getOutputStream());
    fluxs.writeBytes(qry);
    fluxs.flush();
    fluxs.close();
     
    System.out.println("TestSendOK");
    }
    catch (Exception e) {System.out.println("Erreur paddpost : " + e);}
    }
    Après exécution de la page jsp le message "TestSendOK" est affiché dans les fichiers log de tomcat ce qui veut dire que la connexion s'est bien établie (normalement) mais je n'ai aucune réaction de la servlet.

    Comme je l'ai dit dans mon premier message, il se peut que l'url dela servlet est fausse

  13. #13
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    As-tu essayé avec un URL bidon (par exemple: http://localhost:8080/bfc/BidonServlet)?

    Je pense que tu auras une erreur.

    A mon avis, ton problème provient du fait que tu n'attends pas la réponse de ta servlet.

    Un principe important d'une application web et que tout interrogation est suivie d'une réponse.
    Bien le bonjour chez vous
    Jowo

  14. #14
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 17
    Points
    17
    Par défaut re
    J'ai pensé à ça mais je ne crois pas qu'une réponse est nécessaire. Y'a pas mal de forum de discussion sur le web qui implémente cette technique (comme le présent forum quoiqu'il est développé en php), le traitement d'une réponse à un post est rapide malgré que le nombre de mail à envoyer est important, donc je ne pense pas que la page jsp attend une réponse de la servlet.

    Je vais essayer de mettre une url bidon et voir le résultat.

    Au fait si la page jsp doit avoir une réponse, je pourrai lui envoyer une réponse avant la fin du traitement de l'envoi des mails, dès que la servlet reçoit le sparamètres de la page jsp. C'est une hypothèse que je vais tester mais je ne pense pas que c la cause de l'échec.

  15. #15
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Je crois que nous avons oublié de mettre la méthode.

    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
     
    public void sendServletMail(int msg,int idf) 
    { 
    URLHTTPConnection uc; /* jowo URLHTTPConnection */
    DataOutputStream fluxs; 
    URL url; 
    String qry = ""; 
    try 
    { 
    url = new URL("http://localhost:8080/bfc/SendMailServlet");                      
    qry = URLEncoder.encode("parent") + "=" + URLEncoder.encode(msg) + "&" + URLEncoder.encode("idf") + "=" + URLEncoder.encode(idf); 
    uc = url.openConnection(); 
    uc.setDoOutput(true); 
    uc.setUseCaches(false); 
    uc.setRequestProperty("Content-type", "application/x-www-form-urlencoded"); 
    uc.setRequestMethod("POST"); /* jowo: method POST */
    uc.connect(); /* jowo: faire connexion si nécessaire */
    fluxs = new DataOutputStream(uc.getOutputStream()); 
    fluxs.writeBytes(qry); 
    fluxs.flush(); 
    fluxs.close(); 
     
    System.out.println("TestSendOK"); 
    } 
    catch (Exception e) {System.out.println("Erreur paddpost : " + e);} 
    }
    Code non testé
    Bien le bonjour chez vous
    Jowo

  16. #16
    Membre à l'essai
    Inscrit en
    Novembre 2004
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 25
    Points : 17
    Points
    17
    Par défaut re
    l'objet URLHTTPConnection génère une erreur.
    Toutefois, j'ai pu recevoir à travers la servlet les deux variables mais reste encore des problèmes à voir. Je ne sais si c'est la cause au fait que je ne programme pas de réponse de la servlet.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/03/2011, 13h35
  2. Communications entre Servlet et JSP
    Par GérardMartinelli dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 06/06/2010, 16h55
  3. Communication JSP - Servlets
    Par mystar dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 05/02/2007, 18h08
  4. [JSP][Servlet][Applet] communication Applet-Servlet-Jsp
    Par williamv dans le forum Applets
    Réponses: 1
    Dernier message: 06/04/2006, 16h32
  5. Réponses: 3
    Dernier message: 07/03/2005, 15h08

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