Difference between Apache Struts and Java EE?
Struts is NOT another server. It's an application framework. It is built on top of JSP and Servlet architecture. So it is an abstraction of the servlet environment.
Using a framework like Struts has some advantages such as: many common features of applications are pre-built so you don't have to do them yourself. Features such as validation. It also forces you to work according to some best practice philosophy, in this case MVC.
Under the covers Struts implement a few servlets to do the job. You the developer do not have to write servlets. You can focus on business logic instead.
Struts is a library for making web applications; it is not by itself a server. It requires a JSP/Servlet container in order to work (such as Tomcat). See the Struts technology primer.
Java EE is a specification that includes a number of technologies. Tomcat is not a Java EE server because it does not incorporate all these technologies, but has been used as part of a Java EE server, providing the web tier.
(source: sun.com)