AJAX response conflit

Résolu
Jim -  
 Jim -
Bonjour,

J'ai un problème avec ma redirection ajax, utilisant response. La redirection fonctionne parfaitement mais, plus tard, quand je dois retourner un booléen avec response, celui-ci retourne la redirection vers launch.html et non pas true ou false.

Voilà le code. Les lignes concernées sont commentées :

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Worker extends HttpServlet {

    private static final long serialVersionUID = 1L;
    private static String firstName = "";
    private static String lastName = "";
    private static boolean doAnimWheel = false;
    private static String portion;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        // begin recovering form
        Worker.firstName = request.getParameter("firstName");
        Worker.lastName = request.getParameter("lastName");

        response.sendRedirect("launch.html"); // TODO trouver pourquoi cela bloque response
        // end recovering form

        String param = request.getParameter("srcId");
        if(param != null) {
            if(param.equals("launch")) {
                Worker.doAnimWheel = new Boolean(request.getParameter("doAnimWheel")).booleanValue();
                return;
            }
            else if(param.equals("wheel")) {
                response.setContentType("text/plain");
                PrintWriter out = response.getWriter();
                out.print(Worker.doAnimWheel); // Ici je veux retourner un booléen, mais c'est launch.html qui est retourné
                out.flush();
                out.close();
                return;
            }
            else if(param.equals("result")) {
                Worker.portion = request.getParameter("portion");
                Worker.doAnimWheel = new Boolean(request.getParameter("doAnimWheel")).booleanValue();
                return;
            }
        }
    }
}

1 réponse

  1. Jim
     
    C'est bon, j'ai résolu mon problème. J'ai fais ainsi :

        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            
            // begin recovering form
            String form = request.getParameter("form");
            if(form != null){
                Worker.firstName = request.getParameter("firstName");
                Worker.lastName = request.getParameter("lastName");
                
                response.sendRedirect("launch.html");
                form = null;
            }
            // end recovering form
            
            String param = request.getParameter("srcId");
            if(param != null) {
                if(param.equals("launch")) {
                    Worker.doAnimWheel = new Boolean(request.getParameter("doAnimWheel")).booleanValue();
                    return;
                }
                else if(param.equals("wheel")) {
                    response.setContentType("text/plain");
                    PrintWriter out = response.getWriter();
                    out.print(Worker.doAnimWheel);
                    out.flush();
                    out.close();
                    return;
                }
                else if(param.equals("result")) {
                    Worker.portion = request.getParameter("portion");
                    Worker.doAnimWheel = new Boolean(request.getParameter("doAnimWheel")).booleanValue();
                    return;
                }
            }
        }
    0