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] transfert de contrôle


Sujet :

Servlets/JSP Java

  1. #1
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut [Servlet] transfert de contrôle
    Bonjour

    Une petite suite à mon thread de page d'attente.
    Voici mon problème. J'ai une page JSP où je remplis un formulaire. Pour un clic submit, je suis redirigé vers une servlet dite "page d'attente". Cette servlet passe le relais à une autre servlet dite de Processing où je mouline les données. Le problème se situe lors du passage entre la première servlet et la deuxième puisqu'apparemment, je perds des données en cours de route (un de mes paramètres est null).
    Voici comment je passe le relais dans ma première servlet :
    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
     
    session.setAttribute("waitPage", null);
    			java.util.Enumeration e = request.getParameterNames();
    			java.util.ArrayList al = new java.util.ArrayList();
    			while(e.hasMoreElements()){
    				al.add(e.nextElement());
    			}
    			if(al.size()>0){
    				java.util.Iterator it = al.iterator();
    				while(it.hasNext()){
    					if(it.next().toString().compareTo("job")==0){
    						javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("archives.jsp");
    						rd.forward(request, response);
    					}
    				}
    			}
    			javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("Prediction");
    			rd.forward(request, response);
    Merci d'avance de vos réponses et n'hésitez pas si j'ai été brumeux.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Histoire de faire avancer le fil, voici un peu plus de détails.
    Ma première page est donc un formulaire avec comme balise form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="parameters" method="post" action="Wait">
    Voici le code de ma servlet Wait :
    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
     
    public class Wait extends HttpServlet {
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
    		doPost(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html");
    		java.io.PrintWriter pw = response.getWriter();
    		javax.servlet.http.HttpSession session = request.getSession(true);
    		if ( session.getAttribute("waitPage") == null ) {
    			session.setAttribute("waitPage", Boolean.TRUE);
    			pw.println("<html><head>");
    			pw.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">");
    	        pw.println("<meta http-equiv=\"Refresh\" content=\"0\"></head><body>");
    	        pw.print("<div class=\"Waiting\">");
    	        pw.print("<img src=\"img/toplogo.jpg\"><br /><img src=\"img/wait_a.gif\">");
    	        pw.print("<br /><span class=\"spanwait\">Please, wait while processing</span></div>");
    		}
    		else{
    			session.setAttribute("waitPage", null);
    			java.util.Enumeration e = request.getParameterNames();
    			java.util.ArrayList al = new java.util.ArrayList();
    			while(e.hasMoreElements()){
    				al.add(e.nextElement());
    			}
    			if(al.size()>0){
    				java.util.Iterator it = al.iterator();
    				while(it.hasNext()){
    					if(it.next().toString().compareTo("job")==0){
    						javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("archives.jsp");
    						rd.forward(request, response);
    					}
    				}
    			}
    			javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("Prediction");
    			rd.forward(request, response);
    		}
    	}
     
    }
    Enfin, le code de ma 2ème servlet censé faire le process des données. Je l'ai remanié pour qu'elle m'affiche les arguments censés être "rangés" dans une Hashtable :
    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
     
    public class Prediction extends HttpServlet {
     
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		doPost(req, resp);
    	}
     
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		resp.setContentType("text/html");
    		java.io.PrintWriter pw = resp.getWriter();
    		Parameters params = new Parameters();
    		params.setParameters(req, pw);
    		params.printParameters(pw);
    }
    }
    Avec ceci, j'observe que ma table de hachage (contenu dans l'objet params) est vide . Or, si je n'appelle pas Wait mais directement Processing depuis mon formulaire, tout marche correctement.
    Pourquoi cette bizarrerie ?

    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    question : tu n'as qu'un seul contexte, ou tes deux servlets seraient dans deux contextes différents ?

    autre question : pourquoi une servlet qui aurait des traitements "métier" ? Normalement, il s'agirait d'une classe ( singleton par exemple ) qui aurait les traitements. Je ne comprend pas pourquoi le choix de rediriger vers une autre servlet ?

    Sinon je vois mal pourquoi ton exemple bug; essaie de faire ça en incrémental, en testant avec très peu de lignes de code, puis progressivement en ajoutant certaines lignes de code jusqu'à trouver celle qui fait tout planter..

    Comme ça à première vue, j'ai du mal à voir d'où pourrait venir le pb. A+
    K

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Salut KiLVaiDeN et merci de ta réponse.

    Mes servlets sont dans le même contexte.
    Par contre, si j'ai choisi de faire 2 servlets, c'est parce qu'initialement, la deuxième servlet (Processing) était directement appelé par mon formulaire. La servlet Wait est un développement récent et j'aurais voulu la connecter directement sans trop d'embarras. Apparemment, je perds des données entre la 1ère et la deuxième servlet.

    Merci encore pour l'aide.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Pê ça marche mieux comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.servlet.RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/Prediction");
    K

  6. #6
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Hello KiLVaiDeN

    Je pense que le problème vient du rafraîchissement de ma servlet Wait.java car je perds mes données à ce moment là.
    Y a t'il un moyen plus fin de bien transférer mes données ?
    Sinon, je vais tenter ta solution.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  7. #7
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    @ KiLVaiDeN

    Malheureusement, ta solution m'amène à la même erreur.
    Non, le problème est vraiment le transfert d'infos dans Wait.java. J'ai dû oublier quelque chose mais quoi.....

    Merci d'avance

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  8. #8
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Ne serait-ce pas à cause du fait que tu fais des print, puis ensuite un forward ?

    Il me semble que si tu fais des print, tu envoies déjà la réponse au navigateur, et donc le forward interviendrait trop tard ?

    A+
    K

  9. #9
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Même si je ne fais pas de print, le problème reste le même.
    Je te remercie toutefois KiLVaiDeN de ton aide.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  10. #10
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    response.setContentType("text/html"); << cette ligne aussi envoie un header je pense.. Sans en être sûr.
    K

  11. #11
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Même en l'enlevant ce n'est pas ça
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  12. #12
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Commence par faire un forward tout simple, sans aucun traitement dans ta servlet Wait. Ca devrait fonctionner à la base, si ta servlet Wait ne fait que jouer le role "d'un proxy", si je peux me permettre l'analogie.

    Ensuite, au fur et à mesure, ajoute des lignes. Et tu verras bien le moment où ça plante comme ça.
    K

  13. #13
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Bon, on va simplifier et prendre des classes plus simples.
    Soit cette page index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%@ page language="java" %>
    <!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
    <html>
    <head>
    </head>
    <body bgcolor="#FFFFFF">
    Let's wait a while !
    <form method="post" action="Wait">
    <br /><input type="text" name="text" value="toto">
    <br /><input type="submit" value="submit">
    </form>
    </body>
    </html>
    Voici la première servlet Wait:
    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
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Wait extends HttpServlet {
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException{
    		doPost(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html");
    		java.io.PrintWriter pw = response.getWriter();
    		javax.servlet.http.HttpSession session = request.getSession(true);
    		if ( session.getAttribute("waitPage") == null ) {
    			session.setAttribute("waitPage", Boolean.TRUE);
     
    	        pw.println( "<html><head>" );
    	        pw.println( "<meta http-equiv=\"Refresh\" content=\"0\"></head><body>" );
    	        pw.print("<img src=\"img/wait_a.gif\" alt=\"We are waiting !\">");
    		}
    		else{
    			session.setAttribute("waitPage", null);
    			javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("Processing");
    			rd.forward(request, response);
    		}
    	}
     
    }
    Voici la 2ème servlet Processing:
    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
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Processing extends HttpServlet {
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		doPost(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html");
    		java.io.PrintWriter pw = response.getWriter();
    		Thread t = new Thread(){
    			public void run(){
    				try{
    					sleep(5000);
    				}
    				catch(InterruptedException ie){}
    			}
    		};
    		t.start();
    		DatabaseConnector dc = new DatabaseConnector();
    		int x=100;
    		Reponse rep = new Reponse();
    		rep.reponse = x;
    		rep.text = request.getParameter("text");
    		request.setAttribute("reponse", rep);
    		RequestDispatcher rd = request.getRequestDispatcher("results.jsp");
    		rd.forward(request, response);
    	}
     
    }
    Voici un bean:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public class Reponse {
    	public int reponse;
    	public String text;
    }
    Et la dernière jsp d'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <%@ page language="java" %>
    <!DOCTYPE HTML PUBLIC "-//w3c//dtd html 4.0 transitional//en">
    <html>
    <head>
    </head>
    <body bgcolor="#FFFFFF">
    <jsp:useBean id="reponse" class="com.bioxpr.servlet.Reponse" scope="request" />
    <%= reponse.reponse %><br />
    <%= reponse.text %><br />
    It was fantastic, isn't it ?
     
    </body>
    </html>
    Tout va bien, excepté que l'affichage de reponse.text est null.
    Vous voyez un peu plus mon problème ?
    Merci d'avance.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  14. #14
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Je testerais avec :

    Servlet wait, méthode doPost
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("Processing");
    			rd.forward(request, response);
    		}
    	}
    Servlet Processing, méthode doPost
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		int x=100;
    		Reponse rep = new Reponse();
    		rep.reponse = x;
    		rep.text = request.getParameter("text");
    		request.setAttribute("reponse", rep);
    		RequestDispatcher rd = request.getRequestDispatcher("results.jsp");
    		rd.forward(request, response);
    	}
    Si ça marche, il y a un pb, soit dans tes Thread, soit ailleurs.. Je n'arrive pas à voir comme ça où est le problème, mais il faut que tu le debug petit à petit, sinon ça va être dur de trouver.
    K

  15. #15
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Je pense avoir trouvé la solution par rapport à mon petit exemple.
    Voici le code remanié des 2 servlets :
    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
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Wait extends HttpServlet {
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException{
    		doPost(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html");
    		java.io.PrintWriter pw = response.getWriter();
    		javax.servlet.http.HttpSession session = request.getSession();
    		if(request.getParameter("text")!=null)
    			session.setAttribute("text",request.getParameter("text"));
    		if ( session.getAttribute("waitPage") == null ) {
    			session.setAttribute("waitPage", Boolean.TRUE);
    			pw.println( "<html><head>" );
    	        pw.println( "<meta http-equiv=\"Refresh\" content=\"0\"></head><body>" );
    	        pw.print("<img src=\"img/wait_a.gif\" alt=\"We are waiting !\">");
    		}
    		else{
    			session.setAttribute("waitPage", null);
    			javax.servlet.RequestDispatcher rd = request.getRequestDispatcher("Processing");
    			rd.forward(request, response);
    		}
    	}
     
    }
    Et la deuxième :
    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
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class Processing extends HttpServlet {
     
    	protected void doGet(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		doPost(request, response);
    	}
     
    	protected void doPost(HttpServletRequest request,
    			HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html");
    		java.io.PrintWriter pw = response.getWriter();
    		Thread t = new Thread(){
    			public void run(){
    				try{
    					sleep(10000);
    				}
    				catch(InterruptedException ie){}
    			}
    		};
    		t.start();
    		DatabaseConnector dc = new DatabaseConnector();
    		int x=0;
    		try{
    			dc.connect();
    			x = dc.getNumberLines("select * from Primers, amplicons where amplicons.num_amplicon=Primers.num_amplicon");
    			dc.close();
    		}catch(Exception e){
    			e.printStackTrace(pw);
    		}
    		Reponse rep = new Reponse();
    		rep.reponse = x;
    		rep.text = request.getSession().getAttribute("text").toString();
    		request.setAttribute("reponse", rep);
    		RequestDispatcher rd = request.getRequestDispatcher("results.jsp");
    		rd.forward(request, response);
    	}
     
    }
    Avec ça, j'affiche ce qu'il faut.
    Reste plus qu'à passer à grande échelle !

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  16. #16
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    Youpi, c'était bien ça ! Ô joie, ô bonheur !!!

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  17. #17
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Bravo, j'ai pas bien compris ce que tu as changé, peux-tu me dire ce qui clochait vite fait ?
    K

  18. #18
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Service Delivery Manager
    Inscrit en
    Janvier 2003
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Service Delivery Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 852
    Points : 4 759
    Points
    4 759
    Par défaut
    En bref, le rafraîchissement était correct, excepté que mes données n'étaient pas transféré. Donc, dès le premier appel de la servlet Wait, je les place dans une session. De ce fait elle ne sont pas perdues et même plus facilement retrouvées par la deuxième.
    Voilà Merci encore à toi pour tes axes de recherches.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

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

Discussions similaires

  1. [Applet]Transfert d'objet serialisé applet/servlet
    Par fanou28 dans le forum Applets
    Réponses: 7
    Dernier message: 22/02/2010, 21h45
  2. Réponses: 6
    Dernier message: 10/03/2007, 11h42
  3. Servlet : transfert de fichier binaires
    Par biniou14 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/09/2006, 10h10
  4. [JSP] Transfert de contrôle et erreur
    Par GLDavid dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 18/09/2006, 16h19
  5. Transfert d'un objet d'une JSP vers une Servlet
    Par biohazard dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 21/06/2004, 16h51

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