请求转发和URL重定向区别

      首先介绍下Servlet之间的交互,Servlet和Servlet之间可以共享信息并且可以相互跳转.一个完整的操作,需要AServlet执行一部分操作,然后再交给BServlet继续完成.常用的有请求转发(forward)和URL重定向(redirect).

请求转发(forward):

      AServlet操作完毕之后,请求转发到BServlet,继续完成余下的功能.

     语法: request对象.getRequestDispatcher(String path).forward(request,response);

     特点:

           1.浏览器地址栏路径没变,依然是AServlet的资源名称.

           2.只发送了一个请求.

           3.共享同一个请求,在请求中共享数据.

           4.最后的响应输出由BServlet来决定.

           5.只能访问当前应用中的资源,不能跨域跳转.

           6.可以访问WEB-INF中的资源.

URL重定向(redirect):

       AServlet操作完毕之后,重定向到BServlet,继续完成余下的功能.

       语法:response对象.sendRedirect(String path);

       特点:

            1.浏览器地址栏发生变化,变成BServlet的资源名称.

            2.发送两个请求.

            3.因为是不同的请求,所以不能共享请求中的数据.

            4.最终的响应输出由BServlet来决定.

            5.可以跨域访问资源.

            6.不可以访问WEB-INF中的资源.

请求转发和重定向的选择?

       1.若需要共享请求中的数据,只能使用请求转发.

       2.若需要访问WEB-INF中的资源,只能使用请求转发.

       3.若需要跨域访问,只能使用URL重定向.

       4.请求转发可能造成表单的重复提交问题.

       5.其他时候,任选.

 

    

    

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值