转发
(1)MVC
(2)什么是转发?
⼀个web组件将未完成的处理转交给另外⼀个web组件继续
做。
注:web组件指的是jsp或者是Servlet。
常⻅的场景是Servlet获取数据以后转发给jsp,由jsp将数据以
合适的⽅式展现出来。
(3)如何转发?
step1.将数据绑订到request对象上。
request.setAttribute(String name,Object obj);
注:绑订就是map.put(name,obj)
step2.获得转发器。
RequestDispatcher rd =
request.getRequestDispatcher(String uri);
注:uri是转发的地址。通常是⼀个jsp。
url:统⼀资源定位符(通常是⼀个完整的地址)
uri:统⼀资源标识符(通常是地址的⼀部分)
step3.转发。
rd.forward(request,response);
(4)转发的特点
a.转发之后,浏览器地址栏的地址不变。
b.转发的地址有限制,要求属于同⼀个web应⽤。
(5)转发与重定向的区别
a.能否共享request?
转发可以,⽽重定向不⾏。
注: 当容器收到请求,会⽴即创建request和
response,当响应发送完毕,则容器会⽴即销毁这两个对象。
也就是说,request和response的⽣存时间是⼀次请求与响应期
间存在。转发是⼀次请求,⽽重定向是两次请求。
b.浏览器地址样的地址有⽆变化?
转发没有变化,重定向会有变化。
c.地址有⽆限制?
转发有限制(要求属于同⼀个web应⽤),⽽重定向没
有任何限制。