定义:
转发(forward)和重定向(redirect) 代表了两种请求转发方式:直接转发和间接转发
直接转发: 客户端和浏览器只发出一次请求,Servlet、HTML、JSP或其它信息资源,
由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的。
间接转发: 实际上是两次请求,服务器端在响应第一次请求的时候,让浏览器再向另外一个URL发出请求,
从而达到转发的目的。
区别:
一:重定向发生了两次请求,转发只有一次。
二:重定向之后浏览器的地址栏会发生改变,转发不会。
三:重定向可以范围任何资源即使不是同一个web应用,转发只能访问本web应用的资源。
四:重定向后request域失效不能通过request来共享数据,转发可以。
五:重定向是浏览器跳转,转发是服务器跳转
代码实现:
一: 重定向
response.sendRedirect("success.jsp"); // 中间的success.jsp可以更改
二: 转发
request.setAttribute("msg", "用户名或密码错误,请重新输入");
request.getRequestDispatcher("login.jsp").forward(request, response);
接收传值
String msg = (String)request.getAttribute("msg");