重定向和转发的区别

重定向
重定向和转发的区别
转发
重定向和转发的区别

重定向:
客户端像服务器端发送请求,服务器告诉客户端你去重定向(状态码302,响应头location=客户端绝路路径),客户端继续像服务器发送请求(请求地址已经成重定向的地址),服务器端给客户端响应

转发
客户端像服务器端发送请求,服务器将请求转发到服务器内部,在响应给客户端

重定向
response.setStatus(302) response.setHeader("location","/项目名称/资源"); 或者简写成 response.sendRedirect("/项目名称/资源")

转发
getRequestDispatcher(“/资源”) .forward(request.response)

区别:
什么时候使用重定向,什么时候使用转发

  • 转发地址栏不变(一次请求),重定向地址栏变化(两次)
  • 转发不用写项目名称,重定向需要编写项目名称
  • 转发可以使用request对象传递值,重定向不可以使用request对象传递值
  • 转发只能在服务器的内部进行操作,重定向可以定向到任何的资源!!

转载于:https://blog.51cto.com/13579086/2073620