一.请求转发
1.使用
request.getRequestDispatcher("要转发的地址").forward(request,reponse);
2.特点:
- 一次请求
- 地址栏信息不改变
- 服务器内部跳转
3.注意:请求转发后直接return结束即可
4.Request 对象作用域
(1)问题:使用请求转发后,不同的Servlet 之间怎么进行数据的共享呢?或者说数据怎么从一个servlet 流转给另外一个Servlet 呢?
(2)解决:使用request 对象的作用域
(3)使用:
request.setAttribute(object name,Object value);
//获取request作用域数据
request.getAttribute(Object obj)
(4)作用:解决了一次请求内的不同Servlet 的数据(请求数据+其他数据)共享问题。
(5)作用域:基于请求转发,一次请求中的所有Servlet 共享。
(6)注意:
使用Request 对象进行数据流转,数据只在一次请求内有效。
(7)特点:
服务器创建
每次请求都会创建
生命周期一次请求
二.重定向
1.使用:
response.sendRedirect("路径");
本地路径为:uri
网络路径为:定向资源的URL 信息
2.特点:
- 两次请求,两次request对象
- 浏览器地址栏信息改变
- 避免表单重复提交