Forum AlexInfo


 
AccueilPortailGalerieFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 JSP / Servlets

Aller en bas 
AuteurMessage
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: JSP / Servlets   Mar 7 Mar à 18:24

Allez à moi de jouer. J'ai quelques petits trucs à vous montrer à propos des servlets et des java server pages ...
Je bosse actuellement sur la récupération d'informations provenant de ma servlet dans une base de données Oracle. En gros, je veux faire exécuter une requête SQL par JSP (rien de bien affolant me direz vous sauf que j'ai un petit problème lorsque que je veux charger mon driver JDBC- j'dois pas avoir le bon, où alors j'ai mal tapé ma ligne Class.forName("driver") ...)
Donc je m'y mets ce soir et demain j'vous montre comment faire.

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
alex
ADMINISTRATEUR
ADMINISTRATEUR
avatar

Nombre de messages : 730
Age : 40
Localisation : Ivry-sur-Seine
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Jeu 9 Mar à 14:41

Ca serait cool de nous faire un tuto là dessus.

NB: Je viens de réussir à faire fonctionner une servlet avec Eclipse cheers
En fait, Eclipse est pas mal du tout car il y a bcp de plugins qui permettent de faciliter la programmation web (notamment un plugin permettant de lancer/arrêter tomcat directement dans Eclipse).
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sonic
POTES
POTES
avatar

Nombre de messages : 92
Localisation : france
Date d'inscription : 17/10/2005

MessageSujet: alex   Jeu 9 Mar à 18:14

oui alex!!! tu as raison il faut qu'il nous fasse un tutorial, car moi connais rien a JSP servlets confused

alors vive le tuto !!!!
lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.google.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Ven 10 Mar à 18:36

J'ai réussi. J'ai tout sous la forme d'un fichier zip donc j'vais faire un peu de mise en forme, un peu de bla bla et puis c'est parti.

Vous saurez bientot comment récupérer les informations d'une base de données (j'ai oracle 10g) et les afficher dans un navigateur web via une servlet. C'est trop de la balle.

