重定向和转发的区别**:
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 将数据通过友好的界面显示给用户