Servlet(6)转发,比较转发与重定向

# 1.转发


## (1)什么是转发?
一个web组件将未完成的处理交给另外一个web组件继续做。

    注:
        web组件:servlet或者jsp
        常见的场景:一个Servlet获得数据之后,将数据转交给
        一个jsp来呈现。

## (2)如何转发?
step1.将数据绑订到request对象上。

request.setAttribute(String name,Object obj);
	注(了解):
		map.put(name,obj)

step2.获得转发器。

RequestDispatcher rd = 
			request.getRequestDispatcher(String uri); 

注:
        uri是转发的目的地,通常是一个jsp的地址。 RequestDispatcher是一个web组件通知容器去调用另外一个 web组件的媒介。

step3.转发。

rd.forward(request,response);

注:
        jsp可以利用 Object request.getAttribute(String name);拿到之前绑订的数据。

## (3)特点


a.转发之后,浏览器地址栏的地址不变。

b.转发的目的地有限制,要求属于同一个web应用。

# 2.比较转发和重定向


a. 转发之后,浏览器地址栏的地址不变,重定向会变。

b. 转发的目的地有限制(要求属于同一个web应用),重定向无限制。

c. 转发所涉及的各个web组件可以共享同一个request对象,而重定向
不可以。

    注:
        容器收到请求之后,会立即创建request和response;
    当容器发送完响应之后,会立即销毁这两个对象。也就说,
    request和response的生存时间是一次请求与响应期间存在。
        重定向是两次请求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值