1) forward: When you use a forward, you can forward your request to any other resource that is managed by your web container. This means that you can forward your request to any other
servlet or a
JSP and continue to process the request. All the attributes present in that request is available for you for you to continue processing. And once the request is dispatched, it is committed. You cannot continue processing further.
....
RequestDispatcher view = request.getRequestDispatcher("\Servlet1");
view.forward(request,response);
// Don't do anything here. Its committed as you have forwarded to another resource.
2) include: Its like taking the help of another container managed resource to do some processing. You send your request to the other resource, perform the requested operation in another resource and get back to the same resource and continue processing further.
....
RequestDispatcher view = request.getRequestDispatcher("\Servlet1");
view.include(request,response);
// you can continue processing the request from here
.....