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 :

Invoquer un autre servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 93
    Points : 43
    Points
    43
    Par défaut Invoquer un autre servlet
    Bonjour,

    Je dévoloppe une application java sous Tomcat avec Eclipse.
    Cette application génere des pages voice-xml et donc pas de html.
    Ma question est : comment puis je faire pour invoquer un servlet depuis un autre servlet ?

    Merci d'avance
    Christian

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    un redirect sur ton autre servelt

    http://www.theserverside.com/discuss...hread_id=26425

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/chemin-servlet");
    if (dispatcher != null) 
      dispatcher.include(request, response);

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 93
    Points : 43
    Points
    43
    Par défaut
    Ce code ne fonctionne pas il me dit qu'il
    can not be resolved as a type
    pour httpservletrequest etc ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    protected void doGet(HttpServletRequest request, HttpServletResponse response)throws Exception
    {
        javax.servlet.RequestDispatcher rd1 = request.getRequestDispatcher("/Include.html");
        rd1.include(request,response);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Points : 635
    Points
    635
    Par défaut
    Il faut que tu importe les classes que tu utilise. Dans l'éditeur faits clic droit puis "Source"->"Organize imports". Ou bien Ctrl + espace après avoir mis le curseur à la fin d'une classe qu'il ne trouve pas.

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 93
    Points : 43
    Points
    43
    Par défaut
    Merci de vos réponse, mais en fait pour être complet dans mon explication, je dois vous dire que je travaille avec un plugin bien particulier (une contrainte).
    Pour que mes instructions soient prises en compte dans mon servlet je dois au préalable créer cet appel :

    public void requestBegin(SCESession mySession) {}

    Apparemment si je code

    public void requestBegin(SCESession mySession){
    public class GoTo extends HttpServlet {
    public void doPost (HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/KoneElevatorTest/Start");
    dispatcher.forward(req, res);
    }
    }

    il me dit "illegal modifier for the local class GoTo; only abstrac or final is permitted"
    Comment puis je faire ? (je suis tout nouveau dans le monde Java excuser mes bêtes question ;-))

    D'avance merci

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Citation Envoyé par c-ve
    Merci de vos réponse, mais en fait pour être complet dans mon explication, je dois vous dire que je travaille avec un plugin bien particulier (une contrainte).
    Pour que mes instructions soient prises en compte dans mon servlet je dois au préalable créer cet appel :

    public void requestBegin(SCESession mySession) {}

    Apparemment si je code

    public void requestBegin(SCESession mySession){
    public class GoTo extends HttpServlet {
    public void doPost (HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/KoneElevatorTest/Start");
    dispatcher.forward(req, res);
    }
    }

    il me dit "illegal modifier for the local class GoTo; only abstrac or final is permitted"
    Comment puis je faire ? (je suis tout nouveau dans le monde Java excuser mes bêtes question ;-))

    D'avance merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            public class GoTo extends HttpServlet {
    			public void doPost (HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
    				RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/KoneElevatorTest/Start");
    				dispatcher.forward(req, res);	
    		}
    }

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 93
    Points : 43
    Points
    43
    Par défaut
    merci de ta réponse mais mon problème c'est que je dois inclure ce code dans :

    public void requestBegin(SCESession mySession) {
    }

    Sinon le plugin n'en tient pas compte et que si je mets le code que tu m'as donné dans ce code il me donne l'erreur dont je parle plus haut.

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Ta classe qui contient ton requestBegin étend quelle classe ? si c'est pas une servlet tu ne peux pas utiliser les méthodes ... ce qui est évident

    Et c'est impossible de définir une classe dans une méthode ou alors j ai râté quelque chose...

    Il faut prendre ton problème autrement tu as une servlet qui fait un appel à ta classe qui contient ton fameuxx beginMachin et ensuite tu rediriges vers une autre servlet ...

    Soit tu lis la documentation d'un produit dont on ne sait même pas le nom

  10. #10
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Citation Envoyé par *alexandre*
    Et c'est impossible de définir une classe dans une méthode ou alors j ai râté quelque chose...
    Bien sûr que si, on peut définir une classe dans une méthode !
    Une classe interne peut être définie à l'intérieur d'une méthode mais elle ne peut pas être publique sous peine d'avoir l'erreur suivante : Illegal modifier for the local class XXX; only abstract or final is permitted !

    Cela n'a bien entendu d'intérêt que si des instances de cette classe sont créées dans la dite méthode.
    Et là, je rejoins alexandre, il vaut bien à moment ou à un autre avoir une HttpServlet (ou de quoi la construire)

    Vu la tête de ta méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void requestBegin(SCESession mySession)
    {
    }
    Je serai étonné que dans ta classe SCESession, tu n'ais aucune méthode pour récupérer un request dispatcher, un contexte de servlet ou une réponse/requête http ?
    Sans connaître l'API de l'outil que tu utilises (Je n'ai rien trouvé avec SCESession sous google), je ne peux t'en dire davatange.

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    Citation Envoyé par benwit
    Bien sûr que si, on peut définir une classe dans une méthode !
    Une classe interne peut être définie à l'intérieur d'une méthode mais elle ne peut pas être publique sous peine d'avoir l'erreur suivante : Illegal modifier for the local class XXX; only abstract or final is permitted !
    ca me parait bien étrange tout de même mais c'est bon à savoir merci de la précision !

  12. #12
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Je voulais juste signalé que ce n'était pas impossible. Personnellement, je n'ai jamais utilisé

    <<edit>>
    //: c08arcel4.java
    // Définition d'une classe à l'intérieur d'une méthode.
    http://bruce-eckel.developpez.com/li...?chap=9&page=2
    <<edit>>

    Tout le monde savait que c'était impossible. Il est venu un imbécile qui ne le savait pas et qui l'a fait. Marcel PAGNOL
    On ne savait pas que c'était impossible, alors on l'a fait. John Fitzgerald KENNEDY.
    L'inexpérience est ce qui permet à la jeunesse d'accomplir ce que la vieillesse sait impossible. Paul (Tristant) BERNARD
    La meilleure façon de prédire l'avenir, c'est de l'inventer.

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    un peu tirer par les cheveux

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/05/2011, 19h20
  2. appler une servlet apartir d'une autre servlet
    Par fibi007 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 18/04/2008, 19h24
  3. Récupérer un paramètre d'une autre servlet
    Par olihya dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 06/03/2008, 22h09
  4. Ajouter une autre servlet au web.xml
    Par MC wacko dans le forum Struts 2
    Réponses: 2
    Dernier message: 03/03/2008, 14h28
  5. Appeler une méthode d'un autre servlet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/09/2006, 23h09

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