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 :

appel de servlet dans une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut appel de servlet dans une jsp
    Bonjour,


    Quelqu'un peut me dire comment appeler le servlet ci-dessous dans la page jsp ?
    En fait, j'ai récupéré le code depuis un autre post dans ce forum car le post est déjà marqué résolu.

    Merci d'avance de votre réponse.

    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
    public class PDFServlet extends HttpServlet {
    	 public void doGet(HttpServletRequest request, HttpServletResponse response)
         throws ServletException, IOException {
     
     
     
    response.setContentType("application/pdf");
    OutputStream out = response.getOutputStream();
     
    		File fichier = new File(NOM_DU_FICHIER);
    			try {
     
    				BufferedInputStream in = new BufferedInputStream(new FileInputStream(fichier));
    				byte[] buffer = new byte[1024];
    				int read = in.read(buffer, 0, buffer.length);
    				int i=0;
    				while (read != -1) {
    					out.write(buffer, 0, read);
    					read = in.read(buffer, 0, buffer.length);
    				}
    				in.close();
    				out.flush();
    				out.close();
     
    			} catch (FileNotFoundException e) {
    					e.printStackTrace();
    			} catch (IOException e) {
    					e.printStackTrace();
    			}
    	 }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    doGet(request, response);
    }
     
    }

  2. #2
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Il faut que tu la declare dans ton web.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <servlet>
    <servlet-name>LeNomDeTaServlet</servlet-name>	
    <servlet-class>package.LaClassDeTaServlet</servlet-class>
    </servlet>
    ensuite le mapping de ta servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <servlet-mapping>
    		<servlet-name>LeNomDeTaServlet</servlet-name>
    		<url-pattern>/LeNomDeTaServlet</url-pattern>
    </servlet-mapping>
    ensuite tu peux faire un lien dans ta jsp du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <c:url value="/LeNomDeTaServlet" var"servlet" />
    <a href=${servlet}>lien</a>

  3. #3
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    en fait, j'ai intégré tout le code au sein d'un servlet qui existait déjà dans mon application.

    Donc je pense que les 2 premières étapes , je n'ai pas à faire.

    J'ai essayé la 3e étape dans ma page jsp
    <c:url value="/LeNomDeTaServlet" var"servlet" />
    <a href=${servlet}>lien</a>

    et tout ce que ça fait c'est un lien qui s'appelle lien : lien
    et quand je clique dessus, j'ai le message d'erreur : la page est introuvable

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Et bien tu devrais vérifier ton web.xml quand même.
    Car c'est certainement là que ca coince.

    Tu peux nous montrer son contenu ?

  5. #5
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Dans mon web.xml il y a plusieurs servlets. Voici ce qui concerne la servlet en question:

    <servlet>
    <servlet-name>ContentAction</servlet-name>
    <display-name>ContentAction</display-name>
    <servlet-class>package.ContentAction</servlet-class>
    </servlet>

    <servlet-mapping id="ServletMapping_1">
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
    <servlet-name>ContentAction</servlet-name>
    <url-pattern>ContentAction</url-pattern>
    </servlet-mapping>

    Merci

  6. #6
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Tu as oublié le '/'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <servlet-mapping>
    <servlet-name>ContentAction</servlet-name>
    <url-pattern>/ContentAction</url-pattern>
    </servlet-mapping>

  7. #7
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    J'ai ajouté le / mais cela ne change rien.

    D'ailleurs, si je me souviens bien car cela date un peu, cela dépend du serveur d'application (jboss, weblo, websphere...) qu'on doit mettre le / ou pas

  8. #8
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    A l'exécution, comment est généré ton tag ${servlet} ?
    Tu as :

    1) <a href="/LeNomDeTaServlet">Lien</a>

    ou

    2) <a href="/nomServeurWeb/LeNomDeTaServlet">Lien</a>


    1) ne peut pas trouver, 2) si...

    Tu peux éventuellement passer par du code simple dans ta JSP, un truc comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<%=request.getContextPath()%>/LeNomDeTaServlet">Lien</a>
    A+

  9. #9
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    C'est super ! je ne comprends pas trop ce que je fais là mais ça marche!!
    MERCI!!

    juste une dernère chose:
    si je veux ouvrir maintenant directement le pdf dans ma page jsp sans être obligée de cliquer sur lien, comment je fais ?

  10. #10
    Membre confirmé Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Points : 576
    Points
    576
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    A l'exécution, comment est généré ton tag ${servlet} ?
    Tu as :

    1) <a href="/LeNomDeTaServlet">Lien</a>

    ou

    2) <a href="/nomServeurWeb/LeNomDeTaServlet">Lien</a>


    1) ne peut pas trouver, 2) si...

    Tu peux éventuellement passer par du code simple dans ta JSP, un truc comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="<%=request.getContextPath()%>/LeNomDeTaServlet">Lien</a>
    A+
    Le tag <c:url /> n'est pas censé spécifier justement le contextPath ?

  11. #11
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Je ne sais pas ce que signifie le <c:/> mais j'ai enlevé <c:url value="/ContentAction" var"servlet" /> de ma page et ça marche toujours.

    C'est <a href="<%=request.getContextPath()%/LeNomDeTaServlet">Lien</a>
    qui l'a fait marcher et maintenant j'aimerais bien ne plus afficher une page interdémaire avec juste le lien mais que çe m'ouvre directement le pdf depuis ma page jsp principale.

    Vous voyez ce que je veux dire ?

    D'ailleurs, où est ce qu'on regarde le tag ${servlet} ? Merci

  12. #12
    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
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Le plus simple pour afficher un pdf, c'est de donner directement l'url du document plutôt que de passer par un lien... (si c'est possible)
    Donc, la page qui appelle ta page contenant le lien n'a qu'à appeler directement le fichier pdf et tu l'afficheras directement...

    Sinon, si tu passes par une servlet, il faut construire une sortie avec un type "application/pdf" en envoyer le flux via response.getOutputStream()

    A+

  13. #13
    Candidat au Club
    Inscrit en
    Février 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    en fait la partie "application/pdf" pour envoyer envoyer le flux via response.getOutputStream() c'est déjà mise dans le cod edu servlet.

    Ce que je viens de faire c'est dans le struts-config.xml, j'ai mis /nomdema servlet à la place de la page jsp qui contient le lien.

    ça marche, ça m'ouvre le pdf mais quand je clique sur <=, je ne reviens pas sur ma page jsp mais je reste sur le document pdf

Discussions similaires

  1. récupérer l'instance d'une servlet dans une jsp
    Par thierry_b dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/11/2009, 23h50
  2. [Debutant] Appels de méthodes dans une JSP
    Par michaeljeru dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 05/06/2008, 11h56
  3. Réponses: 2
    Dernier message: 03/04/2007, 15h33
  4. Inclure une servlet dans une JSP
    Par keopsk dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 26/06/2006, 11h44

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