In servlet, there is class named RequestDispatcher, this dispatcher will send/include the request to another web resource, like JSP or Servlet. In jsp, there is expression like: <jsp:forward...> or <jsp:include....>, however, those expression can only point to static URL, And in Java code, we can use dispatcher.forward(request,response) or dispatcher.include(request,response) to do the same work, and the same time, dispatcher can be got by: request.getRequestDispatcher(path), the path can be relative path or absolute path(start by /)
Difference between response.sendRidirect and dispatcher.forward 1. using sendRedirect(url), request can not be used in the redirected page, but the url will be displayed in the address bar, note that when using sendRedirect(url), url should be encoded by response.encodeRedirectURL, this method will consider whether the client browser has disable the session and and session id automatically. 2. using forward, request can be shared, url will not be displayed.
Reference resource: http://blog.youkuaiyun.com/changemyself/archive/2007/05/15/1609992.aspx