lvhaosir
一个正在奋起的菜鸟...

导航

 

转发与重定向的区别(forward 与 redirect)

转发 forward

request.getRequestDispatcher("new.jsp").forward(request, response);

一次请求,浏览器的地址不变,访问的是本身的 web 资源,传输的数据不会丢失。

原理:客户端浏览器发送 Http 请求 -> Web 服务器接收 -> 调用内部方法在容器内部完成请求处理和转发动作。

中间传递的是自己容器内的 request 。

重定向 redirect

response.sendRedirect(" ");

两次请求,浏览器的地址会发生改变,可以访问自己web以外的资源,传输的数据会丢失。

原理:客户端浏览器发送 Http 请求 -> Web 服务器接受后发送 302 状态响应码和新的地址 -> 客户浏览器发送是 302,则自动再发送一个新的 Http 请求。

可以重定向到任何 URL ,浏览器地址栏显示重定向的地址,两次 request ,传输的信息会被丢失。

posted on 2018-12-01 14:44  lvhaosir6  阅读(74)  评论(0)    收藏  举报