如题,这2种跳转有什么分别啊??

解决方案 »

  1.   

    forward()仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;redirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接!不知道对不对,仅作参考
      

  2.   

    我在跳转的时候加了传递值
    request.setAttribute("msg","XXXXXX");
    pageContext.forward("abc.jsp");
    这样写在abc.jsp可以取得msg的值,但是把pageContext.forward("abc.jsp");换成response.sendRedirect("abc.jsp")就不能得到msg的值了。。为什么???
      

  3.   

    因为你用的是request.setAttribute("msg","XXXXXX");response.sendRedirect("abc.jsp")它在一个生命周期后就失效了阿,所以没值!
      

  4.   

    response.sendRedirect 最终由浏览器重定向到指定URL,而不象forward那样直接在服务器端转发求