JavaWeb中 重定向与请求转发的区别

  1. HttpServletResponse对象的 sendRedirect(String location) 方法称作重定向.
    如果location地址前面加上"/" ,则表示相对于Servlet容器的根来请求.即http://localhost:8080
    如果location地址前面没有加上"/",则表示相对于当前请求的URL来寻找地址.
    示例:
    resp.sendRedirect(“myResult.jsp”);

  2. RequestDispatcher的forward(request,response)称作为请求转发.
    示例:
    RequestDispatcher rd = req.getRequestDispatcher(“myResult.jsp”);
    rd.forward(req,resp);

请求转发,整个过程处于同一个请求当中.
重定向, 实际上客户端会向服务器端发送两个请求.

1.RequestDispatcher() 是通过调用HttpServletResponse对象的getRequestDispatcher属于请求对象的方法.
2.sendRedirect()是HttpServletResponse对象的方法,即响应的方法. 既然调用了响应对象的方法,那就表明整个请求过程已经结束. 服务器开始向客户端返回执行的结果.

猜你喜欢

转载自blog.csdn.net/hujian66/article/details/84965157