request.getRequestDispatcher("login.jsp").forward(request, response);
-
request.getRequestDispatcher()方法只是获取到了RequestDispatcher()对象,并未执行真正的转发,执行转发动作还需调用RequestDispatcher()的forward()。
-
forward()方法的声明与doGet()方法和doPost()方法非常类似,在转发时,其将request与response作为参数传递到了下一个Servlet。
拓展:getRequestDispatcher()与sendRedirect()的区别
- request.getRequestDispatcher()是请求转发,前后页面共享一个request ; 这个是在服务端运行的,对浏览器来说是透明的。
- response.sendRedirect()是重新定向,前后页面不是一个request。而这个是在浏览器端运行的。
//设置cookie的携带路径
usernameCookie.setPath(request.getContextPath());
passwordCookie.setPath(request.getContextPath());
- request.getContextPath()得到的是项目的虚拟路径:例如
- 访问路径为:http://localhost:8080/blue/response.jsp
- request.getContextPath()得到的就是 /blue