1、什么是转发
- 一个Web组件(Servlet/JSP)将未完成的处理通过容器转交给另外一个Web组件继续完成
- 常见情况:一个Servlet获得数据之后(比如通过调用dao),将这些数据转发给一个JSP,由这个JSP来展现这些数据(比如,表格)
2、如何实现转发
- 绑定数据到request对象
- 获得转发器
- 转发
3、转发的原理
4、转发的特点
- 转发之后,地址栏地址不会发生变化。原因是转发的过程是发生在服务器内部的,浏览器并不知道。
- 转发的目的地必须是同一个应用内部的某个地址转发所涉及的各个web组件会共享同一个request对象和response对象
- 注意:在forward之后的其它语句还会执行吗? 答:一定会执行,只要不报异常
5、转发和重定向的区别
- 重定向是浏览器发送请求并受到响应以后再次向一个新地址发请求,转发是服务器受到请求后为了完成响应转到一个新的地址
- 重定向中有两次请求对象,不共享数据,转发只产生一次请求对象且在组件间共享数据
- 重定向后地址栏地址改变,而转发不会 重定向的新地址可以是任意地址,转发到的新地址必须是同一个应用内的某地址
从下图可更直观看出区别: