搞不懂什么时候用forward?什么时候用redirect?
首先要明确他们的含义:
forward是转发,redirect是重定向
具体用什么归结于要不要数据共享(共享response、request对象)
当你在一个servlet中做一件事情,但事情还没有做完却要跳到另一个组件(可以是jsp、servlet等),就要转发forward
当你在一个servlet中做一件事情,事情已经做完后要跳到另一个组件,可以用重定向redirect
重定向是服务器想客户端(浏览器)重新发送一个定向请求(它可以改变浏览器地址栏中的地址)
转发是在服务器内转到另一个组件(但还是原来的请求),地址栏不会改变
redirect就是单纯的页面跳转,而forward会把request、response对象一起传到跳转的页面中去,可以使用request.setAttribute和session.setAttribute加进去的对象都可以在跳转过去的页面里取出来
简单说:
forward是转发,是可以传递参数;redirect是重定向。简单的转发时地址栏地址不会发生改变,而重定向地址栏中的地址是改变的