The word "front-end" is somewhat ambiguous because some people use it
to refer to only the parts of the J2EE application that executes on
the web browser (e.g. Javascript, JSP or servlets that print HTML) and
others will use the word to refer to any module that control how it is
presented to the user. Others may disagree, but I usually refer to
later when I use the word "front-end".
Thus in my opinion, the front-end consists of:
* Javascript files
* JSP files
* Any customized tags that you write
* Any Java classes that help channel and process the data to the JSP
(sometimes called JSP Helpers)
* Resource bundles for localization (i.e. property files written in
the various languages - English, French, Japanese, etc - that the
application supports)
* If you use XSLT -> the XSL files
* If you use Struts -> struts-config.xml, Action beans, ActionForm
beans, Struts tag library (.tld files and supporting Java classes),
the Controller view servlet
The middle-tier consists of:
* Java Beans for implementing business logic and database access (e.g.
EJB)
* JMS (Java Messaging Service) for communicating with your database or
other middle-tier objects with asynchronous messaging
* JDBC for communicating with databases
* JDNI for arranging your services in a directory-like fashion.
Neither lists are complete.
The modules in the middle-tier should not have any control on how the
data is presented to the user.
The front-end and the middle tier meet when the JSP or servlets use
Java beans for:
1. updating, creating, or deleting records in a database
2. executing business logic on user input.
I hope that this makes it a little bit clearer