在JSP中有两种跳转到其他页面的方法:<jsp:forward>与response.sendRedirect,二者有很大的区别。
先看下面的这张图:
红色线条部分为<jsp:forward>,可以看出,其页面的跳转是在服务器的内部完成的,使用的是同一个request【客户端只发送了一次request】;
而黄色线条的部分为sendRedirect,注意的是客户端发送了两次request,因此为不同的request。
总结如下:
<jsp:forward>
- 使用同一个request
- forward后的语句不会继续发送给客户端
- 速度快
- 服务器内部转换,
- 可以传参数
response.sendRedirect
- 是不同的request
- send后的语句会继续执行,除非return
- 速度慢
- 需要到客户端的往返,可以转到任何页面
- 可以传参数,直接写在url后面