【JavaScript】页面重定向和请求转发的区别

JS的页面重定向和请求转发


页面重定向: HttpServletResponse.sendRedirect

请求转发: RequestDispatcher.forward

先用一个例子来简单说明两者的区别:

假设你去办理某个执照

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

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

  1. 页面重定向可以重新定向到同一站点不同应用程序中的资源,甚至可以定向到一绝对的URL;请求转发只能将请求转发给同一个WEB应用中的组件。
  2. 页面重定向可以看见目标页面的URL;请求转发只能看见第一次访问的页面URL,以后的工作都是由服务器来做的。
  3. 页面重定向调用者和被调用者属于两个独立访问请求和响应过程;请求转发的调用者和被调用者之间共享相同着request对象和response对象。
  4. 页面重定向跳转后必须加上return,要不然页面虽然跳转了,但还是会执行跳转后面的语句;请求转发是执行了跳转页面,下面的代码就不会在执行了。

重定向几个例子:

第一种:

<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() {
	undefined

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

    //获得表单内容并转发
	var doc = document.getElementById("document");
    doc.action = "${pageContext.request.contextPath}/documentManager/save";
    doc.method = "post";
    doc.submit();
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值