Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 43
    Points : 9
    Points
    9

    Par défaut Communication JSP / Servlet

    Bonjour,

    Je suis en train de développer une application web en utilisant J2EE. Je me suis pas mal aidé du tuto du site du zéro, mais là je suis un peu bloqué !

    Je souhaite pouvoir enregistrer un utilisateur dans ma base de données depuis l'application web, à l'aide d'un formulaire.
    Pour rajouter cet utilisateur, il faut remplir un certains nombre de champs (nom prenom etc...)
    Il y a également des champs où on n'a pas trop le choix (par exemple un champ "Genre" avec en face un select contenant "H" et "F")

    Je voudrais pouvoir remplir mes select avec des données qui sont dans ma base de données. Par exemple j'ai une table 'Genre' dans ma base de données qui contient les libellés "H" et "F". Je voudrais que les valeurs disponibles dans mon select correspondent avec les valeurs disponibles dans ma BDD.

    Pour cela, j'aimerais associer une servlet à ma page .jsp (comment feriez-vous cela ?)
    Ensuite, dans le doGet de ma servlet, je voudrais donc récupérer la liste des valeurs de ma tables genre (ça je devrais y arriver grace à ma jolie couche DAO comme indiqué dans le tuto ^^), et ensuite remplir le select de ma page .jsp avec cette liste venant de ma BDD.

    C'est cette partie là qui me pose problème !

    Pouvez vous m'aider svp ?

    PS: question subsidiaire ->
    est ce que je me trompe en disant que les servlets sont aux jsp ce que sont les aspx.cs aux aspx ? (comparaison entre j2ee et .net)

  2. #2
    Membre habitué Avatar de Kazh Du
    Homme Profil pro Erwan Mariault
    Développeur informatique
    Inscrit en
    novembre 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Nom : Homme Erwan Mariault
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2011
    Messages : 45
    Points : 129
    Points
    129

    Par défaut

    [mode troll on]
    Bien que j'ai un peu de mal avec ton explication (les "select" partout m'ont un peu tué dans la lecture, je pense que tu parles de listes déroulantes représentée, il est vrai, par le tag <select>), et que ton exemple n'est pas le plus pertinent (les différents genres proposés sont fixes et peu nombreux 2-3 si on veut, il n'y a donc pas besoin de se prendre autant la tête), je pense avoir saisie ton problème.
    [mode troll off]

    Je pense que tu as mal comprit ce qu'était une servlet (je ne peux pas trop faire la comparaison avec aspx, moi et le .net ), dis-toi que servlet et jsp c'est la même chose ! (Pour être chiant exact, avant la compilation, java va transformer ta jsp en servlet) La jsp est juste plus pratique car mise en forme. En général, on utilise une servlet pour traiter et préparer les infos et la jsp pour les afficher.

    Pour reprendre ton exemple, lorsque tu cliques sur le lien vers ton formulaire, tu devra arriver sur ta jsp (fonction doGet() en l’occurrence), ici tu charges tes données depuis ta BDD et ton les mets dans une liste en attribut
    Code :
    request.setAttribute("le nom en String", taListeDeGenre);
    Enfin tu rediriges la page vers ta jsp
    Code :
    1
    2
    RequestDispatcher dispatcher = request.getRequestDispatcher("tajsp.jsp");
    dispatcher.forward(request, response);
    Tu pourras ensuite récupérer l'attribut dans la jsp et l'afficher dans une liste déroulante.

  3. #3
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 43
    Points : 9
    Points
    9

    Par défaut

    Bonjour et merci pour ta réponse !

    Effectivement mon exemple n'était peut-être pas le plus pertinent. J'ai pris ici l'exemple de Homme/Femme pour simplifier, mais bien évidemment il y a dans ma page des éléments plus complexes qui nécessitent de récupérer une liste en base de données pour être remplis.

    Donc si je comprends bien, on explique à la servlet qu'elle est liée à une page jsp (à l'aide de RequestDispatcher), mais à aucun moment on explique à la page jsp qu'elle est liée à une servlet ?

    Du coup, lorsqu'on clique sur un lien dans la page menant à toto.jsp, comment le programme sait-il qu'il doit d'abord passer par le doGet de la servlet associée à toto.jsp ??

    Là où cela se complique encore (là faut s'accrocher ^^) c'est que ma page est en réalité un peu plus complexe que cela.
    En fait, j'ai une page index.jsp qui contient un menu à gauche (le menu est constitué de plusieurs liens) et un cadre à droite.
    Le contenu du cadre à droite change lorsque l'utilisateur clique sur un lien du menu (sans recharger toute la page). Pour cela, j'utilise jquery, en disant que pour chaque clique sur un lien du menu, on fait un 'loadpage' suivi d'un 'return false;'.

    Ce que je voudrais faire c'est :
    1/ l'utilisateur clique sur un lien du menu de gauche dans le but d'afficher lien1.jsp dans le cadre de droite
    2/ le programme passe par le doGet de la servlet associée à lien1.jsp pour effectuer des requêtes nécessaires à l'affichage de lien1.jsp
    3/ le programme affiche lien1.jsp dans le cadre de droite (sans avoir rechargé toute la page) et en ayant connaissance des résultats des requêtes faites dans le doGet de la servlet.

    Mes problèmes :
    1/ que mettre dans le href du lien ?? (le chemin de la jsp ou de la servlet ?)
    2/ comment lier la servlet et le jquery pour que le RequestDispatcher("lien1.jsp).forward ne recharge pas toute la page ?

    J'espère avoir été plus clair dans ce message
    Encore merci pr votre aide !

  4. #4
    Membre habitué Avatar de Kazh Du
    Homme Profil pro Erwan Mariault
    Développeur informatique
    Inscrit en
    novembre 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Nom : Homme Erwan Mariault
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : novembre 2011
    Messages : 45
    Points : 129
    Points
    129

    Par défaut

    Ta page jsp et ta servlet sont 2 choses complétement séparées. Chacune des deux doit être vu comme une page web indépendante, il n'y a donc pas d'association entre les 2.
    On a tendance à les séparer mais on pourrait tout aussi bien n'en utiliser qu'une seule est écrire toute la page dans la servlet ou à l'inverse mettre tout le code java dans la jsp. On se rend vite compte que faire une page web à coup de println (dans la servlet), c'est assez illisible et mon web-master m’étripe si j'écris trop de java dans la jsp.

    On passe donc par la servlet qui va travailler sur les infos et celle-ci redirige la page vers la jsp qui écrira le code en fonction de ce qu'il y aura dans les attributs. C'est donc bien la servlet qu'il faut appeler.

    Pour le reste, cela retourne de jQuery qui pourrait aussi bien travailler avec une jsp (et une servlet) qu'avec du code HTML statique. Par contre, je ne m'y connais pas du tout dans les techno AJAX Je ne peux que te conseiller de poser ta 2ème question sur le forum approprié.

  5. #5
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 43
    Points : 9
    Points
    9

    Par défaut

    D'accord je comprends, merci beaucoup pour ces explications c'est plus clair maintenant ! je marque résolu

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •