相信大家在面试中经常回遇到这个问题,正好最近在做一个跳转的东西,总结一下。
1、概念、原理
(1)redirect
从名字上也很好理解,重定向,就是客户去请求服务器,服务器接到请求后,告诉客户,要重新请求另一个地址,并把地址告诉客户,客户再去请求。
(2)forward
我理解为,服务器去请求,并且有当前服务器返回结果给客户。例如服务器接到一个请求,但是请求的资源需要再次跳转,服务器要先把资源拉到当前服务器,再返回给客户。
还有一种理解为:redirect重定向是客户端行为,forward转发是服务器行为。
2、使用方法
(1)servlet中
request.getRequestDispatcher("new.jsp").forward(request, response); //转发到new.jsp response.sendRedirect("new.jsp"); //重定向到new.jsp
(2)jsp中
<jsp:forward page="apage.jsp" />//转发 <%response.sendRedirect("new.jsp"); %> //重定向到new.jsp
参考: http://blog.163.com/tsing_hua/blog/static/139622224201101110836644/