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 :

[init] Recupérer un fichier properties et l'utiliser


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut [resolu][init] Recupérer un fichier properties et l'utiliser
    Bonjour à tous,

    Voila pour me faire la main avec J2EE j'aimerai me créer une petite application utilisant une bas de données.
    Pour le moment j'ai installé Struts, et le tout tourne sous Tomcat 5.0.28 dans Eclipse 2.1.3
    J'aimerai pouvoir récupérer des informations de conf issu d'un fichier properties : par exemple les infos de connections à la base et pouvoir les utiliser pendant toute la vie de l'application. En quelque sorte un objet static qui est instancié des que le premier utilisateur se connecte sur l'appli !!
    Ma question est surement simple à régler si j'utilise les fonctions de Struts , mais j'aimerai que mon travaille ne soit pas "maché" pour le moment afin que je puisse comprendre le mécanisme de la chose. Donc je ne veux pas utiliser Struts pour ca ..........

    En fait j'aimerai lire le fichier properties et initialiser la connection à la base à la premiere connexion ( et en allant plus loin on pourrait dire , quelque soit la page JSP ou la servlet appellé).

    Quelqu'un pourrait il m'expliquer, me donner un exemple ou un lien afin que je puisse réaliser cette premiere brique de mon application.

    Merci par avance de vos réponses.

    B.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    tu peux te faire une servlet avec l element
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <load-on-startup>1</load-on-startup>
    et dans la servlet (qui ne doit pas etre mappee avec une uri), dans la methode init, tu fais ton traitement d initilisation

    Pour cette servlet tu peux aussi definir un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        <init-param>
          <param-name>properties-init-file</param-name>
          <param-value>WEB-INF/classes/.../tonFichier.properties</param-value>
        </init-param>
    pour specifier les chemin du fichier de properties

    ++

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2002
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 108
    Points : 98
    Points
    98
    Par défaut
    il y a plusieurs choses à voir :
    - comment lire et récupérer des données d'un fichier, à priori un fichier properties ?
    - comment se connecter à une base de données ?
    - le mode de fonctionnement d'une web app ?
    - le mode de fonctionnement de Struts ?

    Donc, eesaie de répondre à toutes ces questions, tu verras mieux

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci benjamin de ta réponse,

    j'ai reussi a voir ou situer mon code pour le faire, mais comme le dit Trungsi effectivement mon pb est plus profond !!!

    En fait oui je ne sais pas comment récupérer et lire mon fichier properties meme en le déclarant comme tu viens de le faire dans le web.xml, aurais tu un exemple ?

    Trungsi, merci de ta méthode qui va surement mieux me permette d'aprehender mon code et la logique j2ee. Donc je vais essayer de la suivre mais si vous avez des liens je suis preneur !!!

    Citation Envoyé par
    SEMPERE Benjamin
    il y a plusieurs choses à voir :
    (qui ne doit pas etre mappee avec une uri)
    qu'entend tu par la ??

    Thanks

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      <!-- Logger initialization servlet -->
      <servlet>
        <servlet-name>logger-init</servlet-name>
        <servlet-class>tonPackage.ClioLoggerInitServlet</servlet-class>
     
        <init-param>
          <param-name>logger-init-file</param-name>
          <param-value>WEB-INF/classes/.../logging/log4j.properties</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    voila pour declarer ta servlet!!! dans ton web.xml

    voila le code de ta servlet
    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
    30
    31
    32
    33
    34
    35
    36
    37
     
        //Constants
        private static final String LOGGER_INIT_FILE_PATH = "logger-init-file";
        private static final String CONTEXT = "/";
     
     
        /**
         * Initalization of the servlet
         */
        public void init() {
            String prefix = getServletContext().getRealPath(CONTEXT);
            String file = getInitParameter(LOGGER_INIT_FILE_PATH);
     
            // if the log4j-init-file is not set, then no point in trying
            if (file != null) {
                try {
                    //Logger configuration loading
                    Properties properties = new Properties();
                    properties.load(new FileInputStream(prefix + file));
                    PropertyConfigurator.configure(properties);
     
                } catch (SecurityException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
     
     
        public void doGet(HttpServletRequest req, HttpServletResponse res) {
        }
    ceci est un cas d utilisation pour l initialisation du logger log4j a partir d un servlet (au demarrage de l appli Web)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci benjamin, je vais essayer ca en rentrant ce soir chez moi !!!

    et apres comment puis je inttéroger ma servlet, en tapant son URL

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    il ne faut pas l interroger!!! elle est invoquee automatiquement au demarrage de ton appli (1 fois), elle a le role d initializer

    ++

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    OK je comprend mieux, c'est le serveur web qui s'en charge au démarage....thanks, je vous tiens au courant pour le test du code

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    c pour ca qu elle n est pas mappee a une URI dans le web.xml comme le serait une autre servlet

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    merci Ben,

    mais je pourrais aussi faire passer toute mes servlets par un Controleur générique et dans ce controleur instancier un objet static ?
    Auquel cas je n'ai plus a passer par le loading du serveur au démarrage ?

  11. #11
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    ben la methode que je te propose n est pas unique... Jakarta conseille d utiliser cette methode la pour le logging d applications Web avec log4j

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci de ta patience et de ta disponibilité

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Donc j'ai fait mes test et ca fonctionne super bien , merci pour tout ben, j'ai juste une derniere question pour cloturé ce thread :

    Quand on fait appelle a la variable getServletContext ca renvoit le contexte de servlet, et tout ce que j'ai stoqué dedans sera accessible par toute les servlets ? Car dans ma servlet loader au démarage j'ai mis dans le context un objet de parametrage et lorsque je l'appelle d'une autres servlet je le récupère bien !!!

  14. #14
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Points : 948
    Points
    948
    Par défaut
    Ben avec getServletContext tu accede au scope "application"

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci pour tout Ben

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/04/2008, 16h47
  2. utilisation d'un fichier properties.
    Par Mobistar dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 08/06/2007, 12h35
  3. Utiliser plusieurs fichiers properties
    Par guilhemr dans le forum Struts 1
    Réponses: 5
    Dernier message: 05/10/2006, 10h04
  4. [struts] utiliser plusieurs fichiers properties
    Par jaimepasteevy dans le forum Struts 1
    Réponses: 7
    Dernier message: 03/10/2003, 17h02

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