JSP中forward和redirect有什么区别?什么时候必须用哪个

2025-04-02 14:30:24
推荐回答(4个)
回答1:

forward和redirect都是请求自动转向的方式,流程如图示:
forward:浏览器(我有问题)-->服务器ServletA(不会,我要问B)-->服务器ServletB(是这样的)-->服务器ServletA(是这样的)-->浏览器(噢,我明白了)
redirect:浏览器(我有问题)-->服务器ServletA(不会,去问B)-->浏览器(我有问题)-->服务器ServletB(是这样的)-->浏览器(噢,我明白了)
所以redirect过程发生了两次请求,而forward只有一次;地址栏forward是转向前(ServletA)的地址,redirect是转向后(ServletB)的地址;forward时浏览器发送的数据ServletB可以拿到(A交给B的),redirect时浏览器发送的数据ServletB拿不到(只给了A)。
一个操作结束想转向的另一个操作,forward和redirect都可以用(建议用redirect);而如果需要转向后传递数据,只能用forward。

回答2:

  1. forward是请求转发的意思,地址栏的地址不会发生改变,可以传递参数

  2. redirect是重定向的意思,地址栏的地址会发生改变,不能带参数

回答3:

最主要的区别是
forward在浏览器地址看不出url有变化,还是原url
redirect在浏览器地址栏能看到目标url

回答4:

forward是转发,可以带着请求里的参数,转发后浏览器地址不会改变。
redirect反之