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 :

Communication JSP / Servlet


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 32
    Points
    32
    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 tutoriel Java, 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 confirmé Avatar de Kazh Du
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 152
    Points : 561
    Points
    561
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setAttribute("le nom en String", taListeDeGenre);
    Enfin tu rediriges la page vers ta jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 32
    Points
    32
    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 confirmé Avatar de Kazh Du
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2011
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 152
    Points : 561
    Points
    561
    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é.
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 47
    Points : 32
    Points
    32
    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.

Discussions similaires

  1. Communication JSP - Applet - Servlet
    Par badgone_69 dans le forum Applets
    Réponses: 1
    Dernier message: 11/07/2013, 12h19
  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. [jsp][servlet] communication jsp servlet
    Par villeneuvejsp dans le forum Servlets/JSP
    Réponses: 15
    Dernier message: 03/10/2005, 15h36

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