黑马程序员技术交流社区

标题: 【石家庄校区】重定向和转发 [打印本页]

作者: 水煮牛蛙    时间: 2018-5-21 16:48
标题: 【石家庄校区】重定向和转发
本帖最后由 小石姐姐 于 2018-5-23 16:46 编辑

重定向和转发

        //redirect : 重定向     forward : 转发
1.重定向和转发的区别:(redirect和forward的区别)
        * 1.重定向的地址栏会发生变化,转发的地址栏不变.
                (转发拿到的是同一个request对象,重定向拿到的不是同一个request)
        * 2.重定向两次请求两次响应,转发一次请求一次响应.
        * 3.重定向路径需要加工程名,转发的路径不需要加工程名.
        * 4.重定向可以跳转到任意网站,转发只能在服务器内部进行转发(当前工程中).


2.转发/跳转


        * 5秒钟后跳转 //Refresh :定时刷新/跳转(可跳到任意服务器,会改变路径))
                response.setHeader("Refresh", "5;url=/day09/demo5-refresh/index.html");
        * 转发(地址栏的请求路径不变)
                request.getRequestDispatcher(String path).forward(request,response);
        * 跳转(可以跳到任意服务器,会改变路径)
            response.setStatus(302);
                response.setHeader("Location", "/userlogin/skip_page/skip.html");
               
3.重定向:
        * response.sendRedirect(String path); -- 完成重定向
4.转发和重定向的区别:
        request.getRequestDispatcher(String path).forward(request,response);//转发
        response.sendRedirect(String path); //重定向
        * 1.重定向的地址栏会发生变化,转发的地址栏不变.
            (转发拿到的是同一个request对象,重定向拿到的不是同一个request)
        * 2.重定向两次请求两次响应,转发一次请求一次响应.
        * 3.重定向路径需要加工程名,转发的路径不需要加工程名.
        * 4.重定向可以跳转到任意网站,转发只能在服务器内部进行转发(当前工程中).






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