Well, there are actually 2 questions that you are asking. The first one is what is the purpose of each tier, and the second is what Java technologies should be used in each tier.
I think a more or less universal answer to the first question is this:
1. Client Tier -- interface to the system
2. Web Tier -- presentation logic
3. Business Tier -- core business logic
4. Persistence Tier -- storage
5. Integration Tier -- for legacy systems, resource planning, etc.
Now, the second question is much harder to answer, -- a particular Java technology may be used in several tiers. For example JMS may be appropriate in 1), 3), and 5). JDBC seems suitable for 4) and 5). I can see Servlets/JSP in 2) and 5), EJB in 3) and 4).
Ultimately, an architect (or a group of architects) make a decision based on the well known and defined factors, such as performance, scalability, availability, extensibility, maintainability, security, reliability, etc. Derive a weighted average of these factors for
your system, and the answers come easy.
Eugene.