请求转发、重定向、定时刷新的区别

请求转发

实现资源的跳转。

1.一次请求对应一次响应,request对象是同一个

2.地址栏地址不会发生变化

3.请求转发是服务器内部的并且是同一个WEB应用内部的资源跳转;不能是在不同应用和不同服务器中的资源跳转。

4.在同一个Servlet中转发不能进行多次!!(A既转发B, 又转发给C),但是可以进行多重转发(比如A转发给B, B再转发给C)。

重定向

1.两次请求,两次响应,request对象不是同一个

2.地址栏地址会发生变化

3.既可以实现在同一个WEB应用内部资源之间进行跳转,也可以在不同的WEB应用和不同服务器资源之间进行跳转。

4.由于是两次请求,两次响应,无法通过request对象共享数据。

定时刷新

与重定向类似,不同之处就是可以指定几秒之后跳转

可以通过refresh头实现在多少秒之后跳转指定的资源.

1.两次请求,两次响应,request对象不是同一个

2.地址栏地址会发生变化

3.既可以实现在同一个WEB应用内部资源之间进行跳转,也可以在不同的WEB应用和不同服务器资源之间进行跳转。

4.和重定向不同的是,定时刷新可以在刷新到新的地址之间设置一个时间,在间隔的这段时间内可以输出文本到浏览器并维系一段时间。

在什么时候使用哪种方式进行资源的跳转呢?

1、如果是同一服务器中的同一应用内部进行资源跳转,
一般情况下使用请求转发,例如:
(1)不想地址栏发生变化时,
(2)或需要request域在跳转的资源之间传输数据的情况;
在一定要求下我们也得使用重定向或定时刷新,例如:需要地址栏发生变化时。

2、如果是不同服务器或不同应用内部的资源跳转有且只能用重定向或者定时刷新:
重定向和定时刷新的主要区别在于: 重定向会立即跳转, 而定时刷新可以设置一个时间间隔, 在指定时间后再进行跳转.
如果在跳转之前需要输出提示信息(如: 注册成功, xx秒后跳转到xxx)只能用定时刷新, 否则两种方式都可以.

发布了6 篇原创文章 · 获赞 2 · 访问量 2784

猜你喜欢

转载自blog.csdn.net/XING_Gou/article/details/104202024
今日推荐