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 :

[tomcat][stuts]probleme de refresh page jsp


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut [tomcat][stuts]probleme de refresh page jsp
    petit problem de refresh de page jsp
    j'explique mon appli

    je remplis un formulaire
    le controleur de struts recoit les champs du formulaire
    si formulaire valide demande a la classe Action de traiter le formulaire
    dans cette classe Action, creation de plusieurs threads pour une execution en parallele vu que le traitement est long
    dans cette classe Action, ou plutot dans une des classe de travail, j'ai un boolean isTerminate qui m'informe si tout les threads sont termines.
    la classe Action retourne le resultat sans attendre la fin des threads
    dans la page jsp de resultat j'ai indique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <head>
    <META HTTP-EQUIV="refresh" CONTENT="5"> 
    <META HTTP-EQUIV="Expires" CONTENT="0"> 
    </head>
    pour que la page se rafraichisse toute les 5 secondes
    mais le probleme est que lorsque la page se rafraichit pour la 1ere fois, le controleur me renvoit la page d'erreur m'indiquant que "le formulaire n'est pas saisi correctement". Apparemment lors du refresh de la page il renvoi le formulaire ...

    que faire pour que lors du refresh il ne renvoit pas le formulaire, ou comment faire en struts pour que lors d'un traitement qui prend du temps il m affiche une page d'attente ou une page qui se refresh ???

    merci d'avance pour les indiques

    v1nc3kr0

  2. #2
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    bon pas trop de reponse pour le moment
    je vais reformuler mon probleme
    les classe de travail de mon application web prenne du temps a finir l'execution (vu que c'est un scan a faire du reseau)
    donc apres validation du formulaire, il y a un certain temps d 'attente
    et le probleme est que lorsque la page main de mon servlet se charge pendant le scan, la page affiche "le serveur ne repond pas"
    donc pour resoudre ce probleme, je souhaiterai mettre une interface d'attente en testant la valeur d'un boolean isTerminate.
    lorsque ce boolean est à true, l interface d'attente redirige vers une page de resultats places dans la session

    donc pour realiser cette interface d'attente j'ai besoin d'aide

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 56
    Points : 59
    Points
    59
    Par défaut
    J'ai également rencontré un problème de ce genre, et j'ai eu recourt au tag jsp suivant, qui fonctionne très bien : http://www.servletsuite.com/servlets/waittag.htm

    Je pense que tu devrais pouvoir faire quelque chose de pas trop mal adapté avec ça. C'est pratique, et ça permet de mettre un gif animé d'attente : beucoup plus convivial pour l'utilisateur !

    Bon courage

    ToCToF [/code]

  4. #4
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    le probleme est que c'est une servlet java et non une page jsp

    voici mon fichier strut-config.xml :
    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
     
    <struts-config>
    	<form-beans>
            <form-bean name="frmScanner" type="UtilScanner.ScannerDynaForm">
    			<form-property name="ip1" type="java.lang.String" initial=""/>
    			<form-property name="ip2" type="java.lang.String" initial=""/>
    			<form-property name="maxThread" type="java.lang.String" initial=""/>
    			<form-property name="timeout" type="java.lang.String" initial=""/>
    			<form-property name="countPing" type="java.lang.String" initial=""/>
    			<form-property name="hostname" type="java.lang.String" initial=""/>
    			<form-property name="ttl" type="java.lang.String" initial=""/>
    			<form-property name="userName" type="java.lang.String" initial=""/>
    			<form-property name="groupName" type="java.lang.String" initial=""/>
    			<form-property name="computerName" type="java.lang.String" initial=""/>
    			<form-property name="macAddress" type="java.lang.String" initial=""/>
    			<form-property name="httpDetect" type="java.lang.String" initial=""/>
    			<form-property name="ftpDetect" type="java.lang.String" initial=""/>
    		</form-bean>
    		<form-bean name="frmScanner2" type="org.apache.struts.validator.DynaValidatorForm">
    			<form-property name="index" type="java.lang.String" initial=""/>
    		</form-bean>
    	</form-beans>
    	<action-mappings>
    		<action
    			path="/main"
    			name="frmScanner"
    			scope="request"
    			validate="true"
    			input="/error.do"
    			type="UtilScanner.FormulaireAction"
    		>
    			<forward name="reponse" path="/request.do"/>
    		</action>
    		<action
    			path="/main2"
    			name="frmScanner2"
    			scope="request"
    			validate="true"
    			type="UtilScanner.FormulaireAction2"
    		>
    			<forward name="reponse" path="/descriptionRequest.do"/>
    		</action>
    		<action
    		path="/error"
    		forward="/vues/error.jsp"
    		/>
    		<action
    		path="/request"
    		forward="/vues/request.jsp"
    		/>
    		<action
    		path="/request2"
    		forward="/vues/request2.jsp"
    		/>
    		<action
    		path="/formulaire"
    		forward="/vues/formulaire.jsp"
    		/>
    		<action
    		path="/description"
    		forward="/vues/description.jsp"
    		/>
    		<action
    		path="/descriptionRequest"
    		forward="/vues/descriptionRequest.jsp"
    		/>
    	</action-mappings>
    	<message-resources 
    		parameter="ressources.scannerressources"
    		null="false"
    	/>
    	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
            <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                      /WEB-INF/validation.xml"/>
    	</plug-in>
    </struts-config>
    le formulaire que je valide est le formulaire frmScanner
    la servlet controleur recoit la saisie du formulaire frmScanner
    si valide, il demande a la servlet main d'executer la methode execute de la classe UtilScanner.FormulaireAction
    ce qui prend du temps c'est l'execution de cette classe qui fait appel à des classes de travail
    y a t il un moyen de demander à la vue qui est affichee de se rafraichir pour mettre à jour les informations
    si vous voulez j'essaye de trouver le meme procede que le developpement MVC en interface graphique avec SWING ou AWT en demandant à la vue de faire un update()
    je vous indique aussi ma classe UtilScanner.FormulaireAction :
    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
    81
    82
    83
    84
    85
    86
    87
    88
     
    /*
     * Created on 20 juil. 2005
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package UtilScanner;
     
    /**
     * exécution du scan par la structure Struts suivant les champs du formulaire validé
     */
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.DynaActionForm;
     
    import Scanner.*;
     
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
     
    import javax.servlet.ServletException;
     
    public class FormulaireAction extends Action {
     
    	/**
    	 * exécute le scan en fonction des champs saisis dans le formulaire
    	 */
    	public ActionForward execute(ActionMapping mapping, ActionForm form,
    			HttpServletRequest request, HttpServletResponse response)
    			throws IOException,ServletException {
    			//on a un formulaire valide, sinon on ne serait pas arrivé là
    			DynaActionForm formulaire=(DynaActionForm)form;
     
    			Options options=new Options(new Integer((String)formulaire.get("maxThread")).intValue(),new Integer((String)formulaire.get("timeout")).intValue(),new Integer((String)formulaire.get("countPing")).intValue());
     
    			boolean hostname,userName,groupName,computerName,macAddress,ttl,httpDetect,ftpDetect;
    			if(((String)formulaire.get("hostname")).equals("true"))
    				hostname=true;
    			else
    				hostname=false;
    			if(((String)formulaire.get("ttl")).equals("true"))
    				ttl=true;
    			else
    				ttl=false;
    			if(((String)formulaire.get("userName")).equals("true"))
    				userName=true;
    			else
    				userName=false;
    			if(((String)formulaire.get("computerName")).equals("true"))
    				computerName=true;
    			else
    				computerName=false;
    			if(((String)formulaire.get("groupName")).equals("true"))
    				groupName=true;
    			else
    				groupName=false;
    			if(((String)formulaire.get("macAddress")).equals("true"))
    				macAddress=true;
    			else
    				macAddress=false;
    			if(((String)formulaire.get("httpDetect")).equals("true"))
    				httpDetect=true;
    			else
    				httpDetect=false;
    			if(((String)formulaire.get("ftpDetect")).equals("true"))
    				ftpDetect=true;
    			else
    				ftpDetect=false;
    			ScannerOptions scannerOptions=new ScannerOptions(	ttl,
    																hostname,
    																userName,
    																groupName,
    																computerName,
    																macAddress,
    																httpDetect,
    																ftpDetect);
    			//request.setAttribute("scannerOptions",scannerOptions);
    			Scanner scanner=new Scanner((String)formulaire.get("ip1"), (String)formulaire.get("ip2"),scannerOptions,options);
    			scanner.run();
    			request.setAttribute("scanner",scanner);
     
    			return mapping.findForward("reponse");
    			}
    }
    dans cette classe c'est l'appel à la methode scanner.run() qui prend du temps (jusqu a plusieurs minutes). Ce qui fait que le navigateur de l'utilisateur à un moment pense que le serveur ne repond plus vu qu 'il ne recoit pas de page a afficher
    mon souhait serait d'implementer la methode run de la classe Scanner dans un thread, et dans cette methode run demander à la vue de se mettre à jour
    et ca je ne sais pas si c est possible en struts

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    à mon avis il y a plusieurs solutions

    1 - Afficher un message d'attente dans la page que tu valide (formulaire frmScanner).
    Tu peux le faire avec un div contenant un message du genre "Traitement en cours" que tu rends visible au moment de la validation de ton formulaire (methode javascript onsubmit).
    Lorsque ta methode execute sera terminée la nouvelle page sera affichée.
    Reste à corriger le problème de Timeout "le serveur ne repond pas", je pense que c'est ta session qui est expirée (tag <session-timeout> dans web.xml) ou bien une configuration du client (le problème peut arriver avec Mozilla).

    2 - Utiliser la technologie Ajax pour charger les informations que tu souhaite afficher.
    Apres validation du formulaire tu renvoie l'utilisateur vers une page que tu complète au fur et à mesure.
    Cependant il te faut découper ton traitement en morceaux (en fonction des données tu souhaite afficher) et tu ne peux plus mettre ton objet scanner en session (mais l'équivalent des données contenues seront retournées sous format XML ou texte)

  6. #6
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    merci pour ta reponse Pietra,

    j'ai verifier le time out de session est a 30 minutes donc pas de probleme de ce cote
    lorsque il s affiche sur le navigateur "le serveur ne repondu plus" je vois dans le manager du serveur tomcat que le navigateur du client renvoit 3 fois la requete lorsqu'il n'a plus de contact avec le serveur ...

    pour resoudre ce probleme, le meileur moyen c'est d'avoir un page temporaire en attendant la fin de l'ActionForm du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <action 
             path="/main" 
             name="frmScanner" 
             scope="request" 
             validate="true" 
             input="/error.do" 
             type="UtilScanner.FormulaireAction" 
          > 
             <forward name="reponse" path="/request.do"/> 
          </action>
    donc je vous remts le scenario :
    • - saisie du formulaire frmScanner
      - le formulaire est envoye a la servlet controleur main qui doit valider la saisie et ensuite demande a l'ActionForm d'executer sa methode "execute"
      - envoi de la vue request.do pour afficher les resultats de la requete

    entre l'envoi du formulaire et la reception de la vue avec les resultats, il y a un temps assez long.
    si ce temps est trop long, le navigateur de l'utilisateur estime que le serveur ne reponds plus.
    ce que je pensais faire c'est :
    • - dans la methode execute utliser mes classes de travail dans un thread
      - ouvrir une fenetre popup qui indique "scannge en cours veuillez patienter..." avec le temps d'execution et le nombre de machine scanner
      - rafraichir ce popup toute les "t" secondes
      - lorsque le scan est terminee rediriger la fenetre principale vers une page de resultats


    donc mes questions sont comment
    • - demander a la page request.do d'ouvrir un petite fenetre
      - comment faire pour que le popup demande a la page qui l'a cree (donc request.do) de se rediriger vers une autre page (ex : response.do)


    autre question :

    si HttpServletRequest request, request.getSession() represente bien la session de l'utilisateur. Donc mes classes de travail enregistre les resultats par le biais de request.getSession().setAttribute() ???

    j espere que les renseignement sont clairs. Et je remercie d avance pour l'aide

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    en reprenant le conseil de ToCToF et en utilisant la TagLib 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
     
    <%@ taglib uri="taglib.tld" prefix="w" %>
     
    <w:wait>
     
    <w:infoPage>
      Page is being loaded, wait please ...
    </w:infoPage>
     
    <w:realPage>
      <jsp:include page="heavy_code.jsp"/>
    </w:realPage>
     
    </w:wait>
    et si le code execute de ton action form était repris dans la jsp "heavy_code.jsp" ceci devrait fonctionner ?

    En effet il n'est pas possible d'ouvrir une popup depuis le serveur.

    De plus il n'est pas possible d'envoyer plusieurs réponses à une seule requete http.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    celà dit je persite à croire qu'Ajax pourrait être une meilleur solution (notament en affichant les données au fur et à mesure).

    Un lien sur les bluePrints (progress bar et refreshing data)
    https://bpcatalog.dev.java.net/nonav/ajax/index.html

  9. #9
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    merci encore Pietra pour tes soluces
    j'ai trouve enfin une solution adequate a mes envies
    donc dans mon fichier struts_config.xml j'ai ajoute redirect="true" a la page forward :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <action
    			path="/main"
    			name="frmScanner"
    			scope="request"
    			validate="true"
    			input="/error.do"
    			type="UtilScanner.FormulaireAction"
    		>
    			<forward name="reponse" path="/request.do" redirect="true"/>
    		</action>
    aussi, dans mon actionForm j'utilise mes classes de travail dans un Thread
    ce qui fait que mon ActionForm ce termine plus rapidement
    ma page est redirige
    sur la page request.do je fait un refresh toute les t secondes en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <head>
    <META HTTP-EQUIV="refresh" CONTENT="1">
    <META HTTP-EQUIV="Expires" CONTENT="0"> 
    </head>
    et mes classes de travail enregistrent les resultats dans la session
    ce qui fait que dans la ae request.do, je test un boolean isTerminate

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if(scanner.isTerminate){
    		out.print("scan FINI !!!");
    		response.sendRedirect("request2.do");
    	}else{
    		out.print("scannage en cours veuillez patientez ...<br>");
    		if(scanner.getNbHostAlive()==1){
    			out.print(scanner.getNbHostAlive()+" IP a repondu");
    		}else if(scanner.getNbHostAlive()==0){
    			out.print("aucune IP n'arepondu pour le moment");
    		}else{
    			out.print(scanner.getNbHostAlive()+" IP ont repondu");
    		}
    		out.print("<br>isTerminate="+scanner.isTerminate);
    	}
    voila et les resultats finaux je les affiche dans la page request2.do
    voila enfin j'ai trouve une solution pas mal
    c etait juste une option redirect à true

    merci quant même Pietra pour les indics et aussi toctof

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut également pb de refresh
    bonjour,
    j'ai également un pb de refresh de mes pages jsp, j'espère que vous pourrez m'aider.
    En fait je déclare un bean session sur ma page de login.
    Des que je passe sur la page de munu utilisateur qui suit, et si je rafraichit la page, j'ai le message :
    "La page ne peut pas être actualisée sans le renvoi d'information. Cliquez sur recommencer pour renvoyer les informations ou sur Annuler pour essayer de revenir à la page que vous essayiez de consulter."

    Est-ce que vous pourriez me dire comment éviter ce message.
    Il se produit sur les pages jsp des que j'ai commencé à remplir mon bean session.
    merci d'avance

  11. #11
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    salut csa09966,
    pour t aider, peux tu me renseigner sur ton architecture (struts, serveur d'application) si tu utilises struts mets moi la partie de ton fichier struts-config.xml concernant la page d'identification.

    merci

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    salut,
    je suis sous xp pro et j'utilise ie.
    Je travaille avec Tomcat 5.0.28 et jdk 1.4.2_08.

    En fait, j'ai la page de login qui suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- DECLARATIONS JPS -->
    <%@ page language="java" %>
    <%@ page import="java.io.*,java.util.*,sinergie.*"
    %>
    <jsp:useBean id="main" scope="application" class="sinergie.Main">
    <% main.init(); %>
    </jsp:useBean>
     
    <!-- FIN DECLARATIONS JPS -->
    et le formulaire que je rempli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form id="login" name="login" method="post" action="menu_cop.jsp">                            
                                <label for="login">Login : </label><input type="text" name="login" size="8" /><br />
                                <label for="password">Mot de passe : </label><input type="password" name="password" size="8" /><br />
                                <label for="domaine">Domaine : </label><select name="domaine">
    <label>&nbsp;</label><input type="submit" name="connexion" value="connexion" />
    </form>

    J'arrive sur ma page de menu utilisateur :
    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
    <!-- DECLARATIONS JPS -->
    <%@ page language="java" %>
    <%@ page import="java.io.*,java.util.*,sinergie.*"
    %>
    <jsp:useBean id="main" scope="application" class="sinergie.Main" />
    <jsp:useBean id="login" scope="session" class="sinergie.Login" />
    <!-- FIN DECLARATIONS JPS -->
     
    <body>
     
    <!-- VERIF IDENTITE -->
    <%
            login.processRequest(request);  // connexion à ma bd et verif user             
     
            // vérification de l'identification.
            if(!login.isUserOk()) {
    %>
    		<jsp:forward page="deconnexion.jsp?action=10" />
    <%
            } else {
                                                                      
    %>  
    <!-- FIN VERIF IDENTITE -->
              // j'affiche mon menu
    </body>
    Si sur cette page de menu, je fais un refresh, j'ai le message dont je te parle.
    Alors, apparamment, ce ne serait pas lié au jsp, puisque si je supprime mes déclaration jsp et le login.processRequest, ca fait pareil.

    a+

  13. #13
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    ah mon avis le prob est au niveau de la portee des champs
    si ton formulaire a une portee de requete uniquement, si tu rafraichi la page identite tu n'est plus connecte.

    est ce que apres la verification de l'indentiter tu mets le login et password dans la session ?
    si oui il suffit de teste dans la session si login et password
    sinon rediriger vers la page d'identification

    j'espere que j'ai bien compris le probleme mais apparemment c'est apres idetification tu n'enregistres ou tu n'as plus de trace des identites

    v1nc3kr0

  14. #14
    Nouveau membre du Club

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    apparemment la portee des champs login est bien session
    pour etre sûr que login et password soit dans la session, ajoute apres identification pour la premier fois un session.setAttribut() pour login et password

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    salut,
    j'ai essayé et j'ai fait un session.setAttribute(), mais le pb n'est pas résolu.
    Mais mon pb n'est pas du tout une perte de données dans ma session.
    Je ne perd rien de ce que j'ai mis dans mon bean quand je recharge.
    En fait, c'est juste le fait qu'il y ait ce message.
    Je fais le login.processRequest() suivi du test sur if(!login.isUserOk())
    pour éviter qu'un utilisateur n'accède a la page sans s'etre identifié.

    voila.
    Je ne comprends pas pourquoi j'ai ce pb au rafraichissement.
    J'ai programmé d'autres applis en jsp sous tomcat sans jamais avoir ce truc.

    a+

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 58
    Points : 55
    Points
    55
    Par défaut
    Salut,

    J'ai le même "problème", exactement le meme message que toi.

    Mon code dans le fichier config de struts plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            <action path="/send_connexionBean"
    				name="formConnexionID"			
    				type="struts.myPackage.action.ConnexionUserAction"
    				validate="true"
    				input="/erreursConnexion.do"
    				scope="session"
                >
    			<forward name="succesConnexion" path="/succesConnexion.do"/>
    			<forward name="erreursConnexion" path="/erreursConnexion.do"/>		
            </action>

    Une explication de mon coté :

    je me log => ça déclenche une Action associé au path /send_connexionBean qui prend en compte les données du formulaire.
    J'arrive sur une page menu, mon url est celle du path associé a l'Action, donc en gros :
    http://localhost/MyProject/send_connexionBean.do

    Là je raffraichi, si jcomprend bien... donc on redemande l'envoie de la page "http://localhost/MyProject/send_connexionBean.do "

    et jpense que le message n'est justement pas un problème, il indique juste que cette page menu nécessite
    - le renvoie du Bean formulaire ("formConnexionID" dans mon cas) vu qu'on reappelle l'Action send_connexionBean. Et effectivement, il refait la validation du Bean formulaire avant detre recup dans l'Action
    - ou... d'annuler ! lol

    Donc le message n'est pas un problème , c'est plutot une info..

    Du coup ya une question que jme pose :
    pourquoi une fois que l'Action renvoie le forward vers "succesConnexion" (la page menu), j'ai
    http://localhost/MyProject/send_connexionBean.do (le path de l'Action donc)
    au lieu de
    http://localhost/MyProject/succesConnexion.do (le path du menu)


    (parce que si on avait la 2e URL, on raffraichirait une page qui nous afficherait pas de pop up cette fois ci ! vu que l'on appelle pas l'Action ) ....

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 58
    Points : 55
    Points
    55
    Par défaut
    et bien la réponse est sous les yeuses lol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
            <action path="/send_connexionBean"
    				name="formConnexionID"			
    				type="struts.myPackage.action.ConnexionUserAction"
    				validate="true"
    				input="/erreursConnexion.do"
    				scope="session"
                >
    			<forward name="succesConnexion" path="/succesConnexion.do" redirect="true"/>
    			<forward name="erreursConnexion" path="/erreursConnexion.do"/>		
            </action>
    avec un redirect="true", ça m'affiche bien

    http://localhost/MyProject/succesConnexion.do

    une fois la méthode execute de l'Action terminée.

    Et là je peux raffraichir sans voir la pop up

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    salut à tous,
    j'ai enfin trouvé ce que c'était.
    Il fallait mettre method=get et non post dans mon formulaire.
    Au rechargement, get ne renvoie pas les données du formulaire, alors que post oui.

    Je vous remercie pour votre aide, les réponses que vous m'avez données m'ont permis de comprendre d'ou venait mon pb.
    Sans échanger avec d'autres développeurs, on n'arrive vraiement à rien

    merci encore

    a+
    céline

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    rebonjour,
    alors je n'en sortirai jamais.
    Quand je me sers de method=get, le login et mot de passe apparaissent en clair dans l'url.
    Je suis donc obligée de me servir de method=post et donc j'ai toujurs le meme pb.
    si qqn a une idée.....
    céline

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    salut,
    apparamment, s'après mes recherches, le fait qu'on passe le formulaire en post fait que les données du formulaire sont renvoyées au rechargement de la page.

    Est-ce que quelqu'un sait comment faire pour bloquer l'envoi des données du formulaire

    merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. tomcat n'affiche pas les pages jsp
    Par bassam0205 dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 20/11/2007, 10h34
  2. probleme avec une page jsp
    Par tareksc dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 17/05/2007, 10h06
  3. [JSP][Struts][Debutant]Probleme de liens dans pages JSP
    Par bluefox_du_974 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/12/2004, 16h17
  4. [EJB+JSP+Tomcat] Appel d'une page JSP à partir d'un bean
    Par Hakkou dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 02/06/2004, 15h26
  5. [Tomcat] [eclipse] probleme au lancement de mes jsp
    Par sandusa dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 11/05/2004, 14h59

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