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 :

Initialisation d'application web


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut Initialisation d'application web
    Bonjour a tous,

    Je me penche assez nouvellement sur la question du dev java web et j'ai une petite question a ce sujet.

    J'ai lu a pas mal d'endroit que pour charger un fichiers de paramètre en mémoire de mon applis, on devait créer une servlet qui serait charger au lancement. Pas de soucis pour tout définir la servlet, le chargement et tout le reste mais ... pourquoi une servlet spécifiquement ? Ne pourrait-on pas définir une "simple classe" qui serait appeler au démarrage ?

    Merci pour vos réponses ?

    Syberi@
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Salut,

    Je ne m'étais jamais vraiment posé la question, mais si on réfléchie c'est plutôt logique.

    Dans une application Web, on n'a pas vraiment de point d'entré comme un "main" dans une application desktop. Pourtant il faut bien pouvoir charger le paramétrage avant de lancer l'application.

    L'utilisation d'une Servlet permet d’exécuter du code pendant le lancement du serveur d'application -> avant que ton application soit disponible. C'est donc parfait pour charger le paramétrage. En fait cela représente plus ou moins le mécanisme que tu décris pour "charger une simple classe" au démarrage.

    Après on peut aussi utiliser un listener à la place si on souhaite pouvoir profiter d'évènements spécifiques (création de contexte par exemple). Mais encore faut il en avoir l'utilité.

    Cdt.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Syberi@ Voir le message
    Ne pourrait-on pas définir une "simple classe" qui serait appeler au démarrage ?

    Syberi@
    Si, ça s'appelle un ServletContextListener, et si le but est d'intervenir au démarrage / arrête de la webapp, c'est bien plus propre que de coder une Servlet qui ne sert à rien d'autre que bouffer de la ressource.


    http://docs.oracle.com/javaee/6/api/...tListener.html
    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
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import javax.servlet.annotation.WebListener;
     
    @WebListener
    public class MonListener implements ServletContextListener {
     
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            System.out.println("On Demarre");
        }
     
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("On arrête");
        }
     
    }

  4. #4
    Membre régulier
    Homme Profil pro
    Expert Middleware
    Inscrit en
    Septembre 2006
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Expert Middleware

    Informations forums :
    Inscription : Septembre 2006
    Messages : 75
    Points : 100
    Points
    100
    Par défaut
    Merci pour vos réponses.

    Par contre, pour les ServletContextListerner, si je comprend bien elles sont appelées a chaque appel utilisateur. Ma question était plus générale, pour charger des variables au démarrage de l'application qui seraient dans le Scope Application
    Quand on est mort, on ne sait pas qu’on est mort, c’est pour les autres que c’est difficile… Quand on est con, c’est pareil.

  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    C'est bien ce que t'as répondu Tchize:

    void contextInitialized(ServletContextEvent sce)
    Receives notification that the web application initialization process is starting.
    All ServletContextListeners are notified of context initialization before any filters or servlets in the web application are initialized.

    Parameters:
    sce - the ServletContextEvent containing the ServletContext that is being initialized

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Syberi@ Voir le message
    Merci pour vos réponses.

    Par contre, pour les ServletContextListerner, si je comprend bien elles sont appelées a chaque appel utilisateur.
    Tu comprends mal.
    Ne confond pas ServletContextListener (qui est lié au context de ton application web) et ServletRequestListener (qui lui surveille chaque requête)

Discussions similaires

  1. Comment faire des etats pour une application web ?
    Par ovh dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 06/07/2021, 03h25
  2. [Débutant][Application web] : web.xml + includes jsp
    Par silver_dragoon dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 12/02/2004, 20h46
  3. [installeur] Le couteau suisse des applications web
    Par Tournesol dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 05/01/2004, 17h19
  4. Debuggage d'une application WEB-TOMCAT
    Par oziller dans le forum JBuilder
    Réponses: 3
    Dernier message: 07/02/2003, 23h10
  5. Réponses: 4
    Dernier message: 04/07/2002, 12h31

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