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 :

Probleme de servlet


Sujet :

Servlets/JSP Java

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut Probleme de servlet
    Bonjour ,

    J'ai un problème pour récupérer mes variables d'une page HTML du a son format complexe. En effet j'aimerais récupérer l'id le type et cmd par le biais de la var data et par le biais d'une servlette.


    Code HTML :

    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
     
    <input id="MyButton" type="button" value="Submit">
     
            <script>
                var data = {
                    equipment: {
                        id: "ESC_1",
                        type: "ESC",
                        cmd: "UP"
                    }
                }; 
             
                $('#MyButton').click(function() {
                    $.post( "MyServlet", data );
                });
            </script>
    Mon but c'est à travers la pression du bouton, j'arrive a récupérer les variables id, type et cmd au sein de la console Eclipse && d'une servlet.

    Dans ma servlet, dans la méthode doPost, cette requeste me retourne nul.

    Code servlet.java:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String data = (request.getParameter("data"));
            System.out.println(data);
    Je n'arrive pas a récupérer les variables dû a la hiérarchie de la variable (dans data il y a equipment puis dans equipment id, type, cmd)

    Merci de votre aide, cordialement

  2. #2
    Membre chevronné Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Par défaut
    Slt,

    essaie avec equipement plutôt que data... data est le nom de ta variable et non son contenu. Regardes $.post sur l'api Jquery

    ++

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

    Informations forums :
    Inscription : Février 2008
    Messages : 2
    Par défaut
    Bonjour,
    Merci de votre réponse cependant je reste toujours bloquer même en utilisant le nom "equipment". Il me renvoi toujours la même erreur, c'est a dire null.

    On m'a parler d'utiliser du JsonObject afin de vouloir faire ce que je désire. cepandant, même après documentation, le Json reste pour moi très flou.

    Merci d'avance

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    C'est pas vraiment la peine de t'embêter à gérer du JSON côté Java, c'est pas l'idée de la chose.

    c'est juste que $.post() ne peut pas deviner comment il doit envoyer cet objet.

    Au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var data = {
                    equipment: {
                        id: "ESC_1",
                        type: "ESC",
                        cmd: "UP"
                    }
                };
    il faudrait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var data = {
      id: "ESC_1",
      type: "ESC",
      cmd: "UP"
    };
    Et côté Java ça devrait être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.getParameter("id");
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre actif
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 74
    Par défaut Une autre approche
    Salut, je te propose une autre approche.

    Visiblement, tu veux envoyer une instance d'Equipment du client vers le serveur via une servlet
    A la réception dans la servlet, tu vas probablement convertir ton objet json en objet JAVA, pour l'utiliser dans tes classes métiers.
    Ta classe métier traitant ton Equipment ressemble à quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class EquipmentManager {
       public void processEquipment(Equipment equipment) {
          ...
       }
    }
    Je te propose d'utiliser le framework ocelotds te permettant de te passer de servlet ou autre service REST en utilisant CDI et Websocket.
    Tu ecris ta classe métier comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @DataService(resolver = Constants.Resolver.CDI)
    public class EquipmentManager {
       public void processEquipment(Equipment equipment) {
          ...
       }
    }
    Enfin dans ton code javascript, tu écris naturellement :
    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
     
    var equipment = {
        "id": "ESC_1",
        "type": "ESC",
        "cmd": "UP"
    }
    equipmentManager.processEquipment(equipment).then(
       function(res) {
       // process done
       }
    ).catch(
       function(fault) {
          //  process fail
       }
    );
    Avec ce framework, tu pourras te concentrer sur le métier de ton application et non sur comment envoyer une info du client vers le serveur...

    Enjoy

Discussions similaires

  1. probleme avec servlet
    Par lmilhi dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 19/04/2007, 20h06
  2. probleme deploiment servlet
    Par isorn dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 08/03/2007, 09h47
  3. probleme de servlet
    Par samira84 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 02/02/2007, 02h34
  4. eclipse 3.1 apache 5.0.28 j2ee - Problème de servlet
    Par chernob dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 10/07/2006, 12h12
  5. Probleme SessionBean Servlet
    Par metalpetsFR dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/05/2006, 16h28

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