重定向与转发的区别

转发

(服务器内部的资源跳转方式,一次性请求,浏览器的地址栏不发生改变,转发前后的页面可以使用request域对象共享数据):
request.getRequestDispatcher(String path).forword(request,response);

request域对象:因为request对象是对一次请求的请求数据的封装,因此request域只能用于一次请求的范围(转发)
方法:

  1. void setAttribute(String name,Object obj):存储数据
  2. Object getAttitude(String name):通过键获取值
  3. void removeAttribute(String name):通过键移除键值对

重定向

地址栏发生改变,可以访问其他站点资源,是两次请求,不能使用request域对象共享数据):
代码实现:
//1. 设置状态码为302

response.setStatus(302);

//2.设置响应头location

response.setHeader("location","/day15/responseDemo2");

//简单的重定向方法

response.sendRedirect("/day15/responseDemo2");

你可能感兴趣的:(重定向与转发的区别)