黑马程序员技术交流社区

标题: Java Web中的两种跳转语句是什么,有什么区别? [打印本页]

作者: 于汝国    时间: 2011-12-21 12:52
标题: Java Web中的两种跳转语句是什么,有什么区别?
本帖最后由 于汝国 于 2011-12-21 15:18 编辑

Java Web中的两种跳转语句是什么,有什么区别?求详解......
作者: 海中的游弋草    时间: 2011-12-21 12:55
1.break :跳出当前循环;但是如果是嵌套循环,则只能跳出当前的这一层循环,只有逐层break才能跳出所有循环;

2.continue:终止当前循环,但是不跳出循环(在循环中continue后面的语句是不会执行了),继续往下根据循环条件执行循环。


作者: 冯瑞君老师    时间: 2011-12-21 12:59
转发     是向服务器请求了一次,在这个过程中request都有效,而重定向就不一样了。
重定向   是向服务器请求了两次,第一次向服务器请求,服务器给客户端一个响应码,客户端带着这个响应码再向服务器请求一次,request在第一次请求时有效,在第二次请求时request已被销毁,所以无效。
例如:if("zhangsan".equals(name)&&"123".equals(pass))
  {
   request.getRequestDispatcher(".html").forward(request, response);
//转发:地址不变;表单的数据在ok.html还可以取得;服务器跳转,相当于POST方式
  }
  else
  {
   response.sendRedirect(".html");
   //重定向:地址改变;表单的数据在error.html不可以取得;客户端跳转,
  }
作者: 于汝国    时间: 2011-12-21 12:59
呵呵,我说的可是Java Web中遇到的问题哦?
作者: 冯瑞君老师    时间: 2011-12-21 13:00
于汝国 发表于 2011-12-21 12:59
呵呵,我说的可是Java Web中遇到的问题哦?

我回答的不是?
作者: 六期刘健    时间: 2011-12-21 13:01
好像是有forward转向地址栏不变 另一个忘了!很长时间了!!   
      <jsp:forward   page=url>
      <jsp:param   name= "id "   value= "  ">
</jsp:forward>
大概意思!!

作者: 于汝国    时间: 2011-12-21 13:18
科比先生回答的是。。。。。。呵呵

作者: songxingchao    时间: 2011-12-21 13:51
forward 和redirect 两种方式。
forward 是服务器跳转, 例如客户端访问服务器地址1,  服务器forward 到地址2了, 虽然你客户端能得到地址2的数据,但是浏览器上的地址还是显示地址1的位置。 客户端从开始到最后只发送了一次请求。
redirect 是客户端跳转,  例如客户端访问服务器地址1 , 服务器告诉客户端你要转到地址2去,把地址2的位置发给客户端, 客户端再 根据这个地址方位地址2, 这时候浏览器上的地址显示地址2的位置,客户端总共发送过2次请求。
作者: 于汝国    时间: 2011-12-21 14:49
谢谢大家!明白了
作者: 王胜利    时间: 2011-12-21 15:12
forward 和response跳转两种方式。

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

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





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2