1、二者的区别
重定向的特点:response.sendRedirect();
1. 地址栏发生变化
2. 重定向可以访问其他站点(服务器)的资源
3. 重定向是两次请求。不能使用request对象来共享数据
转发的特点:request.getRequestDispatcher("").forward(request,response);
1. 转发地址栏路径不变
2. 转发只能访问当前服务器下的资源
3. 转发是一次请求,可以使用request对象来共享数据
2、那究竟什么时候用重定向,什么时候用内部转发呢?
当前后两个页面有数据传递的时候用内部转发,没有则用重定向。
比如servlet查询了数据需要在页面显示,就内部转发。
比如servlet做了update操作跳转到其他页面,就用重定向。