转发与重定向

转发的特点

1.一次请求

2.地址不变

3.一个请求只有一个request,A和B可以通过它共享数据

4.只能转发到项目内部的资源

     (1)什么是转发
一个web组件(servlet/jsp)将未完成的处理交给
另外一个web组件继续做。
比如,一个servlet将处理结果转发给一个jsp来展现。
(2)如何转发
step1,绑订数据到request上。
request.setAttribute(String name,Object obj);
注:
依据绑订名获得绑订值。
Object request.getAttribute(String name);
step2,获得转发器
RequestDispatcher rd = 
request.getRequestDispatcher(String uri);
uri:转发的地址。
step3,转发
rd.forward(request,response);
(3)转发的特点
a,转发之后,浏览器地址栏的地址不变。

b, 转发地址有限制(必须是同一个应用)。



重定向的特点

1.二次请求

2.地址改变

3.两个请求有两个request,A和B无法通过它共享数据

4.可以重定向到项目外部的资源


(1)什么是重定向?

服务器通知浏览器向一个新的地址发送请求。
一般服务器可以发送一个302状态码和一个Location
消息头(值是一个地址,一般称之为重定向地址),
浏览器收到之后,会立即向重定向地址发请求。
(2)如何重定向?
response.sendRedirect(String url);
(3)重定向之前,服务器会先清空response对象上
缓存的数据。
(4)特点
a,重定向之后,浏览器地址栏的地址会变。

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


建议:

-查询时用转发

-增加,修改,删除后重定向到查询


比较转发与重定向
  (1)转发所涉及的各个web组件可以共享同一个
  request对象,重定向不可以。
  注:
  容器收到请求之后,会创建request对象和
  response对象,当响应发送完毕,容器会立即
  删除request对象和response对象。
  也就是说,request对象和response对象的
  生存时间是一次请求和响应期间。
  重定向是两次请求。
  (2)重定向之后,浏览器地址栏的地址会变;转发
  不变。
  (3)重定向地址是任意的,而转发地址必须是同一个
  应用。
  (4)转发是一件事未完成,而重定向是一件事已经完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值