jsp重定向和请求转发区别
重定向和请求转发区别
1.重定向:
客户端行为
response.sendRedirect()
从本质上讲等同于两次请求
前一次的请求对象不会保存
地址栏的URL地址会改变。
可以跨域访问
2.请求转发:
服务器行为
request.getRequestDispatcher().forward(req,resp)
是一次请求
转发后请求对象会保存
地址栏的URL地址不会改变。
在web服务器内部进行的,不能跨域访问。
3.调用方式:
在servlet中调用转发、重定向的语句如下:
request.getRequestDispatcher(“new.jsp”).forward(request, response);//转发到new.jsp
response.sendRedirect(“new.jsp”);//重定向到new.jsp
在jsp页面中你也会看到通过下面的方式实现转发:
<jsp:forward page=“apage.jsp” />
当然也可以在jsp页面中实现重定向:
<%response.sendRedirect(“new.jsp”);//重定向到new.jsp%>
4.解释:
购物:
重定向:你先去了A超市,A超市的人说:“这个东西我们没有,B超市有”,然后,你就从A超市退了出来,去了B超市。
转发:你先去了A超市,A超市看了以后,知道这个东西B超市有,但是他没有让你走,而是让你等一会儿,自己到B超市,买好东西后,送了过来。