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 :

Une redirection qui ne s'effectue pas


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut Une redirection qui ne s'effectue pas
    Bonjour,
    J'ai un problème lors de l'utilisation d'un formulaire d'inscription , je voudrai tout simplement en faite si la confirmation du mail est différente du mail alors l'utilisateur est renvoyé a la page d'inscription
    mon log d'erreur
    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
    juin 22, 2012 10:31:12 AM org.apache.catalina.core.StandardWrapperValve invoke
    Grave: Servlet.service() for servlet [jsp] in context with path [/WebApplication1] threw exception [An exception occurred processing JSP page /traitement.jsp at line 51
     
    48: cp =request.getParameter("CodePostal");password=request.getParameter("Password");%>
    49: <% if(!(email).equals(remail)){
    50:     System.out.println("Email=! confirmation email.. le mail est "+email +"la confirmation est "+ remail);%>
    51:           <jsp:forward page="inscription.jsp"/>
    52:         <%!boolean nn= true;%><%}%>
    53:         <c:if test="${nn}"> 
    54:         <jsp:forward page="inscription.jsp"/></c:if>
     
     
    Stacktrace:] with root cause
    java.io.IOException: Erreur: Tentative d''effacement d''un tampon qui a déjà été vidangé (flush)
    	at org.apache.jasper.runtime.JspWriterImpl.clear(JspWriterImpl.java:152)
    	at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:725)
    	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:716)
    	at org.apache.jsp.traitement_jsp._jspService(traitement_jsp.java:143)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    	at java.lang.Thread.run(Thread.java:722)
    la page en question:
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <html>
        <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
        <%@page import="java.util.*" %>
        <%@page import="java.awt.*"%>
        <%@page import="javax.servlet.*"%>
        <%@page import="java.sql.*"%>
        <%@page import="javax.sql.*"%>
        <%@page import="javax.naming.*"%>
        <%@page import="javax.servlet.http.*"%>
        <%@page import="fr.Client"%>
        <%@page import ="javax.servlet.http.HttpSession"%>
     
     
        <!--******************************************************************************
        Connexion au serveur à remplacer par du JSTL 
        *******************************************************************************-->
     
     
        <head>
            <title>Le Site Web</title>
        </head>
    <jsp:include page="login.jsp" />
        <link rel="stylesheet" type="text/css" href="style.css">
        <body>
     
     
     
            <BR><BR>
            <BR>
            <BR>
            <!--*******************************************************************
    utilisation de JSTL pour verifier basiquement les paramètre du formulaire
    *******************************************************************-->
            <%!Connection cnx = null;%>
     
            <%         Class.forName("com.mysql.jdbc.Driver");
                cnx = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/mabase", "root", "anthony1991");
               
    %>
            <%     Statement req = cnx.createStatement();
                Statement a = cnx.createStatement();
                Statement b = cnx.createStatement();
    String remail,repass,email,nom,prenom,age,sexe,pays,ville,adresse,cp,password;
     remail=request.getParameter("ReMail");        repass=request.getParameter("ConfPass");
    email=request.getParameter("Mail");nom=request.getParameter("Nom");prenom=request.getParameter("Prenom");
    age=request.getParameter("Age");sexe=request.getParameter("Sexe");pays=request.getParameter("Pays");
    ville=request.getParameter("Ville"); adresse=request.getParameter("Adresse");
    cp =request.getParameter("CodePostal");password=request.getParameter("Password");%>
    <% if(!(email).equals(remail)){
        System.out.println("Email =! confirmation email.. le mail est "+email +"la confirmation est "+ remail);%>
              <jsp:forward page="inscription.jsp"/>
              <c:redirect url="inscription.jsp"/>
            <%!boolean nn=false;%><%}%>
            <c:if test="${nn==false}"> 
            <jsp:forward page="inscription.jsp"/></c:if>
                <jsp:useBean id = "Client" class="fr.Client" scope = "session" >
                    <jsp:setProperty name="Client" property="mail"    value="${email}"/>
                <jsp:setProperty name="Client" property="nom"    value="${nom}"/>
                <jsp:setProperty name="Client" property="prenom"    value="${prenom}"/>
                <jsp:setProperty name="Client" property="age"    value="${age}"/>
                <jsp:setProperty name="Client" property="sexe"    value="${sexe}"/>
                <jsp:setProperty name="Client" property="pays"    value="${pays}"/>
                <jsp:setProperty name="Client" property="ville"    value="${ville}"/>
                <jsp:setProperty name="Client" property="adresse"    value="${adresse}"/>
                <jsp:setProperty name="Client" property="codePostal"    value="${cp}"/>
                <jsp:setProperty name="Client" property="motDePasse"    value="${password}"/>
                </jsp:useBean>
    <%! boolean a = false;%>
                <% if(Client.ExistBase(cnx, email)==true){%>
                 <c:out value="${Client}">                    
            <jsp:forward page="erreurInscription.jsp"/>
                    </c:out>
                <%}%>     
                    <% Client.insertBase(cnx);
                    %>
                    <c:out value="Inscription validée si la redirection ne fonctionne pas cliquer <a href='Inscription.jsp'>ici</a><BR><BR>"/>
                    <jsp:forward page="ListeClient.jsp"/>
                 Votre nom est <%=request.getParameter("Nom")%>
        </body>             
    </html>
    ps je veux faire ça trés simplement , merci d 'avance , j'utilise simplement pour le moment des jsp et des beans

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut
    Bonjour,

    Et bien tout d'abord, les différentes variables que tu essayes de comparer peuvent ne pas être initialisées !

    Essayes de faire :
    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
    String remail="";
    String repass="";
    String email="";
    String nom="";
    String prenom="";
    String age ="";
    String sexe="";
    String pays="";
    String ville="";
    String adresse="";
    String cp="";
    String password="";
    if(request.getParameter("ReMail")!=null){
        remail=request.getParameter("ReMail");
    }
    if(repass=request.getParameter("ConfPass")!=null){
        repass=request.getParameter("ConfPass");
    }
    if(email=request.getParameter("Mail")!=null){
        email=request.getParameter("Mail");
    }
    if(nom=request.getParameter("Nom")!=null){
        nom=request.getParameter("Nom");
    }
    if(prenom=request.getParameter("Prenom")!=null){
        prenom=request.getParameter("Prenom");
    }
    if(age=request.getParameter("Age")!=null){
        age=request.getParameter("Age");
    }
    if(sexe=request.getParameter("Sexe")=!null){
        sexe=request.getParameter("Sexe");
    }
    if(pays=request.getParameter("Pays")!=null){
        pays=request.getParameter("Pays");
    }
    if(ville=request.getParameter("Ville")!=null){
        ville=request.getParameter("Ville");
    }
    if(adresse=request.getParameter("Adresse")!=null){
        adresse=request.getParameter("Adresse");
    }
    if(cp =request.getParameter("CodePostal")!=null){
        cp =request.getParameter("CodePostal");
    }
    if(password=request.getParameter("Password")!=null){
        password=request.getParameter("Password");
    } 
    //Ensuite tu rajoute une conditions afin de verifier que l'utilisateur n'a pas laisser les 2 adresses vide ;)
    if((!email.equals(remail)) && (!email.equals(""))){
    //tes traitements
    }
    J'ai remarqué que tu a une page inscription.jsp (ligne 55) et une autre Inscription.jsp (ligne 76) ? Erreur de ta part ? Sinon, fais attention, ce genre de choses peut vraiment rendre une reprise ou la compréhension difficile...

    Voila, retiens moi au courant

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    Bonjour,
    Merci de ta réponse , et j'ai vérifié avec des SOP et mes variables sont bien initialisées.
    Et pour les inscription ce n'est pas une erreur de ma part , c'est juste deux manières de retourner aux formulaire d'inscription si les données sont fausses.
    Après j'ai vérifie lorsque les deux champs ne correspondent pas , la boucle est bien effectué mais la redirection avec le jsp forward non :/

    l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.io.IOException: Erreur: Tentative d''effacement d''un tampon qui a déjà été vidangé (flush)

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Par défaut
    Bonjour,

    Ton erreur dit que ta jsp a tenté de faire une forward vers une autre JSP. Cependant c'est impossible car, avant, ta jsp a déjà envoyé des données au client ! Il ne faut donc pas générer d'affichage (même de simple <BR>) avant tes forward je pense...

    Cependant, je ne comprend pas : Dans la 1ere version de ton Exception, Il n'y avait qu'un forward seul. Quand tu a copié collé ta jsp, on peux voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <jsp:forward page="inscription.jsp"/>
              <c:redirect url="inscription.jsp"/>

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Par défaut
    oui j'ai mis un c:redirect car le forward ne faisait rien donc j'ai voulu essayé comme ça et ça ne marchait pas non plus et tu as raison il ne faut pas faire afficher le graphique pour que le redirection fonction , c'est bizarre quand meme
    merci

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/09/2006, 15h48
  2. [Surnaturel] Une fonction qui marche en débug, pas en release
    Par 10_GOTO_10 dans le forum C++Builder
    Réponses: 6
    Dernier message: 04/07/2006, 14h22
  3. [VB.NET] autopostback qui ne s'effectue pas
    Par pcdj dans le forum ASP.NET
    Réponses: 5
    Dernier message: 21/06/2006, 13h50
  4. [VBA-E]une boucle qui ne s'arrète pas
    Par vivelesgnous dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/02/2006, 18h05
  5. [C#] Redirection qui ne s'effectue pas
    Par Ditch dans le forum ASP.NET
    Réponses: 5
    Dernier message: 18/10/2004, 20h35

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