精华内容
下载资源
问答
  • forward与redirect的区别

    千次阅读 2016-04-15 08:49:39
    forward与redirect的区别 1.URL地址栏的显示 2.共享数据 3.效率

    1.URL地址栏的显示

    forward是服务器端请求资源,服务器直接访问目标地址的URL读取响应信息,再发送给客户端,客户端根本就不知道服务器的响应信息从何而来,所以客户端浏览器的地址栏不会改变,并且浏览器只发送了一次http请求。

    redirect是服务器先响应浏览器的第一次请求,然后发送一个状态码,告诉浏览器去哪个URL地址重新发起请求,所以浏览器又发送了一个请求,并且地址栏改变了。所以浏览器会发送两个HTTP请求。

    2.共享数据

    forward:转发页面和转发到的页面可以共享request域中的数据

    redirect不能共享request域中的数据

    3.效率

    forward比redirect效率高,因为只发送一次HTTP请求

    展开全文
  • Forward与redirect的区别

    2012-08-02 16:12:40
    Forward与redirect的区别 转发(forward) 重定向(redirect) 执行forward后依然是上一次请求 执行redirect后生成第二次请求 Forward的目标页面可以访问原请求的请求参数,因为依然是...

    Forwardredirect的区别

    转发(forward

    重定向(redirect

    执行forward后依然是上一次请求

    执行redirect后生成第二次请求

    Forward的目标页面可以访问原请求的请求参数,因为依然是同一次请求,所有原请求的请求参数、request范围的属性全部存在

    Redirect的目标页面不能访问原请求的请求参数,因为是第二次请求了,所有原来请求的参数、request范围的属性全部丢失

    地址栏请求的URL不会改变

    地址栏改为重定向的目标URL,相当于在浏览器地址栏里输入新的URL后按回车键

    展开全文
  • 重定向特点:redirect 1. 地址栏发生变化 2. 重定向可以访问其他站点(服务器)资源 3. 重定向是两次请求。不能使用request对象来共享数据 @Override protected void doGet(HttpServletRequest req, ...
    • 重定向的特点:redirect
      1. 地址栏发生变化
      2. 重定向可以访问其他站点(服务器)的资源
      3. 重定向是两次请求。不能使用request对象来共享数据
      @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("demo1");
            resp.setStatus(302);
            //动态获取虚拟目录
            String contextPath = req.getContextPath();
            //简单的重定向方法
            resp.sendRedirect(contextPath+"//response-demo2");
            //resp.sendRedirect("https://www.baidu.com/");
    
        }
    
    • 转发的特点:forward
      1. 转发地址栏路径不变
      2. 转发只能访问当前服务器下的资源
      3. 转发是一次请求,可以使用request对象来共享数据
    
          @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            System.out.println("demo7被访问.....");
          	//存储数据
            req.setAttribute("hky","guet");
            //请求转发
            req.getRequestDispatcher("request-demo8").forward(req,resp);
    
        }
    
    展开全文
  • Forward与Redirect的区别

    千次阅读 2015-06-05 10:22:20
    Forward与Redirect 在做前台开发过程中你可能经常遇到关于转发页面得操作,很显然就想到了forward和redirect,但是到底用哪一个呢,他们之间有什么区别呢,现在我将我自己理解以及开发时候怎么应用写出来...

    http://blog.sina.com.cn/s/blog_8df07b6f0100u0d1.html


    Forward与Redirect

    在做前台开发过程中你可能经常遇到关于转发页面得操作,很显然的就想到了forward和redirect,但是到底用哪一个呢,他们之间有什么区别呢,现在我将我自己的理解以及开发的时候怎么应用写出来供大家参考一下:
    (1)共同点:
    都实现了根据自己的条件实现的页面得跳转。
    (2)区别
    类别 概念 共享数据 应用
    Redirect URL重新定向:可以是任意的URL 不能共享request里面的数据 一般用于用户注销登录时返回主页面和跳转到其它的网站等等
    Forward 页面的转发:只能是同一个Web应用程序的其他Web组件 转发页面和转发到的页面可以共性request里面的数据 一般用于用户登录的时候根据角色转发到相应的模块等等
    (3)例子:
    譬如:client 通过XXX\index.jsp?name=gauss&pwd=123访问index.jsp,而index.jsp中有<jsp:forward page="login.jsp"/>,则在login.jsp中可以通过request.getParameter()得到name和pwd,而<%response.sendRedirect("login.jsp");%>得不到。
    (4) 注意
    一般在index.jsp页面之前有个提交数据的页面default.jsp,则defautl.jsp页面提交的数据就可以在login.jsp页面得到,而不是得到index.jsp页面提交的数据,index.jsp页面只是执行的都是一个转发操作当然在里面可以增加也写业务操作,他可以得到request的数据,用XXX\index.jsp?name=gauss&pwd=123这种方式登录就是省略了index.jsp前面的一个页面提交数据而已

    前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用

    sendRedirect()方法。

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

    redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session,request参数都可以获取。

    展开全文
  • forward是服务器请求资源,服务器直接访问目标地址URL,把那个URL响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送内容是从哪儿来,所以它地址栏中还是原来地址。 比如:A--...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 429
精华内容 171
关键字:

forward与redirect的区别