响应.sendRedirect不工作

时间:2014-01-17 13:11:43

标签: jsp servlets

我有一个应用程序,我必须从登录页面重定向到另一个页面,如果我发现登录值匹配,我在登录页面输入的用户名和密码将从servlet转到另一个servlet.so将重定向到另一个页面,但这些东西不起作用....我发布我的代码

  boolean validationFlag = qb.userValidation(loginVO);
        if (validationFlag) {

            //This is for Ajax return 

            System.out.println("we are here");
            response.sendRedirect("../main.jsp");
            System.out.println("we are back");
        }
    } catch (Exception e) {

        e.printStackTrace();
    }
} 

这里validationFlag为true,我必须重定向到另一个页面,但它不能正常工作

3 个答案:

答案 0 :(得分:2)

之后你必须回来。否则,执行将一直持续到JSP / servlet结束。

response.sendRedirect("../main.jsp");
return;

所以没有返回,你的System.out.println(“我们回来了”);将被执行。

答案 1 :(得分:0)

首先要了解何时使用sendRedirect以及何时使用RequestDispatcher的概念。 (您正在使用两步流程进行简单验证)

http://www.beingjavaguys.com/2013/05/difference-between-request-dispatcher.html http://www.coderanch.com/t/540671/Servlets/java/difference-RequestDispatcher-sendRedirect

删除那些println语句。 请记住,在写入响应对象后,您无法执行sendRedirect()。

现在试试,

RequestDispatcher view = request.getRequestDispatcher("main.jsp");
view.forward(request, response);

这里没有像您正在使用的相对网址的问题。

希望这有助于......快乐的编码

答案 2 :(得分:0)

试试这个,它可能会有所帮助:

request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);