forward和redirect区别.controller内方法跳转用forward?redirect


forward和redirect是什么?

是servlet种的两种主要的跳转方式。forward又叫转发,redirect叫做重定向。

区别:(本地效应次数)

地址栏,数据共享,应用场景,效率,本质,次数

两者的区别总结:

1. 从地址栏显示来说:

1)forword服务器内部的重定向,服务器直接访问目标地址的 url网址,把里面的东西读取出来,但是客户端并不知道,因此用forward的话,客户端浏览器的网址是不会发生变化的

2)redirect是服务器根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,所以地址栏显示的是新的地址。

2。 从数据共享来说:

1)由于在整个定向的过程中用的是同一个request,因此forward会将request的信息带到被重定向的jsp或者servlet中使用。即可以共享数据

2)redirect不能共享

3. 从运用的地方来说

1)forword 一般用于用户登录的时候,根据角色转发到相应的模块

2) redirect一般用于用户注销登录时返回主页面或者跳转到其他网站

4。 从效率来说:

1)forword效率高,而redirect效率低

5. 从本质来说:

forword转发是服务器上的行为,而redirect重定向是客户端的行为

6. 从请求的次数来说:

forword只有一次请求;而redirect有两次请求,

再举一个浅显易懂的例子:

转发的时候你并不知道A局有没有去联系B局,信息没有被泄露,没有丢失!!

到这里已经能看出了controller层相互跳转传值的话,尽量用  forward 而不是redirect

forward传值正常:

redirect传值

 中文丢失只剩个2,为啥没丢完还剩个2呢?哪位真神有说法吗?

Guess you like

Origin blog.csdn.net/zhaofuqiangmycomm/article/details/121429905