2014-01-17 39 views
3

我有一个应用程序,我必须从一个登录页面重定向到另一个页面我输入登录页面的用户名和密码从servlet转到另一个servlet.so,如果我发现登录值相匹配,我会重定向到另一个页面,但这种事情没有工作....我张贴我的代码响应.sendRedirect不工作

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是真实的,我必须重定向到花药页,但它无法正常工作

+0

你遇到了什么问题?任何堆栈跟踪? –

回答

0

首先明确何时使用sendRedirect以及何时使用RequestDispatcher的概念。 (使用的是2步过程进行简单的验证)

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); 

这里有一个像你使用一个相对URL没有问题。

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

2

你得不知所踪。否则,执行一直持续到JSP/servlet结束。

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

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

+0

布尔validationFlag = qb.userValidation(loginVO); if(validationFlag){ //这是为了Ajax返回 // response.setContentType(“text/html; charset = UTF-8”); // response.getWriter()。write(“True”); System.out.println(“我们在这里”); response.sendRedirect(“../main.jsp”); return; // System.out.println(“我们回来了”); } – Subho

+0

这是我在做什么不工作 – Subho