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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    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
    Par défaut [JSP/JQuery/Servlet] Problème avec SendRedirect
    Bon mon soucis est un peu long a expliquer mais je pense que c'est un soucis tres commun mais je n'ai pas trouvé la solution tout seul.

    alors en gros j'ai ma JSP qui affiche un formulaire ,
    le bouton est un type "button" pas "submit" ( on verra pourquoi ^^ )(du coup pas de balise FORM)
    lorsque l'on clique sa active un JS qui envoie la requete POST a ma servlet,

    la servlet fait plein de verification et renvoie des messages derreur ( dans ce cas JS l'affiche dans le formulaire , truc du genre " invalid user " )
    ou bien s'il n'y a pas d'erreur la servlet continue les traitement et fait un SENDREDIRECT ,

    les message system.out.println saffiche tous dans la console de glassfish mais la page de mon browser ne change pas ... que se passe t il ?

    PS: j'ai mis button et pas submit sinon ma servlet est appelé deux fois et c'est la misere.

    merci beaucoup d'avance. Si vous avez besoin de codes je peux les poster mais il y en a un paquet.

  2. #2
    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
    Par défaut
    Citation Envoyé par wonay Voir le message
    alors en gros j'ai ma JSP qui affiche un formulaire ,
    le bouton est un type "button" pas "submit" ( on verra pourquoi ^^ )(du coup pas de balise FORM) mais il y en a un paquet.
    C'est pas parceque t'as pas de bouton submit que tu mettras pas de balise form, le bouton submit a juste la particularité de soumettre tout le formulaire dans lequel il est invoqué en appelant automatiquement l'action serveur, mais par souci (ou même contrainte de de validité du W3C) il te faut tout structurer dans une form.fais nous voir ton code jsp et la servlet appelée.

  3. #3
    Membre averti
    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
    Par défaut
    J'avais tout posté mais cest beaucoup trop de codes, cest stupide. j'ai refait un exemple tout con :

    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
    @Override
        public void doGet(HttpServletRequest request, HttpServletResponse response)
    					throws IOException, ServletException{
     
            System.out.println("Page: REINSTALL(GET)");
            Init(request, response);
     
            if(ParameterNumber == 0){
                System.out.println("Init REINSTALL Page");
                System.out.println("Lang = " + session.getAttribute("Lang").toString());
                request.setAttribute("LangCore", LangCore);
                if(InstallerXML.isAlreadySet()){
                    System.out.println("Setting Exists.");
                    dispatch = request.getRequestDispatcher("ReInstall.jsp");
                    dispatch.forward(request, response);
                    return;
                } else {
                    System.out.println("Setting NOT Exists.");
                    response.sendRedirect("INSTALL");
                    return;
                }
           }
        }
     
        @Override
        public void doPost(HttpServletRequest request, HttpServletResponse response)
    					throws IOException, ServletException{
     
            System.out.println("Page: REINSTALL(POST)");
            Init(request, response);
     
            if(request.getParameter("Reset") != null){
               boolean reset = (request.getParameter("Reset").compareToIgnoreCase("TRUE") == 0);
               System.out.println("Reset setting: " + reset);
               if(reset){
                   System.out.println("Delete setting. Success: " + InstallerXML.reset());
                   response.sendRedirect("INSTALL");
                   return;
               } else {
                   System.out.println("Canceled, go to login page.");
                   response.sendRedirect("LOGIN");
                   return;
               }
            }
            return;
        }
    JSP

    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
    <%@ include file="include/header.jsp" %>
    <LINK rel="stylesheet" href="design/ReInstall.css" type="text/css"/>
    <script src="js/ReInstall.js"></script>
    <%@ include file="include/headPage.jsp" %>
     
     
     
    <div class="Content">
    <div class="InstallDiv">
        <fieldset>
        <legend>Re<%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("Install") %></legend>   
            <fieldset class="SubBorder">
                <legend class="IDTitle"><%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("DBReset") %></legend>
                    <p class="PCenter">
                        <input id="ValidationResetDBButton" type="button" value="OK"/>
                        <input id="CancelResetDBButton" type="button" value="<%= ((Lang)request.getAttribute("LangCore")).GetLangVersion("Cancel") %>"/>
                    </p>
                    <p class="PCenter"><label class="ERROR" id="result_DB_display">&nbsp;</label></p>
            </fieldset>
        </fieldset>
            </div>
    </div>
     
    <%@include file="include/footer.jsp" %>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    $(function(){
     
        $("input#ValidationResetDBButton").click(function(){
           var parameter = "Reset=" + true;
           SendInstallRequest(parameter,function(output){
     
            });
        });
     
        $("input#CancelResetDBButton").click(function(){
           var parameter = "Reset=" + false;
           SendInstallRequest(parameter,function(output){
     
            });
        });
     
    });
     
    function SendInstallRequest(params,f){
        var http = new XMLHttpRequest();
        var url = "REINSTALL";
     
        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);
    }
    et mon log :

    La je vais sur ma page REINSTALL

    INFO: Page: REINSTALL(GET)
    INFO: Init REINSTALL Page
    INFO: Lang = EN
    INFO: Setting Exists.
    La je clique sur OK on reset les reglages
    INFO: Page: REINSTALL(POST)
    INFO: Reset setting: true
    INFO: Delete setting. Success: true
    La Servlet fait un SendRedirect vers INSTALL
    INFO: Page: INSTALL(GET)
    INFO: Init INSTALL Page
    INFO: Lang = EN
    INFO: Setting NOT Exists.
    mais a cette etape la page web n'a absolument pas changé je dois faire un refresh pour relancer le procédé et etre redirigé vers la page correct.

  4. #4
    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
    Billets dans le blog
    1
    Par défaut
    Mais où est le code de la fonction "f" ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre averti
    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
    Par défaut
    bah la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SendInstallRequest(parameter,function(output){
     
            });
    ici j'en ai pas besoin, il y a pas de traitement d'erreur possible c'est juste deux bouttons. OK / Cancel

  6. #6
    Membre averti
    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
    Par défaut
    Personne ne sait resoudre ce soucis ?

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