转发和重定向_学习笔记

转发

什么是转发?

一个web组件将未完成的处理交给另外一个web组件继续做。

注:
	web组件: jsp或者servlet的统称。
	通常是一个servlet获得数据,然后转发给一个jsp
	来展现。

如何转发?

step1.绑订数据到request对象上。

request.setAttribute(String name,Object obj);
注:
	a. name通常称之为绑订名,obj称之为绑订值。
	b. 该方法内部的实现:就是以name作为key,以
		obj作为value,调用Map.put方法。
	c.  Object request.getAttribute(String 	name);

step2.获得转发器。

RequestDispatcher rd = 
		request.getRequestDispatcher(Sting uri);
注:
	a.uri:转发的目的地,通常是一个jsp。
	b.RequestDispatcher是一个接口,该方法会返回	一个符合该接口的对象,这个对象一般我们称	之为转发器。	
	c.转发的本质是一个web组件通知容器去调用另外一个web组件,可以将转发器理解为web组件通知容器的媒介。

step3.转发

	rd.forward(request,response);

转发特点

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

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

重定向

什么是重定向

服务器通知浏览器向某个地址发送请求。

注:
	服务器可以发送302状态码和Location消息头
	(该消息头的值是一个地址,一般称之为重定向
	地址)给浏览器,浏览器收到之后,会立即向
	重定向地址发送请求。

如何重定向

response.sendRedirect(String url);

注:
	url是重定向地址。
	容器在重定向之前,会清空response对象上存放的
	所有数据。

重定向特点

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

b.重定向的地址是任意的。

转发与重定向的区别

1,地址栏地址有无变化

转发之后,地址栏不变,重定向后地址栏改变

2.目的地有无限制

转发有限制,只能在同一个web应用下,重定向可以跳转到任何地方

3.能否共享request和response

转发可以,重定向不行.
容器收到请求之后,会立即创建request和response对象,.当响应发送完毕后,容器会立即销毁这两个对象,(也就是说,request和response的存在时间是一次请求与响应期间存在).
从定向是两次请求.

4.一件事是否完成

转发是一件事未做完,让另外一个web组件继续做;
重定向是一件事已经做完,再做另外一件独立 的事.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值