forward和redirect的区别?

解决方案 »

  1.   

    百度出来的
    前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接,此次请求将丢失Request的值。这样,从浏览器的地址栏中可以看到跳转后的链接地址。
      

  2.   

    google一下 有的是 急还发帖 方法不行啊
      

  3.   

    forward 是转发
    redirect 是重定向
    1、传递数据 forward 可以用request、session...
               redirect不能用request 要用session
    2、写路径时:forward 相对路径的起始根目录从web引用的上下文开始(工程名)
                 redirect 相对路径的起始根据目录从端口号开始
      

  4.   

    使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变;
    使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。forward,转发页面和转发到的页面可以共享request里面的数据.
    redirect,不能共享数据. 
      

  5.   

    forward:request请求转发. 
    redirect:请求重定向