Let's first take a look at the scope of the request, and when we ask for a resource, we create a request object that has a scope that is valid for the current request
Forwarding: simply to extend the scope of the current request to the page you are forwarding to, that is to say that these 2 pages share the request, the variables stored in the previous request will not be invalidated, like the two pages together, There is also a feature is that after the forwarding of the controller will not be forwarded to the page displayed in the address bar, such as I a page a.jsp, request parameters for p= "haha", after the controller c.action processing, turn to b.jsp, then you see the b.jsp page,
But now the address bar displays the address: http://localhost:8080/project name/c.action?p= "haha"
Redirect: The variables for previous request requests have all been invalidated and entered a new request.