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 :

[Servlet] Fichiers d'initialisation


Sujet :

Servlets/JSP Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut [Servlet] Fichiers d'initialisation
    Salut,

    Je voudrais savoir s'il était possible de passer des arguments à une servlet avant qu'elle soit chargée ? On m'a dit que c'était possible, mais je n'ai pas trouvé comment faire.

    Actuellement, la servlet appelle une classe qui lit dans un fichier et qui récupère toutes les lignes de ce fichier et les repasse à la servlet.

    Si vous avez des idées.

    Merci d'avance.

  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Points : 138
    Points
    138
    Par défaut
    Oui, c'est possible

    dans ton fichier web.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <servlet>
       ...
     
       <init-param> 
          <param-name>param</param-name>
          <param-value>ValeurParam</param-value>
       </init-param>
    </servlet>

    Tu peux ensuite accéder a tes paramètres grâce a la méthode javax.servlet.ServletContext.getInitParameter().


    PS: Je crois que tu t'es gourré de forums (vois du coté J2EE)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    OK, merci ça marche.

    Mais en fait j'ai un petit problème : j'ai déclaré dans le fichier web.xml les différents paramètres s'initialisation et ma servlette se présente ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class PremiereServlet extends HttpServlet
    {
        public void doPost(HttpRequestServlet req, HttpResponseServlet, ServletContext servletContext) {
     
    .....monparam1 = servletContext.getInitParameter("param1");
    .....
     
       }
    }
    Mais en fait, cette permière servlette appelle via un formulaire une autre servlette et là j'ai un problème pour passer le servletContext. Faut-il le passer en argument ? Car dans ma deuxième servlette, ça plante si je le mets dans les arguments de la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public void doPost(HttpRequestServlet req, HttpResponseServlet, ServletContext servletContext)
    Merci d'avance pour toute réponse.
    A+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Désolé pour la faute de frappe, mais c'est "HttpServletRequest" et "HttpServletResponse".

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Bon, en fait je pensais que ça passait, mais en fait non depuis que j'ai déclaré le ServletContext, ça ne va plus, j'obtiens l'erreur 400 suivant :

    "La méthode HTTP POST n'est pas supportée par cette URL
    La requête envoyée par le client était syntaxiquement incorrecte (La méthode HTTP POST n'est pas supportée par cette URL)."

    En fait dans ma servlet, je passe le ServletContext de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void doPost(HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) throws IOException, ServletException
    {.....
    firstServer = servletContext.getInitParameter("firstServ");
    ......}
    Mais je ne sais pas pourquoi ça ne marche plus, peut être que ça n'a jamais marché.
    Merci pour toute réponse.

    A+

  6. #6
    Membre habitué

    Profil pro
    Inscrit en
    Février 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 119
    Points : 138
    Points
    138
    Par défaut
    Mais tu peux pas faire ce que tu fais !!!!!!!!!!!

    La déclaration de la méthode doGet doit rester comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    protected void doPost(HttpServletRequest req,
                           HttpServletResponse resp) throws ServletException, IOException
    Essaye avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    getServletContext().getInitParameter("firstServ")

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Justement, j'ai déjà essayé et ça ferme brutalement Tomcat.

    J'ignore pourquoi, mais j'ai eu le même problème avec la lecture de fichiers depuis une servlet. A l'époque les fichiers devaient être placés à l'endroit suivant sur Tomcat :

    webapps\examples\mon_fichier.txt

    On y accédait de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String pathFile = getServletConfig().getServletContext().getRealPath("/")+fileName;
    Et de cette manière, ça fonctionnait.

    Par contre, maintenant, si je saisis cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String firstServer = getServletContext().getInitParameter("firstServ");
    Le fichier web.xml où est déclaré le paramètre "firstServ" se trouve à l'adresse suivante :
    webapps\examples\WEB-INF\

    Bon, si quelqu'un a une idée....Merci d'avance.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Points : 148
    Points
    148
    Par défaut
    Bon ça y est, j'ai trouvé.

    Dans ma servlette, j'ai déclaré une méthode "init" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void init()
    {
    ......
       String firstServer = this.getInitParameter("firstServ");
    ......
    }
    En complétant le fichier web.xml, on obtient ce qu'il faut.
    Voilà, a+.

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

Discussions similaires

  1. Fichier d'initialisation CSSD (ASM) sous Window
    Par agdid04 dans le forum Administration
    Réponses: 0
    Dernier message: 25/11/2009, 17h16
  2. Réponses: 2
    Dernier message: 08/06/2008, 11h33
  3. Modifier paramètre OPEN_CURSORS du fichier d'initialisation
    Par motorenshi dans le forum Administration
    Réponses: 4
    Dernier message: 21/11/2007, 17h22
  4. [Servlet] Fichier xls protégé apres envoi au client
    Par romdelf dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 03/10/2005, 16h41
  5. créer un fichier d'initialisation de la base de données
    Par jan0 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 07/09/2005, 08h45

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