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 :

Forcer la compilation d'une jsp


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut Forcer la compilation d'une jsp
    Bonjour,

    J'aurais voulu savoir s'il était possible de forcer la compilation d'une jsp sur un serveur tomcat, sans pour autant forcer la compilation par défaut au démarrage de tomcat de toutes les jsp ?
    Et aussi bien entendu, comment récupérer le flux HTML produit ?

    Merci,

    S.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Si utilises Ant pour déployer, il y a la tâche JSPC qui fait celà.

    Par contre tu n'obtiendras pas du code HTML mais plutôt une classe Java de type Servlet (le code HTML n'est pas forcément le même selon le contexte d'exéction).

  3. #3
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    ok merci, mais en fait, je ne sais pas au début quel page va page va être "pré-compilé", en gros, il faudrait que dans une classe java, je puisse appelé une méthode pour compiler la jsp, et récupérer le flux HTML.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Pourquoi as-tu besoin de pré-compiler certaines JSP ?

    Ca ne prend pas très longtemps à Tomcat de compiler une JSP et c'est seulement la toute première fois que la JSP est demandée qu'elle est compilée.

    Et je persiste à te dire que si tu compiles une JSP, tu ne récupères-pas un flux HTML en sortie.

    Que souhaites-tu faire exactement ?

  5. #5
    SrK
    SrK est déconnecté
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 213
    Par défaut
    En fait, je veux "éxecuter" une jsp dans une classe java pour récupérer la source de la page qui serait fournit à un navigateur.

    Détail, si je ne me suis pas fait comprendre :
    Dans la réalité si j'ai bien compris, je vais sur une page jsp, le serveur tomcat compile la page, et renvoi à mon navigateur le flux HTML qu'il interprète pour que j'ai une jolie page web.

    Je veux donc dans méthode d'une classe java, récupérer le résultat de la compilation d'un fichier donné (que j'aurai fixé en parametre de ma méthode).

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    C'est pas tout à fait ça...

    La compilation :

    - la première fois que quelqu'un appelle une JSP, tomcat la convertie en une servlet Java qu'il dépose dans %CATALINA_HOME%/work/{nomDuContexte}/... ce qui crée un fichier source .java, puis il le compile pour en créer un .class.

    - ensuite lorsque les autres utilisateurs demandent la JSP, s'il voit que le .class associé existe, alors il n'a plus besoin de compiler.

    Ca c'est le processus de compilation des JSP (j'ai simplifié mais grosso-modo c'est ça).

    L'exécution :

    Pour exécuter une JSP, il va chercher la Servlet associé (le .class vu ci-dessus) et il invoque la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public void doService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        PrintWriter out = response.getWriter();
        // contenu de la jsp embarqué dans la servlet
        out.write("<table>");
        out.write("<tr>");
        out.write("<td>");
        ...
    }
    Pour "exécuter une JSP dans une classe Java", on passe par des servlets.

    A l'intérieur d'une servlet tu peux demander d'exécuter une JSP.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/maJSP.jsp");
    dispatcher.include(request, response);
    On peut également passer par les Taglibs, ... mais je ne vois pas quel est ton point d'entrée... (tu veux générer du HTML en mode batch ?)

    Je dois y aller ! Demain je te filerai un coup de main si tu veux !

Discussions similaires

  1. [Struts 1.2] Erreur à la compilation d'une JSP
    Par Jidefix dans le forum Frameworks Web
    Réponses: 1
    Dernier message: 21/10/2010, 17h36
  2. Probleme de compilation d'une jsp
    Par Dryss51 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/03/2008, 15h07
  3. problème de compilation d'une JSP
    Par inabil dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/01/2007, 12h56
  4. Erreur de compilation d'une JSP
    Par casho dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/10/2006, 14h50
  5. probleme de compilation d'une jsp
    Par bruno270579 dans le forum JBuilder
    Réponses: 1
    Dernier message: 22/03/2005, 10h27

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