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 :

recuperer dans un string une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Par défaut recuperer dans un string une jsp
    Bonjour,

    A partir d'une servlet, je veux aller exécuter une jsp, et de pouvoir mettre le résultat de mon jsp dans un String, sachant que je dois passer un variable de session à la page jsp.

    j'ai essayé :

    URL url = new URL("http://server:8080/app/page.jsp;jsessionid=" + request.getSession().getId());

    InputStream openStream = url.openStream();

    mais la jsp, ne récupère pas la session !!!

    est ce que quel qu'un à une idée comment faire,

    Merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 111
    Par défaut
    Bonjour,

    Dans une jsp tu as a disposition des objets implicites : out, request, response, session voir ici au chapitre 54.4.2.3. Les variables implicites
    Ainsi la session en cours est disponible dans une jsp sous la forme d'une instance de la classe HttpSession appelée session.

    Par exemple si tu veux récupérer un objet que tu as fixé sur la session sous le nom "name" qui contient un objet String tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String uneString = (String)session.getAttribute("name")

  3. #3
    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
    Citation Envoyé par yorgh1234 Voir le message
    Dans une jsp tu as a disposition des objets implicites : out, request, response, session voir ici au chapitre 54.4.2.3. Les variables implicites
    Ainsi la session en cours est disponible dans une jsp sous la forme d'une instance de la classe HttpSession appelée session.
    Je pense que le problème n'est pas là, c'est pour récupérer "l'exécution" de la page...

    L'url mentionnée référence le même serveur que la servlet ?
    Pourquoi ce traitement ? (je demande parce qu'il pourrait y avoir des solutions plus simples)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Par défaut
    pour cette expression : 'String uneString=(String)session.getAttribute("name")' elle me renvoi 'null' puisque la jsp ne récupère pas la session.

    le but de faire ce genre de traitement, est de pouvoir générer un PDF qui contient le contenu de la jsp.
    La servlet et le jsp se trouvent dans le même serveur (même projet), si t'as une solution, je suis preneur.

    merci.

  5. #5
    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
    Ça me paraît délicat tout de même dans la mesure où le contenu de la page peut inclure des directives qui "formatent" la vue sur le navigateur mais qui perturberont le pdf... dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <font style="font-weight:bold; font-size:14pt">Mon texte</font>
    etc...
    A l'écran, tu verras Mon texte mais <body> contiendra autre chose...

    Tu veux imprimer le source de la page générée ou son "apparence" ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Par défaut
    la source de la page

  7. #7
    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
    Tu pourrais utiliser un taglib pour englober...
    Il suffit de créer une classe étendant BodyTagSupport, de coder la méthode doAfterBody et de récupérer ici le contenu pour en faire ce que tu veux.

    Exemple
    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
     
    package test;
     
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.BodyTagSupport;
     
    public class BodyExtractorTag extends BodyTagSupport
    {
        private static final long serialVersionUID = 1;
     
        @Override
        public int doAfterBody() throws JspException
        {
            String body = getBodyContent().getString();
            System.out.println(body);
            try
            {
                getPreviousOut().write(body);
            }
            catch (Exception e) {}
            return EVAL_PAGE;
        }
    }
    le fichier tld
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
    <taglib>
    <tlibversion>1.2</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>html</shortname>
    <tag>
    <name>body</name>
    <tagclass>test.BodyExtractorTag</tagclass>
    <bodycontent>JSP</bodycontent>
    </tag>
    </taglib>
    La page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%@ taglib uri="/WEB-INF/mesTag.tld" prefix="tag" %>
    <tag:body>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html>
     
    <body>
     
    Bienvenue 
     
    </body>
    </html>
    </tag:body>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Par défaut
    merci beaucoup pour la réponse,

    pour tester, je pense que je dois appeler la page jsp. A partir de ma Servler est ce que je fais new URL("page.jsp") ou il faut faire autrement ? comment je pourrais passer en session un objet à la page jsp ?

    merci,

  9. #9
    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
    Pourquoi ne pas passer par le RequestDispatcher via include ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2007
    Messages : 43
    Par défaut
    ça marche, merci

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

Discussions similaires

  1. Ecrire dans un string à une position X
    Par borgfabr dans le forum VBScript
    Réponses: 1
    Dernier message: 29/05/2013, 11h01
  2. [débutant] Gestion retour à la ligne d'une String dans une JSP
    Par caballero dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2008, 12h14
  3. [formatage d une variable date vers string dans une jsp]
    Par jayjaypg22 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/12/2007, 17h03
  4. recuperer la valeur d'une variable javascript dans une jsp
    Par johnnywalker dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/03/2007, 19h45
  5. Réponses: 8
    Dernier message: 09/06/2006, 16h01

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