一、最基本的区别就是:请求转发是客户端跳转,而服务器跳转则是客户端跳转,好多同学只听过客户端跳转和服务器端跳转的概念,包括我自己,所以这里先申明这一点;
二、调用方式
request.getRequestDispatcher("new.jsp").forward(request, response); //转发到new.jsp
response.sendRedirect("new.jsp"); //重定向到new.jsp
<jsp:forward page="page.jsp" />//转发到page.jsp
<%response.sendRedirect("new.jsp"); %> //重定向到new.jsp
三、重定向,其实是两次request;第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。对于客户端而言,它只知道自己最早请求的那个A,而不知道中间的B,甚至C、D。传输的信息不会丢失。
本文详细解释了HTTP请求中的转发和重定向的区别,包括它们的基本概念、调用方式及工作原理。转发是一次请求,而重定向是两次请求,且客户端可见地址变化。
286

被折叠的 条评论
为什么被折叠?



