重定向和转发的区别**:
1)转发的地址必须是同一个应用内部的某个组件(不能跨应用,不能跨服务器)
比如:
地址 1
http://localhost:8080/web06/aaa.jsp
地址 2
http://localhost:8080/web06/bbb.jsp
地址 3
http://localhost:8080/web07/ccc.jsp
地址 4 http://www.apache.com.cn
在应用
web06 内部的组件 aaa.jsp 可以将信息转发到地址 2(同一应用),但是不可以转发到地址 3(跨应用)和地址 4(跨服务器)
>>>>
重定向的地址没有限制
2) 能否共享 request
>>
转发可以
>> 重定向不行
原因是转发是一次请求,重定向为两次请求,Request
的生命周期叧能在一次请求内,
请求结束,Request 被删除
3) 浏览器地址栏的地址是否变化
>>
转发不变
>> 重定向会变
4) 事件是否处理完毕
>>
转发是一件事未做完
>>
重定向是一件事已经做完了
**什举时候用重定向?
比如用户做删除操作时,删除操作已做完,重定向访问 list.do
什么时候用转发?
比如(1)用户调用 list.do ,(2)由 ListServlet 到数据库中查询数据,(3)ListServlet
将查询到的数据通过 Servlet 引擎转发给负责显示的 empList.jsp,(4)empList.jsp 将数据通过友好的界面显示给用户
原文:http://www.cnblogs.com/tarena/p/3620145.html