分享

转发与重定向

 蹇胜雄 2015-07-10
1、重定向
(1)什么是重定向?
服务器发送一个302状态码和一个Location消息头
(值是一个地址,称为重定向地址),当浏览器收到之后,
会立即向重定向地址发请求。
(2)编程
//url:重定向地址
response.sendRedirect(String url);
(3)特点
1)重定向地址是任意的。
2)重定向之后,浏览器地址栏的地址变成重定向地址。
(4)需要注意的两个问题
1)重定向之前,不能够调用out.close方法。
2)重定向之前,会先清空response上缓存的数据。
练习:
完成删除员工的操作(从数据库里删除指定员工的
信息,删除之后重定向到员工列表)
2、转发
(1)什么是转发?
一个web组件(servlet或者jsp)将未完成的处理通过容器交给另一个web组件继续完成。
常见的情况是:一个servlet获得数据之后,
转发给一个jsp,由这个jsp来负责展现这些数据。
(2)如何转发?
step1,绑订数据到request对象上。
request.setAttribute(String name,Object obj);
step2,获得转发器
//url: 转发的目的地地址
RequestDispatcher rd = request.getRequestDispatcher(String url);
step3,转发
rd.forward(request,response);
//依据绑订名称找到绑订值,如果值不存在,返回null。
Object request.getAttribute(String name);
(3)转发的特点
a,转发之后,浏览器地址栏的地址不变。
b,转发的目的地仅限于同一个应用。
(4)转发需要注意的问题
a,转发之前,不能够调用out.close()。
b,转发之前,容器会先清空response对象上缓存的数据。


3、转发与重定向的区别
(1)转发所涉及的各个组件可以共享同一个request对象和同一个response对象,而重定向不行。
当容器收到请求,会创建request,response
,当容器发送响应之后,会立即删除request,response。也就是说,request,response的生存时间很短暂
(一次请求与响应期间)。
(2)转发的目的地地址必须是同一个应用内部某个地址,而重定向地址不限。
(3)转发之后,浏览器地址栏的地址不变;而重定向会变。
(4)转发是一件事未做完,而重定向是一件事已经做完,然后再去做另一件事。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多