1、Forward
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet/forwardServlet");
dispatcher.forward(request,response);
2、Redirect
重定向是利用服务器返回的状态码来实现的。客户端浏览器请求服务器的时候,服务器会返回一个状态码。
如果服务器返回301,302,则浏览器会到新的网址重新请求该资源。
状态码301表示永久重定向,302表示临时重定向。
response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
response.setHeader("Location","www.baidu.com");
3、Refresh
自动刷新不仅可以实现一段时间之后自动跳转到另一个页面,还可以实现一段时间之后自动刷新本页面。
response.setHeader("Refresh","1000;URL=www.baidu.com");
区别:
forward是服务器行为,请求了一次服务器,不会导致request对象内容丢失,浏览器地址栏URL不会改变;而redirect是浏览器行为,请求了
两次服务器,会导致request内容丢失,浏览器地址栏中URL会发生改变。
PS:
至于为什么forward是服务器行为,而Redirect是客户端行为,推荐阅读博文:http://blog.csdn.net/bluishglc/article/details/7953614