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 :

[JSP/JQuery/Servlet] Problème avec SendRedirect


Sujet :

Servlets/JSP Java

  1. #21
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    En gros jai un formulaire, au moment ou on valid, on fait une requete au serveur si tout est ok on switch de page sinon on reste sur la meme mais on affiche un ptit message derreur.

    Pour faire sa jai mon js qui intercepte le forlulaire, le renvoi au servlet, le servlet lanalyse et renvoie une erreur au js si yen a.
    si le js recoi quelque chose il affiche une erreur, sinon la servlet fait un Sendredirect.

    Je lai deja fait plusieurs fois et sa fonctionne mais pour cette page des fois il est envoyer deux fois, jai bidouiller et maintenant il est envoyer mais la redirection marche pas.

  2. #22
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par wonay Voir le message
    Pour faire sa jai mon js qui intercepte le forlulaire, le renvoi au servlet, le servlet lanalyse et renvoie une erreur au js si yen a.
    Une servlet ne cause pas avec un script js directement, une servlet echange un document html/(ou jsp devant produire un html), la js ne sait communiquer qu'avec ton DOM.
    Ceci
    Citation Envoyé par wonay Voir le message
    Pour faire sa jai mon js qui intercepte le forlulaire, le renvoi au servlet, le servlet lanalyse et renvoie une erreur au js si yen a.
    si le js recoi quelque chose il affiche une erreur, sinon la servlet fait un Sendredirect.
    n'est pas cohérent avec ceci :
    Citation Envoyé par wonay Voir le message
    Au fur et à mesure de la saisie ? ==> Ouaip
    J'ai l'impression que tu nous menes an bateau là

  3. #23
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Je post les script de la page ce soir, vous comprendrez peut etre mieu ce que je veux faire.

  4. #24
    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
    Citation Envoyé par DevServlet Voir le message
    Une servlet ne cause pas avec un script js directement, une servlet echange un document html/(ou jsp devant produire un html), la js ne sait communiquer qu'avec ton DOM.
    Ajax est là pour causer avec une servlet depuis le javascript et une servlet n'est pas limitée au html, heureusement d'ailleurs...

  5. #25
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Ajax est là pour causer avec une servlet depuis le javascript et une servlet n'est pas limitée au html, heureusement d'ailleurs...
    Ah merci ! ^^

  6. #26
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Donc voila mon soucis :

    j'ai ce formulaire :

    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
    <%@ include file="include/header.jsp" %>
    <LINK rel="stylesheet" href="design/Install.css" type="text/css"/>
    <script src="js/Install.js"></script>
    <%@ include file="include/headPage.jsp" %>
     
     
     
    <div class="Content">
    <div class="InstallDiv">
        <fieldset>
        <legend><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("Install") %></legend>   
            <fieldset class="SubBorder">
                <legend class="IDTitle"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("DBTitle") %></legend>
                <form id="ValidationDBForm" method="POST">
                <p><label for="DBHost"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("Host") %></label><input type="text" id="DBHost" name="DBHost" /></p>
                <p><label for="DBPort">Port: </label><input type="text" id="DBPort" name="DBPort" /></p>
                <p><label for="DBDBName"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("DBName") %></label><input type="text" id="DBDBName" name="DBDBName" /></p>
                <p><label for="DBUserName"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("username") %></label><input type="text" id="DBUserName" name="DBUserName" /></p>
                <p><label for="DBPsw"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("psw") %></label><input type="password" id="DBPsw" name="DBPsw" /></p>
                <p class="PCenter"><input class="button" id="ValidationDBButton" type="submit" value="OK"/></p>
                <p class="PCenter"><label class="ERROR" id="result_DB_display">&nbsp;</label></p>
                </form>
            </fieldset>
        </fieldset>
            </div>
    </div>
     
    <%@include file="include/footer.jsp" %>
    qui est lié a ce JS

    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
    $(function(){
     
        $('form#ValidationDBForm').submit(function(){
            $('label#result_display').html("&nbsp;");
            var itsok = true;
            var Host = $('input#DBHost').val();
            var username = $('input#DBUserName').val();
            var psw = $('input#DBPsw').val();
            var port = $('input#DBPort').val();
            var DBName = $('input#DBDBName').val();
     
            var parameter = "DBHost=" + Host + "&DBUserName=" + username + "&DBPsw=" + psw + "&DBPort=" + port + "&DBName=" + DBName;
     
            SendInstallRequest(parameter,function(output){
                $('label#result_display').html("&nbsp;");
    ici cest le traitement des erreurs
    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
     
                if (output.indexOf("ERROR--")!=-1){
                    var outputredif = output.replace("ERROR-- ","").replace("PSW ", "").replace("USER ", "").replace("HOST ", "").replace("PORT ", "").replace("NAME ", "");
     
                    if(output.indexOf("USER ") != -1){
                        $('input#DBUserName').focus();
                    }
                    if(output.indexOf("PSW ") != -1){
                        $('input#DBPsw').focus();
                    }
     
                    if(output.indexOf("NAME ") != -1){
                        $('input#DBDBName').focus();
                    }
     
                    if(output.indexOf("PORT ") != -1){
                        $('input#DBPort').focus();
                    }
     
                    if(output.indexOf("HOST ") != -1){
                        $('input#DBHost').focus();
                    }
     
                    $('label#result_DB_display').text(outputredif);
     
                    itsok = false;
                }
            }); // fin sendrequest
            return itsok;
        });
     
    });
    et la cest la fonction d'envoi de requete
    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
     
    function SendInstallRequest(params,f){
        var http = new XMLHttpRequest();
        var url = "INSTALL";
     
        http.open("POST", url, false);
     
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader("Content-length", params.length);
        http.setRequestHeader("Connection", "close");
     
        http.onreadystatechange = function() { //Call a function when the state changes.
                if(http.readyState == 4 && http.status == 200) {
                       f(http.responseText);
                }
        };
     
        http.send(params);
    }
     
    runOnLoad(function(){
        $("input#DBHost").focus();
    });
    et tout ça est managé par la 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
    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
     
        @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response)
    					throws IOException, ServletException{
     
            System.out.println("Page: INSTALL(GET)");
            Init(request, response);
     
            if(ParameterNumber == 0){
                System.out.println("Init INSTALL Page");
                System.out.println("Lang = " + session.getAttribute("Lang").toString());
                request.setAttribute("LangCore", LangCore);
                if(InstallerXML.isAlreadySet()){
                    System.out.println("Setting Exists.");
                    response.sendRedirect("REINSTALL");
                    return;
                } else {
                    System.out.println("Setting NOT Exists.");
                    dispatch = request.getRequestDispatcher("Install.jsp");
                    dispatch.forward(request, response);
                    return;
                }
           }
        }
     
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response)
    					throws IOException, ServletException{
     
            System.out.println("Page: INSTALL(POST)");
            Init(request, response);
            if(request.getParameter("DBPort")!= null && request.getParameter("DBHost")!= null && request.getParameter("DBUserName")!= null && request.getParameter("DBPsw")!= null && request.getParameter("DBName")!= null){
                String Host = request.getParameter("DBHost");
                String Username = request.getParameter("DBUserName");
                String Psw = request.getParameter("DBPsw");
                String Port = request.getParameter("DBPort");
                String Name = request.getParameter("DBName");
     
                if(!Security.InputValid(Host)){
                    out.print("ERROR-- HOST " + LangCore.GetLangVersion("WrongHost"));
                    return;
                }
                if(Security.InputParse(Port).compareToIgnoreCase(Security.INVALID) == 0){
                    out.print("ERROR-- PORT " + LangCore.GetLangVersion("WrongPort"));
                    return;
                }
                if(!Security.InputValid(Name)){
                    out.print("ERROR-- NAME " + LangCore.GetLangVersion("WrongDBName"));
                    return;
                }
                if(!Security.InputValid(Username)){
                    out.print("ERROR-- USER " + LangCore.GetLangVersion("WrongUser"));
                    return;
                }
                if(!Security.InputValid(Psw)){
                    out.print("ERROR-- PSW " + LangCore.GetLangVersion("WrongPSW"));
                    return;
                }
     
                try {
                    InstallerXML.Writer(Username, Psw, Host, Port,Name);
                    DBLink.getInstance(new GetSetting(pathInstall), new GetDBStructure(pathRessources)).GlobalDBReset();
                } catch (Exception ex) {
                    Logger.getLogger(Installer.class.getName()).log(Level.SEVERE, null, ex);
                }
                response.sendRedirect("LOGIN");
                return;
            }
     
            return;
        }

  7. #27
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    et donc des fois a la fin du traitement il reste sur .../INSTALL et une page vierge s'affiche et des fois il est rediriger correctement vers .../LOGIN mais dans ce cas le formulaire a ete envoyé deux fois.

    c'est a s'arracher les cheveux !

Discussions similaires

  1. Problème avec la redirection d'une page JSP avec ma servlet
    Par sasuki_mirak dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 23/03/2015, 14h19
  2. [débutant][servlet]Problème avec Servlet login
    Par stago dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 10/05/2005, 00h05
  3. [tomcat] [jsp] Problème avec driver OCI pour oracle
    Par nanardcompanie dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/07/2004, 09h54
  4. [struts][JSP][select] problème avec le select
    Par redge_touch dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/01/2004, 10h05
  5. [jsp]problème avec request.getParameter(...)!
    Par fadoua dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 01/09/2003, 13h26

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