1.重定向:一种资源跳转方式
可以理解成两步:1.我处理不了,找别人去处理;将状态码设置成302
2.那个人的位置是xxx;响应头Location:xxxx
代码演示:re.setStatus(302),re.setHeader(Location,xxx);或response.sendredirect("/项目虚拟名称")
2.请求转发:一种在服务器内部资源跳转方式
可以看作资源a处理一部分信息然后将另一部分信息转发给资源b处理
代码实现:req.getRequestDispatcher("资源B路径").forward(req,resp);
3.两者的区别:
两次请求,不能在多个资源使用request共享数据
请求转发特点:
浏览器地址栏路径不发生变化
只能转发到当前服务器的内部资源
一次请求,可以在转发的资源间使用request共享数据
4.请求转发共享数据通过使用request对象
void setAttribute(String name, Object o):存储数据到 request域中
Object getAttribute(String name):根据 key,获取值
void removeAttribute(String name):根据 key,删除该键值对