1.转发与重定向是什么?

  1. 浏览器请求在服务器的跳转方式。服务器告诉浏览器去请求另一台服务器,这叫做重定向;从服务器的A资源跳转到B资源这叫做转发,这个资源者的就是servletSpringMVC中就是Controller中的一个方法。
  2. 转发与重定向产生的根本原因就是本服务的AServlet服务搞不定浏览器请求进而寻找帮手完成浏览器的请求;寻找帮手是自家的就叫做转发,其他家的就叫做重定向。

2.转发

2.1 转发的贴点

  1. 转发是服务器行为,所以浏览器中url是不会发生改变的,这也意味着浏览器只向服务器发起了一次请求。
  2. 转发只能跳转的当前网站的资源,不能跳转到百度服务器;
  3. 请求AServlet使用的get请求方式,转发到BServlet后使用的依然是get请求

    2.2 转发的应用场景

    从servlet跳转到了jsp就是使用的转发;从Servlet跳转到html也是使用了转发(一般不会这么使用,除非跳转的是thymeleaf模板化的html);

    2.3 转发的影响

    转发可以共享数据,从servlet跳转到jsp,jsp就可以获取servlet继续使用servlet的request作用域,这是因为转发的时候把servle的request作用域传递给了jsp;有了request作用域,我们就可以动态修改jsp页面,然后相应给浏览器一个html页面,进行全局刷新。
    后来有了局部刷新,我们就可以使用js在浏览器动态修改数据。所以你会感觉controller中有两个方法一模一样,但是返回结果不同,一个是转发到了html页面(thymelef模板化后),一个是返回json数据,用来作为异步请求;

    3.重定向

    3.1 重定型的特点

    3.2 重定向的应用场景

    3.3 重定向的影响

    4.转发重定向有什么区别?

    转发是request对象触发的,重定向是response对象触发的;
    转发只能跳转到本网站的服务;重定向既能跳转到本网站服务,又能跳转到其他网站服务;
    转发的状态码是200;重定向的状态码是3**;
    转发的url地址栏不变;重定向发生改变;
    

    5.转发和重定向和http协议的关系

    转发和重定向就是操作就是浏览器的请求;既然是请求肯定要实现http协议;
    转发的请求方式是不能改变的。重定向可以改变请求方式。