当一个客户端访问服务器端的一个JSP(本质上就是一个SERVLET),当调用response.sendRedirect,实际上它做的是从服务器端往客户端发一个指令,告诉IE把地址拦自动变成第2个页面,并点一下转到那个按钮,客户端接到这个指令后马上去访问第2个JSP,第2个JSP再把算出的结果返回客户端。。。。。。
forward 当一个客户端访问服务器端的一个JSP(本质上就是一个SERVLET),在服务器端直接转到第2个JSP,让第2个JSP(实际上是SERVLET)来处理客户端的请求,请求处理完把结果直接返回到客户端。(可以转了好几次,客户端不知道。。。。最后一个反给客户端)
区别:
<jsp:forward> response.sendRedirect
使用同一个request 是不同的request
forward后的语句不会继续发送给客户端 send后的语句会继续执行,除非return
速度快 速度慢
服务器内部转换 需要到客户端的往返,可以转到任何页面
可以传参数 可以传参数,直接写在url后面
地址拦没有变化 地址拦有变化