转发与重定向的区别(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 ,传输的信息会被丢失。
浙公网安备 33010602011771号