Danish Ali
Danish Ali

Reputation: 147

IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:463)

I am trying to redirect to a jsp after successful completion of a task but I am getting the following error:

java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:463)

I have tried most of the steps as explained on the internet but some of them are not making sense.

Here is what I am doing:

           --- In Servlet ---

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub

    String action = request.getParameter("action");

    HttpSession session = request.getSession();

    if(action.equals("Complete Order"))
    {
        CartItems[] obj = (CartItems[])session.getAttribute("Cart");

        OrderDAO od = new OrderDAO();

        for(int i=0;i<obj.length;i++)
        {
            od.insert_order(obj[i]);
            String[] t = od.getOrderIDs(obj[i].getOrder_Date(),obj[i].getUserID());

            int len = (t.length);

            System.out.println(len);

            int l = Integer.parseInt(t[len-1]);

            System.out.println(l);

            od.insert_order_details(obj[i] ,l);

            response.sendRedirect(".\\userordercomplete.jsp");

        }
    }
    else if(action.equals("Cancel Order"))
    {
        session.setAttribute("Cart", null);
        response.sendRedirect(".\\user.jsp");

    }

    doGet(request, response);
}

Upvotes: 0

Views: 946

Answers (1)

vels4j
vels4j

Reputation: 11298

Issue is you have kept redirect call inside the for loop, finish everything and redirect at last

    for(int i=0;i<obj.length;i++)
    {
       // your stuff  

    }
    response.sendRedirect(".\\userordercomplete.jsp");

Upvotes: 2

Related Questions