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 :

demande d'explication -> inclusion d'un servlet dans une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut demande d'explication -> inclusion d'un servlet dans une jsp
    bonjour,

    j'ai lu pas mal de doc sur jsp et je fait du java depuis quelque temps déja mais il y a une chose que je ne comprend pas :

    une page jsp : maitre.jsp
    un servlet : esclave

    maitre affiche une page web avec du html
    esclave affiche le contenu d'une base de donnees et manie bcp de code java

    lorsque j'inclue esclave (afin d'afficher un contenu pertinant issu d'un traitement) au milieu de maitre.jsp, il me manque tout l'affichage de la fin de maitre.jsp

    j'utilise <jsp:include page="/server"/> qui d'apres la doc fait ce que je cherche a faire...

    si j'ai compris include :
    maitre.jsp affiche son contenu,
    il donne la main a esclave
    esclave affiche lui aussi son contenu,
    esclave rend la main a son maitre.jsp
    le maitre.jsp finit d'afficher le contenu

    (= un sous programme en fait )

    prenons cet exemple tout simple :

    -- index.jsp --
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>
    <html><head></head><body>
     
    mot d'avant la jsp
    <jsp:include page="/server">
        <jsp:param name="req" value="1"/>
    </jsp:include>
    mot d'apres la jsp qui ne s'affiche pas dans cette configuration
    </body></html>
    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
     
    package test;
     
    import java.io.*;
    import java.net.*;
     
    import javax.servlet.*;
    import javax.servlet.http.*;
     
    public class server extends HttpServlet {
     
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException 
        {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter o = response.getWriter();
     
            if(request.getParameter("req")!=null)
            {
                String number_request=request.getParameter("req");
                if(number_request.equals("1"))
                    o.println(request.getParameter("req"));
                else
                    o.println("ce n'est pas un un");
            }
            o.close(); 
        }
    }
    quelqu'un a une idée ?

    je suis sur netbeans avec java 1.5

    voila bonne journée
    cordialement mathieu

    ps j'ai le beau message d'erreur suivant qui s'affiche dans les log de tomcat 5,5

    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
     
    3 avr. 2007 13:48:42 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.io.IOException: Stream closed
            at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:203)
            at org.apache.jasper.runtime.JspWriterImpl.clearBuffer(JspWriterImpl.java:159)
            at org.apache.jsp.menuajax_jsp._jspService(menuajax_jsp.java:80)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
            at java.lang.Thread.run(Thread.java:613)
    3 avr. 2007 13:48:43 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: "Servlet.service()" pour la servlet jsp a généré une exception
    java.io.IOException: Stream closed
            at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:203)
            at org.apache.jasper.runtime.JspWriterImpl.clearBuffer(JspWriterImpl.java:159)
            at org.apache.jsp.menuajax_jsp._jspService(menuajax_jsp.java:80)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
            at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
            at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
            at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
            at java.lang.Thread.run(Thread.java:613)
    ps: j'ai pas trouvé d'indication sur le forum je n'ai peut etre pas fait la bonne recherche...

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Points : 439
    Points
    439
    Par défaut
    dans ta servlet, tu fais un :
    or, l'object "o" est la writer de la response.... donc, après l'exécution de ta servlet, tu as une exception "Stream closed"....
    Essaye en mettant en commentaire le "o.close();"
    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
    public class server extends HttpServlet {
        
        protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException 
        {
            response.setContentType("text/html;charset=UTF-8");
            PrintWriter o = response.getWriter();
     
            if(request.getParameter("req")!=null)
            {
                String number_request=request.getParameter("req");
                if(number_request.equals("1"))
                    o.println(request.getParameter("req"));
                else
                    o.println("ce n'est pas un un");
            }
            /*o.close(); */
        }
    }

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    mes respects ! celà marche c'était pas évident et surtout bien vue de ta part

    merci bcp
    je comprend mieux en fait le fonctionnement maintenant :-)

    a bientot

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

Discussions similaires

  1. Récuperer un tableau de string d'une servlet dans une JSP
    Par Thibault92 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/06/2011, 14h42
  2. 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
  3. appel de servlet dans une jsp
    Par narnia dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 21/02/2008, 16h53
  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