java web转发与重定向

一、转发

      web项目内部转发到另一个页面或者另一个servlet

二、重定向

        重定向到另一个地址,可以在web项目内,也可以在项目外

三、对比:

       转发时,会将request对象转到另一个转向的servlet,因此可以在request中传递数据;

       重定向相当于服务端返回302,客户端重新再去请求新的地址,是一个新的request对象,因此不能通过request对象传递数据

    

 

      转发时,浏览器地址栏不会改变,相当于服务端的内部的转发,客户端无感知;

      重定向时客户端浏览器地址会变化,相当于服务端告诉客户端去另一个地址,浏览器再重新请求一个新的地址,更多可以理解为客户端的转换

 

 

     转发只能在web应用内的资源,重定向可以是任一个uri地址

 

四、相关方法

       转发:  request.getRequestDispatcher("index.jsp").forward(request, response);

       重定向:response.sendRedirect("/day11/one?aaa=123qwe");  response.sendRedirect("www.baidu.com");

  1.转发在服务端完成,重定向在客户端完成

  2.转发地址栏不变,重定向地址栏变化

  3.转发不会执行转发后的代码,重定向会执行后面的代码

  4.转发是一次请求,重定向是两次请求

  5.转发在同一台服务器,重定向可以在不同的服务器

  6.转发快,重定向慢

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值