-
HttpServletResponse对象的 sendRedirect(String location) 方法称作重定向.
如果location地址前面加上"/" ,则表示相对于Servlet容器的根来请求.即http://localhost:8080
如果location地址前面没有加上"/",则表示相对于当前请求的URL来寻找地址.
示例:
resp.sendRedirect(“myResult.jsp”); -
RequestDispatcher的forward(request,response)称作为请求转发.
示例:
RequestDispatcher rd = req.getRequestDispatcher(“myResult.jsp”);
rd.forward(req,resp);
请求转发,整个过程处于同一个请求当中.
重定向, 实际上客户端会向服务器端发送两个请求.
1.RequestDispatcher() 是通过调用HttpServletResponse对象的getRequestDispatcher属于请求对象的方法.
2.sendRedirect()是HttpServletResponse对象的方法,即响应的方法. 既然调用了响应对象的方法,那就表明整个请求过程已经结束. 服务器开始向客户端返回执行的结果.