1. 转发 携带数据
地址栏不变;
服务器内部跳转,浏览器不知道
公用一个request,所以可以在request作用域中存储数据
A接到用户请求,帮助用户找到B
只能跳转到当前项目下
代码实现:req.getRequestDispatcher(URI).forward(req,
resp);
2. 重定向 不携带数据
地址栏改变
浏览器发送新的请求
不共享一个request
A接到用户的请求,告诉用户,你去找B
可以到跳转到其它项目下
代码实现:resp.sendRedirect(URL)
3. request 转发
设置数据到request作用域: req.setAttribute(key , Value);
前台EL表达式取值:${requestScope.Key}
转发:req.getRequestDispatcher(URI).forward(req, resp);
内部跳转,URI只能当前项目下,故不需要加项目名
4. response 重定向
重定向:resp.sendRedirect(URL);
可以跳转到外部项目,URL前需要加项目名
获取当前项目名:req.getContextPath()