ailin_smile
2009-04-20 21:40
浏览 300
已采纳

服务器跳转和客户端跳转

我才刚开始学习java,学到web这部分一头雾水去不掉,东西说难不难,说简单又不简单。看别人的代码一看就会,轮到自己写代码就手足无措,不知道从哪里下手。
有一个问题困惑我好长时间了,问了几个稍微懂点的,因为是稍微懂点的,反而搞的我像是被水泼一样。
在servlet里面,用于页面跳转时有时候用:re = resquest.getRequestDispatcher(String path);
有时候又用:response.sendRedirect(String location);
这两种方法似乎都能够向跳转的文件传递参数,比如request那个方法path可以等于“index.jsp?num”,而response那个方法location又可以等于‘“index.jsp?num”+num’不懂,这两种用于跳转有什么区别,那两种参数传递的过程又为什么不同呢,长的好像一样。另外,上边的对象re.forward(request,response);又是干什么的呢,我想这个想了好长时间了,我觉得这就好像一道面试题一样,我真的很想全面,详细的把这些问号都去掉。
第一次上javaeye,不会提问,大家见谅,但是希望各位大虾可以帮帮我,不胜感激!!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • wanghaolovezlq 2009-04-20 22:13
    已采纳

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(2条)

相关推荐 更多相似问题