Respons功能介绍_重定向以及特点

## Respons对象:
       ※功能:设置响应消息
          1.设置响应行
              1.格式:HTTP/1.1 200 OK
              2.设置状态码:setStatus(int sc)
          2.设置响应头:setHeader(String name,String value)
          3.设置响应体:
              ※使用步骤:
                  1.获取输出流
                     ※符输出流:只能输出字符数据
                       ※PrintWriter getWriter()
                     ※字节输出流:可以输出任意数据
                       ※ServletOutputStream getOutputStream()
                  2.使用输出流,将数据输出到客户端浏览器

       ※案例
          1.完成重定向
              ※重定向:资源跳转的方式
              ※重定向:代码的实现:
                1.设置状态码为302
                response.setStatus(302);
                2.设置响应头location
                response.setHeader(“location”,"/day15/responseDemo2");
Respons功能介绍_重定向以及特点
       (我们在浏览器请求服务器的过程中,在服务器中呢有很多个资源,那么现在浏览器来请求A资源,但是A资源说这个功能,请求的需求我办不了,但是A资源告诉了浏览器,他知道哪个人可以办,可以去找他,并且给浏览器写了个小纸条,告诉了能干这个事的那个人地址,那个地址就是B资源,然后浏览器就拿着B资源的地址去找 B资源,至于这个B资源能不能干,那不一定,能不能干和这个A就没关系了,所以重定向就是发生在A资源响应浏览器的那段,那么浏览器想要重定向到B,那么A资源应该告诉浏览器两个事,第一,应该告诉浏览器重定向,通过设置状态码302来完成,第二个告诉浏览器B资源的路径,可以通过响应头location获取B资源的路径,这样做完之后,访问完A资源就会自动跳转到B资源,A资源告诉B资源要重定向到B,那么 A资源 应该告诉浏览器两个事情,第一个就是应该告诉浏览器重定向,那么可以怎么办 呢,可以去设置,用状态来完成,状态码是302,第二个,告诉浏览器B资源的路径,可以用响应头Location来完成,Location就是B资源的路径,这样访问 A资源的时候就会自动跳转到B资源去,)
Respons功能介绍_重定向以及特点
Respons功能介绍_重定向以及特点
Respons功能介绍_重定向以及特点
                简单的:response.sendRedirect(“/day15/responseDemo2”)
Respons功能介绍_重定向以及特点
Respons功能介绍_重定向以及特点

              ※重定向的特点:
                1.地址栏发生变化:
                访问前:
Respons功能介绍_重定向以及特点
                访问后:
Respons功能介绍_重定向以及特点

                2.重定向可以访问其他站点(服务器)的资源
Respons功能介绍_重定向以及特点
                重新启动后
                访问前:
Respons功能介绍_重定向以及特点
                访问后:
Respons功能介绍_重定向以及特点
                3.重定向是两次请求。不能使用request对象来共享数据:
                redirect先把资源路径再改回/day15/responseDemo2,然后重启,在浏览器页面按F12抓包查看请求的情况
Respons功能介绍_重定向以及特点

                面试笔试题;forward 和 redirect区别
              ※转发的特点:forward
                1.转发地址栏路径不变
                2.转发只能访问当前服务器下的资源
                3.转发是一次请求,可以使用request对象来共享数据