En plus, après le principe est exactement le même pour php-mysql (c'est juste une histoire de syntaxe et de noms de fonctions qui changent après)

Et d'ailleur idem pour étendre à d'autres base de données genre postgresql. Bref une fois que vous saurez faire ca, vous serez les boss.
J'ai réussi à faire marcher ca nickel ce matin donc j'pense mettre ca sur le forum pour mardi (et oui en attendant c'est le big day lundi, j'suis a Bruxelles, croisons les doigts car cette histoire de Razek sans stage, ca commence à me stresser un peu)

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Ven 10 Mar à 20:23

Au fait, c'est vrai qu'il parait qu'Eclipse est le meilleur EDI. Moi j'ai fait mon bizness avec la version 5 de netbeans (qui est pas mal du toutet dont beaucoup de fonctionnalités ont été rajoutées par rapport à la version 4.1 que j'avais avant).

Au fait, est-ce que quelqu'un connait Websphere et weblogic? Un pote de l'ESIAL m'a dit que eux ils utilisent websphere pour faire du J2EE ...

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:18

Bon alors j'vais vous expliquer comment faire, dans ce magnifique tuto, qui est mon tout premier (j'ai donc grave la pression après les tutos d'Alex et de Sonic qui ont placé la barre super haut) :

Il s'agit de créer une page web dans laquelle vous ferez apparaître ce qui se trouve dans une base de données (en gros pour que tout le monde comprenne).

Le résultat obtenu est le suivant :


pas mal hein ? Bien sur cela dépend de ce que vous avez dans la base de données bien sur (moi j'me vois déjà PDG, c'est pas interdit de rêver quand même!!!!)

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:31

L'EDI utilisé est netbeans 5.0.
Le SGBD est oracle 10g.
Nous écrirons une servlet (appelé ici ShowDeptServlet.java) pour faire la connexion à la base de données.

Je vous expliquerai plus tard, dans ce tutoriel, comment charger le bon driver pour le bon SGBD et aussi (plus facile) comment se connecter à la base de données et faire tout ce qu'il faut pour afficher les infos de la base à l'écran.

Voici les tables qui vont nous servir :

Code:
create table departements (
   deptCode char(2),
   deptdesc char(40),
   deptMgrNo char(4)
)

Code:
create table employes (
   empNo char(4),
   lname char(20),
   fname char(20),
   hireDate date,
   isMgr int,
   deptNo char(2),
   title char(50),
   email char(32)
)

puis voici les fonctions d'insertion dans la base :

Code:
insert into departements values ('01','direction','0001');
insert into employes values ('0001','Razek','AKIR','10/03/2006',2,'10','president directeur general','akir.razek@gmail.com');

bien sur, vous pouvez changer les champs s'ils ne vous plaisent pas. Moi j'les trouve pas mal. Very Happy

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:37

La requête qui va nous intéresser et dont le résultat sera affiché à l'écran est la suivante :

Code:
select d.deptdesc, e.fname, e.lname, e.title, e.email
from departements d , employes e
where d.deptMgrNo = e.empno
order by d.deptdesc

Pour les teubé qui ne comprendrait pas la requête (non j'vise pas Nahim), cette requête récupère la descrption d'un département (département d'une entreprise et non géographique Nahim), le nom, le prénom, le titre (ou le grade) ainsi que l'adresse email de la personne insérée dans la table employés.

Maintenant, place au code à proprement parler (allez j'y vais et sans filet s'il vous plait, c'est de l'impro) :

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:39

Code:
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;


public class ShowDeptServlet extends HttpServlet {

    public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
    public static final String URL = "jdbc:oracle:thin:system/nacira@nacira:1521:razek";
   
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
       
        Connection con = null;
        try {
            Class.forName(DRIVER);
            con = DriverManager.getConnection(URL, "system", "nacira");
         
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(
                    "select"
                    + "  d.deptdesc as DEPTNAME,"
                    + "  e.fname as FNAME,"                                 
                    + "  e.lname as LNAME, "
                    + "  e.title as TITLE,"           
                    + "  e.email as EMAIL"                 
                    + " from  departements d, employes e"                 
                    + " where d.deptMgrNo = e.empno"
                    + " order by DEPTNAME"                 
            );
           
            out.println("<HTML>");
            out.println("<HEAD>");           
            out.println("<TITLE>Responsable des departements</TITLE>");           
            out.println("</HEAD>");           
            out.println("<BODY>");
            out.println("<H2>Responsable des departements</H2>");
            out.println("<DL>");
           
            while (rs.next()){
                String deptName = rs.getString(1);
                String firstName = rs.getString(2);
                String lastName = rs.getString(3);
                String title = rs.getString(4);
                String email = rs.getString(5);
               
                out.println("<DT><B>"+ deptName +"</B></DT>");
                out.println("<DD>"+ firstName + " " + lastName + ", " + title + "<BR>");
                out.println("  " + email + "<BR>");
                out.println("</DD>");
            }

            out.println("</DL>");
            out.println("</BODY>");           
            out.println("</HTML>");         
        }
        catch (Exception e) {
            e.printStackTrace(new PrintWriter(out));
        }
        finally {
            if (con != null){
                try {
                    con.close();
                }
                catch (SQLException ignore){}
            }
        }
       
       
        out.close();
    }
   
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** Handles the HTTP <code>GET</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Handles the HTTP <code>POST</code> method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // </editor-fold>
}

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:50

Bon OK tout ceci mérite bien quelques explications :

Tout d'abord, il faut dire que les méthodes DoGet, DoPost et getServletInfo sont créées automatiquement par Netbeans 5.0 (je n'y ai rien ajouté) ainsi que l'entête de la fonction processRequest.

Bon commençons pas le commencement : les include

Code:
import java.io.*;
import java.net.*;
import java.sql.*;
import java.util.*;

import javax.servlet.*;
import javax.servlet.http.*;

Bon ben là, on a inclus les bibliothèques qu'il fallait. C'est toujours celles-la qu'il faut inclure alors, y a pas de galère.

Code:
public static final String DRIVER = "oracle.jdbc.driver.OracleDriver";
    public static final String URL = "jdbc:oracle:thin:system/nacira@nacira:1521:razek";

La ça commence à se corser. Ces 2 variables que j'ai créé (pour ne pas avoir à écrire des trucs trop long dans le code vont servir au chargement du driver et à la connexion à la base).
Pour la variable DRIVER, y a rien de spécial, c'est cette chaîne de caractère, qu'il faut mettre quand il s'agit du driver spécifique à Oracle (je sais plus c'est quoi pour MySQL mais c'est autre chose).
Pour la variable URL, c'est plus compliqué :

Nous avons ceci :
Code:
jdbc:oracle:thin:system/nacira@nacira:1521:razek

Si on sait que mon ordinateur s'appelle Nacira (que personne ne se foute de ma gueule où j'arrête le tuto tout de suite !!) et que le nom de ma base de données est razek (et oui je sais quelle imagination...) alors cela devient beaucoup plus clair.

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
razek
POTES
POTES
avatar

Nombre de messages : 806
Age : 39
Localisation : Thionville
Date d'inscription : 11/10/2005

MessageSujet: Re: JSP / Servlets   Mar 14 Mar à 19:51

To be continued

_________________
Le monde appartient à ceux dont les ouvriers se lèvent tôt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.radins.com
Contenu sponsorisé




MessageSujet: Re: JSP / Servlets   

Revenir en haut Aller en bas
 
JSP / Servlets
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum AlexInfo :: Informatique :: Tutoriels :: Software-
Sauter vers: