I want to start learning Apache Struts 2. Please explain the benefits of using a web framework such as Struts 2. Also what are the differences between Struts 1 and Struts 2?
In a nutshell: you will need to use a framework in order to add order and standards to the structure of your applications. Frameworks allow rapid development. They enforce architectural styles which you inherit. They offer modularity, abstraction, low coupling, and high cohesion.
Struts2 is a very stable and simple framework that is fun to use.
Struts2 is a lot easier to use than Struts. Threads are safer because actions are POJOs and not singletons. Here is a long list of differences between the two.