js将页面重定向与转发

转发:RequestDispatcher.forward

重定向:HttpServletResponse.sendRedirect

1 请求转发只能将请求转发给同一个WEB应用中的组件,而重定向还可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL。

2 重定向可以看见目标页面的URL,转发只能看见第一次访问的页面URL,以后的工作都是有服务器来做的。

3 请求响应调用者和被调用者之间共享相同的request对象和response对象,重定向调用者和被调用者属于两个独立访问请求和响应过程。

4 重定向跳转后必须加上return,要不然页面虽然跳转了,但是还会执行跳转后面的语句,转发是执行了跳转页面,下面的代码就不会在执行了。  


有个例子说明两者的区别很生动:

假设你去办理某个执照

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。

转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。


重定向几个例子:

第一种:
    <script language="javascript" type="text/javascript">
           window.location.href="href.php?backurl="+window.location.href;
    </script>

第二种:
    <script language="javascript">
        alert("返回");
        window.history.back(-1);
   </script>

第三种:
   <script language="javascript">
        window.navigate("href.php");
   </script>

第四种:
   <script language="JavaScript">
          self.location='href.php';
   </script>

第五种:
   <script language="javascript">
          alert("非法访问!");
          top.location='href.php';
   </script>


转发的一个例子:

function forward() {

    ... ... ... ... ... ... ...

    //获得表单内容并转发
    var doc = document.getElementById("document");
    doc.action = "${pageContext.request.contextPath}/documentManager/save";
    doc.method = "post";
    doc.submit();

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值