一、最基本的区别就是:请求转发是客户端跳转,而服务器跳转则是客户端跳转,好多同学只听过客户端跳转和服务器端跳转的概念,包括我自己,所以这里先申明这一点;
二、调用方式
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。传输的信息不会丢失。