重定向 和 请求转发 详解

重定向

之前的写法:response.setStatus(302);  response.setHeader("Location"," 跳转的位置");

现在的写法:response.sendRedirect(" 跳转的位置 ")

1、地址上显示的是最后那个资源的路径地址

2、请求的次数最少两次,第一次请求到服务器,经过处理,重定向响应客户端,返回一个302 以及一个地址,浏览器根据这个地址  执行再一次的访问

3、可以跳转到任意的路径,不是同一个工程也可以跳转

4、效率稍微低一点,执行了两次请求

5、后续的请求,没有办法使用获得request对象设置的数据,或者说是没办法使用上一次的request对象,因为不是同一个请求,是两次不同的请求

请求转发

request.getRequestDispatcher(" ").forword(request,response);

1、地址上显示的是Servlet的那个地址,,,返回 200  ok

2、只有一次的请求,服务器帮客户端执行了后续的工作

3、只能跳转到自己项目的工程路径

4、效率稍微高一点,执行了一次请求

5、后续的请求可以获得上一次request设置的数据,可以使用上一次的request对象

猜你喜欢

转载自blog.csdn.net/weixin_44142032/article/details/88645793
今日推荐