servlet服务器跳转和客户端跳转

本文详细介绍了客户端跳转(重定向)和服务器跳转(转发)的区别,包括使用场景、URL变化特点、传递数据类型及跳转时间等方面。

客户端跳转(重定向):

response.sendRedirect("/webapp/index.jsp");  //加上了应用名,/代表webapps目录

上面方法其实是对setStatus()和setHeader()进行了封装

response.setStatus(302);   //302状态码在http协议中代表的就是临时重定向
response.setHeader("Location","/webapp/index.jsp");
服务器跳转(转发):
request.getRequestDispatcher("/index.jsp").forward(request,response);  //没有加应用名,/代表的是本应用的根目录

资源地址问题:给服务器用的直接从资源名开始写,给浏览器用的要加上应用名。

去往的url范围:转发只能去往本应用的web资源,而重定向可以去往任何其他资源。

传递的数据类型:request对象可以传递任何类型,包括对象,而重定向只能传递字符串。

跳转时间:转发在执行到转发语句时立即跳转,而重定向在整个页面执行完之后才开始跳转。

应用场景:

转发:访问servlet然后跳转到jsp显示处理结果,同一个url。

重定向:提交表单,处理成功后redirect到另一个jsp,防止重复提交。

注意:转发前后是同一个request,同一个请求,带着同一个请求的参数,url没有发生变化,而重定向是新的请求,url发生了变化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值