一.什么是转发
1.--一个web组件(servlet/jsp)通过容器将未完成的处理转交给另外一个web组件继续完成.
通常情况:一个servlet获得数据之后,将这些数据转发给jsp,由jsp进行数据展示.
2.如何实现转发?
1>绑定数据到request对象
--实现绑定
request.setAttribute(String name,Object obj);
name:绑定名
obj:绑定值
--读取绑定值
Object request.getAttribute(String name);如果绑定值不存在,则返回null.
2>获得转发器
3>转发
步骤2和步骤3通常会写在一起:
request.getRequestDispatcher(path).forward(request,response);
3.转发的原理
4.转发的特点
1.转发之后地址栏不会变,转发过程发生在服务器内部.
2.转发的目的地必须是同一个应用内部的某个地址.
3.转发所涉及的各个web组件会共享一个request对象和response对象.
4.注意:在forward之后的语句只要不报异常,就一定会执行.
5.转发和重定向的区别
重定向是浏览器发生请求并收到响应后再次向一个新地址发送请求;
转发是服务器收到请求后为了完成响应转到一个新的地址.
重定向有两次请求对象,不共享数据.
转发只产生一个请求对象,且在各个组件之间共享数据.
重定向之后地址栏发生改变,而转发不会.
重定向的新地址可以是任意的地址,而转发到的新地址必须是同一个应用内的某地址.