请求转发和重定向的对比

请求转发和重定向的区别

 1.转发:
    request.getRequestDispatcher("html/jsp从WebContent下的路径").forward(request,response);
    //将请求转发到指定html或jsp
2.重定向
    response.sendRedirect("全路径");

转发和重定向的区别:
     1.方法不同:
                        request.getRequestDispatcher("路径").forward(request, response);
   response.sendRedirect("路径");
    2.url地址不同
                        转发时 由于是一次请求  路径不会改变
                        重定向时  由于是两次请求  路径会改变
    3.请求次数不同
                        转发:一次请求
                        重定向:两次请求
    4.默认路径不同
                        转发默认自带路径  /项目名/
                        重定向默认不带路径
    5.访问范围不同
                        转发:可以访问WEB-INF下的内容  WEB-INF下是安全路径 除了转发 不可以访问其中内容
        但是转发不能访问外部项目的内容
                        重定向: 可以访问外部项目的内容,但是不能访问WEB-INF下的内容
    6.域对象属性不同
                        转发:可以使用request域对象中的属性
                        重定向:不可以使用request域对象中的属性

 

 

转发

重定向

浏览器地址栏

不会变化

会变化

几次请求

同一个请求

两次请求

API

Request对象

Response对象

WEB-INF

可以访问

不能访问

共享request请求域数据

可以共享

不可以共享

目标资源

必须是当前Web应用中的资源

不局限于当前Web应用

 

posted @ 2019-09-27 15:55  m_ming  阅读(252)  评论(0编辑  收藏  举报