Servlet自学第19讲:sendRedirect(重定向)与forworld(转发)区别

一个web资源受到客户端请求后,通知服务器去调用另一个web资源进行处理,称之为请求转发。
一个web资源受到客户端请求后,通知浏览器去调用另一个web资源进行处理,称之为请求重定向。

转发方法:

requeset.getRequestDispatcherforward(request,response);

资源地址:不需要项目名。因为它只是在WEB服务器内部转发。
我们现在使用 请求转发的方法来实现上次我们使用 response.sendRedirect() 实现效果使用 request提供的转发方法。
这里写图片描述
Request中的Attribute在一次请求有效。一次请求:没有返回到浏览器,就为一次请求。
请求转发的的(uml)图,这里我们画图说明(uml)
这里写图片描述

1.使用 forward 不能转发到 该web应用外的 url
2.因为 forward 是发生在web服务器,所以 Servlet1 和 Servlet 2使用的是用一个request 和response.
使用sendRedirect() 方法不能通过request.setAttribute() 把 属性传递给下一个Servlet

比较sendRedirect()和request.getRequestDispatcher().forward(request,response)
请问 sendRedirect() 和 forward 的区别是什么
答:(1)叫法 sendRedirect() 重定向,转发 forward() 叫转向
(2)实际发生的位置不一样
sendRedirect 发生 浏览器
forward 发生 web服务器
(3)用法不一样
request.getRequestDispatcher(“/资源URI”).forward(request,response)
response.sendRedirect(“/web应用/资源URI”);
(4)能够去URL 范围不一样
sendRedirect 可以去 外边URL
forward 只能去当前的WEB应用的资源

什么是一次 http请求:
只要没有停止,也没有回到浏览器重定向,就算一次
比如:
这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值