servlet中调用转发、重定向的语句
request.getRequestDispatcher("login.jsp").forward(request,response);//转发到new.jsp
response.sendRedirect("login.jsp");//重定向到new.jsp
转发
当客户端请求提交到服务器的jsp处理的时候,这个jsp可以携带请求和响应对象转移到web应用的另一处进行处理,在另外一处进行处理后,产生结果页面响应给客户端浏览器此时客户端浏览器可以看到结果页面,但URL无变化所以不知道服务器端经过几层处理
重定向
当客户端浏览器提交到服务器的JSP处理的时候,这个JSP返回一个响应:去请求另外一次的URL,此时客户端浏览器会再次发出一个新的请求到这个新的地址,新的URL地址负责为浏览器产生响应,这时浏览器看到的URL是第二次请求所对应的URL地址
区别
1.请求的次数的不同:转发的是同一次请求,重定向是两次不同请求
2.地址栏变化:转发地址栏没有变化,重定向地址栏有变化,重定向其实是两次request, 所以URL会变,所以不能共享requset范围内数据
3.转发是服务器行为,重定向是客户端行为