转发 : Servlet接收到浏览器端请求后,进行必定的处理,先不进行响应,而是在服务器端内部“转发”给其余Servlet程序继续处理。在这种状况下浏览器端只发出了一次请求,浏览器地址栏不会发生变化,用户也感知不到请求被转发了。其中转发的servlet和目标servlet共用一个request。其实就是转发请求的setvlet和目标的setvlet共用一个请求。java
重定向:Servlet接收到浏览器端请求并处理完成后,给浏览器端一个特殊的响应,这个特殊的响应要求浏览器去请求一个新的资源,整个过程当中浏览器端会发出两次请求,且浏览器地址栏会改变为新资源的地址。重定向的状况下,原Servlet和目标资源之间就不能共享请求域数据了。web
//转发 request.getRequestDispatcher("/index.jsp").forward(request, response); //重定向 response.sendRedirect("index.jsp");
注意:转发前面那个/表明的是当前web应用的路径,而当咱们在重定向前面使用了/那么它表明当前站点的路径,咱们能够这样写:浏览器
//request.getContextPath:当前web应用的路径 response.sendRedirect(request.getContextPath+"/index.jsp");