我有一个应用程序,我必须从登录页面重定向到另一个页面,如果我发现登录值匹配,我在登录页面输入的用户名和密码将从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,我必须重定向到另一个页面,但它不能正常工作
答案 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);