A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kimi 中级黑马   /  2013-6-15 12:17  /  1857 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 巩建 于 2013-6-19 12:51 编辑

<jsp:include page="index.jsp" />
<jsp:forward page= "index.jsp"/>
这两种跳转方式有什么区别呢

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

4 个回复

倒序浏览
首先 include不是跳转
然后 JSP大约有下列三种跳转方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />

forward跳转:  服务器端跳转,地址栏不改变;
                     执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);
                     request设置的属性在跳转后的页面仍可以使用;  
                    使用<jsp:param name="参数名" value="参数值" />传递参数。
response跳转:客户端跳转,地址栏改变;
                     所有代码执行完毕后跳转;  
                     跳转后的页面不能使用上一个页面的request属性;  
                     使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。

评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

回复 使用道具 举报
<jsp:include page="index.jsp"/> : 使用此标签页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面,执行完后还会回来,相当于函数调用。并且可以带参数。
<jsp:forword page="index.jsp"/>:这个标签会使页面转向新页面,不会再回来。相当于go to 语句。
回复 使用道具 举报
对于标签之前的内容,<jsp:forward>之前的内容执行但不显示,而<jsp:include>之前的内容执行也显示。

对于标签之后的内容,<jsp:forward>不执行了,<jsp:include>执行并显示。

简单点说就是  include是在当前页面的当前位置导入一个jsp页面,forward是整个页面转向到另一个页面
回复 使用道具 举报

  1.forward跳转:
  a.服务器端跳转,地址栏不改变;
  b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);
  c.request设置的属性在跳转后的页面仍可以使用;
  d.使用传递参数。

  2.response跳转:
  a.客户端跳转,地址栏改变;
  b.所有代码执行完毕后跳转;
  c.跳转后的页面不能使用上一个页面的request属性;
  d.使用地址重写传递参数(response.sendRedirect("URL?参数名=参数值"))。

  jsp中两种跳转的区别
  在jsp中有两种跳转,客户端跳转和服务器端跳转,,他们之间存在下面4点的区别:
  1.做为服务器端跳转,跳转后地址栏地址是当前地址,而不是目的页面。而response.sensRediresct("")作为客户端跳转地址栏会变成目的页面的地址.
  2.客户端跳转当程序执行到此句时,是所有代码执行完成后再执行跳转动作,也就是说其后的代码有被执行的机会,而服务器端的跳转是强硬的,执行到此句时,强制跳转,不执行其后的代码。
  3.从传递参数的角度上看,客服端跳转可以通过地址重写的方式传递参数,如response.sendRedirect(*.jsp?ref=pokoo&ref2=pokoo2).而服务器的跳转可以采用来传递参数。
  4.jsp中有四种属性保存范围,如在当前资源中在request中保存了属性,那么客户端的跳转到目的页是拿不到,request容器里的东西的,而服务器端的跳转可以取到。




评分

参与人数 1技术分 +1 收起 理由
夜默 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马