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 :

Conseils Conception Web application


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut Conseils Conception Web application
    Bonjour,

    Comme le dis mon titre, je souhaiterais concevoir une application web avec Java + MySQL. Cette application Affiche une page de connexion (Login password). Une fois la connexion réussie, l'utilisateur arrivera dans un espace personnalisé avec des informations stockées dans la BDD et liées à cet utilisateur.

    Auriez-vous des conseils (framwork) ou requirement.

    Merci d'avance

    PS: je suis débutant sous J2EE donc je n'ai pas d'expertise. Si vous avec des questions n'hésitez pas à me les poser

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pour débuter, je pense qu'une architecture à base de servlet/JSP est un bon début.
    Il faut "juste" faire attention de bien organiser les couches en fonction de l'usage attendu par chacune d'elle.

    - la couche servlet sert de contrôleur pour le routage des demandes (request). A ce sujet, l'utilisation de bean pour l'encapsulation des données nécessaires à la page est TRES judicieux.

    - la couche JSP sert uniquement à la création de l'affichage en se basant sur les données du fameux bean vu avant.

    Dans un premier temps, tu peux mettre les requêtes base de données dans le contrôleur mais il serait mieux de prévoir une classe pour centraliser les opérations sur une table ou sur une "entité" logique. On parle de DAO.

    Pour la création des connexions DB, il est préférable de centraliser la création dans une classe via un méthode abstraite ce qui permettra d'y faire référence partout. En cas de besoin, je pourrai t'expliquer de manière détaillée le mécanisme.

    Ensuite, il faut faire attention de bien libérer les ressources après usage.
    Dans une méthode donnée nécessitant un accès à la base, l'usage des blocs try - catch - finally est quasi impératif.
    On acquiert une connexion, on créé un Statement ou PreparedStatement (mieux), on lance une requête, on traite le résultat et ensuite on libère la connexion (dans finally). On peut fermer les ressources intermédiaires (ResultSet et Statement) mais le fait de fermer la connexion ferme tout également... à voir...

    Voilà, quelques conseilles pour débuter...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Dans un premier temps, tu peux mettre les requêtes base de données dans le contrôleur mais il serait mieux de prévoir une classe pour centraliser les opérations sur une table ou sur une "entité" logique. On parle de DAO.

    Pour la création des connexions DB, il est préférable de centraliser la création dans une classe via un méthode abstraite ce qui permettra d'y faire référence partout. En cas de besoin, je pourrai t'expliquer de manière détaillée le mécanisme.
    Voilà, quelques conseilles pour débuter...
    Bonjour OButterlin> Merci pour tes conseils. Ça me donne déjà une bonne approche technique de mon petit projet.

    Je me base déjà sur ces conseils pour continuer mes recherches. Néanmoins si tu peux mieux me détailler un peu le concept de DAO et la partie gestion des connexions DB via classe abstraite, je suis preneur. Encore merci

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Pour la classe Connection, on peu faire comme 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    package utils;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
     
    public class DBConnection
    {
        private static final String className = "com.mysql.jdbc.Driver";
        private static final String url = "jdbc:mysql:///laBase";
        private static final String user = "root";
        private static final String password = "";
     
        public static Connection getConnection() throws Exception
        {
            Class.forName(className);
            return DriverManager.getConnection(url, user, password);
        }
     
        public static void closeConnection(Connection connection)
        {
            try
            {
                 connection.close();
            }
            catch (Exception e) {}
        }
     
    }
    Comme ceci, tu pourras y faire référence partout de cette manière
    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
     
    Connection connection = null;
    try
    {
       connection = DBConnection.getConnection();
    ...
    }
    catch (Exception e)
    {
       ...
    }
    finally
    {
       DBConnection.closeConnection(connection);
    }
    Pour les DAO, ce serait un ensemble de classes centralisant les opérations sur une table donnée ou un élément logique regroupant plusieurs tables.
    Supposons le cas d'une personne. On peut :
    - ajouter
    - supprimer
    - modifier
    - référencer un conjoint, des enfants, etc...
    La DAO sera le point de passage pour toutes ces opérations. On aura une méthode par type de traitement :
    - addPersonne(...)
    - deletePersonne(Integer ID) <- ici, on voit bien qu'il peut y avoir des traitements pour supprimer des références également
    - etc...

    Avec ce concept, si plusieurs contrôleurs font référence à ces fonctionnalités, elles ne seront codées qu'une seule fois, idem pour les contrôle de cohérence...

    C'est plus clair ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Pour les DAO, ce serait un ensemble de classes centralisant les opérations sur une table donnée ou un élément logique regroupant plusieurs tables.
    Supposons le cas d'une personne. On peut :
    - ajouter
    - supprimer
    - modifier
    - référencer un conjoint, des enfants, etc...
    La DAO sera le point de passage pour toutes ces opérations. On aura une méthode par type de traitement :
    - addPersonne(...)
    - deletePersonne(Integer ID) <- ici, on voit bien qu'il peut y avoir des traitements pour supprimer des références également
    - etc...

    Avec ce concept, si plusieurs contrôleurs font référence à ces fonctionnalités, elles ne seront codées qu'une seule fois, idem pour les contrôle de cohérence...

    C'est plus clair ?
    Bonjour,

    Désolé pour le retard j'ai été un peu en vacances. Oui c'est beaucoup plus clair. Je vous tiendrai au courant de mon avancement.
    Merci beaucoup pour les conseils

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 37
    Par défaut
    Bonjour,

    1- Quelqu'un aurait des cours ou tutoriels sur comment authentifié un utilisateur au travers d'une jsp + base de donnée et comment garder cette session pour toutes les actions que ferait l'utilisateur jusqu'à sa déconnexion.
    2- A travers mes recherches sur les beans et comment les utilisés, j'arrive la plupart du temps sur des tutoriels Struts. Serait-ce mieux d'apprendre comment utiliser ce framework et de m'en servir dans le cadre de ce projet?
    Si vous avez aussi des cours sur les beans je suis preneurs. Si possible l'initiation en Français et je peux aller approfondir en anglais.

    Merci d'avance

Discussions similaires

  1. [EJB3] Conseils pour une application non web
    Par bobbk12000 dans le forum Java EE
    Réponses: 1
    Dernier message: 15/05/2009, 11h26
  2. quelques conseils pour une application web vb.net
    Par Gr@nd@x dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/11/2008, 19h34
  3. conseils pour une application à interface web
    Par stdebordeau dans le forum Access
    Réponses: 2
    Dernier message: 16/05/2008, 12h54
  4. demande de conseil conception site web e-commerce
    Par jsdar dans le forum E-Commerce
    Réponses: 4
    Dernier message: 10/04/2007, 16h38
  5. Conseil pour une école (conception web , multimédia)
    Par DonKnacki dans le forum Etudes
    Réponses: 3
    Dernier message: 11/03/2007, 10h55

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