The Java BluePrints is the main source of J2EE design patterns.
Presentation Layer Patterns
Patterns in presentation layer
(1) the Decorating Filter Pattern involves applying inbound and outbound filters to modify client request and response data across distinct request types. It useful when a general piece of logic needs to be applied globally to many types of user interactions.
(2) the Model-View-Controller Pattern, which uses controller to collect client requests, and update backend data model, and then dispatch the request to the view component which renders the user interface.
Application and Service Layer Patterns
These patterns focus on increasing the flexibility, maintainability, and modularity of the internal application components.
(1) the Service Locator Pattern hides the complexity of locating remote services. The concept behind this pattern is to provide a simple API for obtaining a reference to a service component.
(2) the Business Delegate Pattern is employed to simplify client access to a particular application service. A business delegate object acts as a proxy between application clients and the service, and it's often a dependent object used by servlet and EJBs.
(3) the Value Object Pattern, a value object is a serializable representation of a complex set of data suitable for passing between application tiers via RMI.
(4) the Data Access Object Pattern is useful for interacting synchronously with a persistent data store. It's commonly used to decouple application components, such as EJBs and servlets, from an underlying database.