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 :

requête sql dans une page jsp


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut requête sql dans une page jsp
    Bonjour.

    Je dispose d'une page jsp, dans laquelle j'ai un lien très simple par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="URL">Le lien</a>
    Comment faire pour qu'en cliquant sur ce lien, cela lance une requête sql simple (select * from table) et affiche le résultat de cette requête ?

  2. #2
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Bonjour

    Dans ton lien tu appelles une URL vers une Servlet que tu auras référencé dans ton web.xml et cette servlet fera appel à un objet métier qui se chargera d'appeler un DAO pour aller chercher l'information dans ton modèle (ta base de données)
    Une fois le résultat renvoyé à ta servlet tu pourra utiliser un helper pour le mettre en forme et le mettre dans la request et dans ta JSP tu le récupère à partir de la requête

    Si tu as des question n'hésite pas

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut
    Merci pour votre réponse.

    Supposons que je mette le lien suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href= "/select.do" >Le lien</a>
    Dans mon fichier web.xml je mets alors quelque chose ressemblant à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <web-app>
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>packageStruts.ActionServlet</servlet-class>
    		<init-param>
    			<param-name>config</param-name>
    			<param-value>/WEB-INF/struts-config.xml</param-value>
    		</init-param>
    	</servlet>
    </web-app>
    <servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    </servlet-mapping>
    Donc à partir d’ici, mon lien « /select.do » appelle la servlet "ActionServelt" de Struts (le contrôleur). Cette servlet de contrôle va dispatcher la requête vers le sous-contrôleur adéquat (une servlet Action) que je décris dans mon fichier struts-config.xml ressemblant à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <struts-config>
    <action type="package.action.Select" path="/select">
    <forward name="success" path="/WEB-INF/jsp/resultatSql.jsp"/>
    </action>
    </struts-config>
    Dans la servlet Action "Select.java", j’ai donc une méthode executeAction() qui retourne un ActionForward et qui permettra ainsi l’affichage de ma jsp.

    Mais comment faire, pour que cette servlet Action "Select.java" appelle un objet métier ?
    Et comment faire pour appeler un DAO ?

  4. #4
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Il y a plusieurs possibilités : soit vous utiliser un ORM (hibernate,toplink etc) et je pense qu'il y a un outil avec eclipse qui permet de générer les DAO et les objets qui vont avec...
    Sinon vous faites du JDBC

    Supposons que vous voulez récupérer les données d'une table Employe
    Vous pouvez créer une classe EmployeBusiness qui sera un singleton et qui permet d'interroger un DAO EmployeDAO. Dans le DAO on faite une requête soit par l'ORM, soit en JDBC

    A partir de la servlet on fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    form.setProperty("listEmployes",EmployeBusiness.getInstance().getEmployes());//ou quelque chose comme ça 
    }
    dans la classe business :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    static List<Employe> getEmployes(){
    EmployeDAO.findAllEmployes(); //appel au DAO 
    //traitements du resultats et renvois à la classe business
     
    }
    c'est du code écrit à la va vite mais le principe est le même
    Si c'est une petite application ou si c'est pour apprendre, vous pouvez faire dans un premier temps du JDBC avant de s'attaquer à autre chose

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 73
    Par défaut
    J'opte pour JDBC du framework Spring.

    Pour chaque table de la base de données, faut-il créer une classe Business associée ? (Table employe -> Classe EmployeBO, Table livres -> Classe LivresBO, etc...)

    Comment écrit-on un DAO avec JDBC ?

    Merci.

  6. #6
    Membre émérite Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Par défaut
    Puisque tu utilises Spring, je te conseille fortement de lire la doc sur le site de springsource pour bien comprendre les transactions etc ...
    Je te renvois aussi vers google. tu trouveras de nombreux articles car ce n'est pas avec un simple post qu'on peut répondre à ta question.

    EDIT pour ta question sur les objets business : tu ne crées pas des objets businees en fonction d'une table mais de la fonctionnalité que tu souhaites implémenter et qui peut faire appels à différents DAO

Discussions similaires

  1. Syntaxe d'une requête executeQuery dans une page JSP
    Par geteo dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 28/08/2012, 15h02
  2. Réponses: 6
    Dernier message: 21/08/2012, 23h13
  3. [Jena] Affichage du résultat d'une requête SPARQL dans une page JSP
    Par info_dekh dans le forum Frameworks
    Réponses: 1
    Dernier message: 18/06/2012, 11h54
  4. Editeur SQL dans une page JSP
    Par ja1985va dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 29/02/2012, 16h58

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