Java 2 Platform, Enterprise Edition (J2EE) is a standard for the development of multi-tier applications for large enterprises. The J2EE platform simplifies application development by basing them on standardized, modular components and providing services to use those components and by handling many aspects of application behavior automatically without complex programming.

J2EE provides a component based approach to the design, development, assembly, and deployment of enterprise applications. This approach reduces cost and also enables a fast track through design and implementation. The J2EE platform provides a multi-tiered distributed application model, the ability to reuse components, a unified security model, and flexible transaction control. Not only can you deliver innovative customer solutions to market faster than ever, but your platform independent J2EE component based solutions are not tied to the products and APIs of any one vendor. The J2EE specification defines the following kinds of components:

Applets: These are GUI components that execute in a web browser and in a variety of devices that support the applet programming model. Applets can be used to provide a powerful user interface for J2EE applications.

Application client components: These are Java programming language programs that are typically GUI programs that execute on a desktop computer. Application clients offer a user experience similar to that of native applications, and have access to all of the facilities of the J2EE middle tier.

Servlets and Java Server Pages (JSP) components (also called Web components): These typically execute in a web server and respond to HTTP requests from web clients. Servlets and JSP pages may be used to generate HTML (or even XML) pages that are an application's user interface.

Enterprise Java Beans (EJB) components: These execute in a managed environment that supports transactions. Enterprise beans typically contain the business logic for a J2EE application  

A multi-tiered distributed application model means the application logic is divided into components according to function, and you can install the different application components that make up a J2EE application on the same or different servers. Where an application component is installed depends on the tier in the multi-tiered J2EE environment in which the application component belongs to.

Client Tier:
These can be browsers, Java-based programs, or other Web enabled programming environments running within the client tier both inside and outside of corporate fire walls.

Application Server Tier:
Normally this tier hosts a combination of presentation logic and business logic to support client requests. The presentation logic is handled by Servlets or JSPs, the business logic is supported via Enterprise Java Beans. Issues like security, database mapping, transactions, load balancing, and communications are handled by the vendor provided J2EE platform.  

Back end Tier:
Generally a combination of existing applications and data stores, including data caches. It is also referred to as the Enterprise Information Systems (EIS) tier, since it may include such systems as Enterprise Resource Planning (ERP), mainframe transaction processing, database systems, and other legacy information systems.