转发(forward):

当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。因而当使用转发时,浏览器窗口的URL会保持不变。

重定向(location):

客户端发送请求,web服务器接收该请求后发送 301/302 状态码响应并且发送新的一个地址(location)给客户端浏览器,客户端接受到会自动再发送一个新的请求,而这个请求就是新的location,既然是客户端发送的一个请求,就对web容器的request没关系了,它可以任意跳转到所有location。

当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重 定向后,request内的对象将无法使用。

例如一个网银接口,因为web容器中想要访问到网银接口,必须要使用重定向,而重定向会把之前的信息丢失,所以不能再request或者session中存数据给它使用,只能通过在重定向的location中加入数据进行请求。

PHP中页面跳转的方法:

1. 第一种方式:header()
   header()函数的主要功能是将HTTP协议标头(header)输出到浏览器  header('Location: http://www.example.com/');
2. meta标签
   Meta标签是HTML中负责提供文档元信息的标签,在PHP程序中使用该标签,也可以实现页面跳转。  <meta http-equiv="refresh" content="1;url=http://www.baidu.com"> 
3. javascript
   通过使用windows.location.href=‘url’; 是页面自动跳转到新的地址

JS中页面跳转的方法:

1. window.location.href="helloworld.php"

2. window.location.assign方法

3. window.location.replace方法  (让新页面替换掉当前页面,不会保存在历史记录里,所有不能使用浏览器后退到原页面了)

4.

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