Java Technologies to Use in Projects

A wide variety of Java technologies exist which can assist the development of complex and intricate applications. By learning to apply these technologies, we can spend more time developing the unique and interesting portion of our applications and less time reimplementing the wheel.

Projects may be developed with any sufficiently innovative application in mind, including but not limited to:

Again, this is not a comprehensive list of possibilities, but it should give you some ideas.

Web Application Development

It is recommended, especially for those without significant experience one of these areas, to base your project on the J2EE platform by developing a web-based application. The intent of enterprise Java is to develop an application which resembles a desktop application in its functionality and purpose but which can be delivered to the user through a web browser. This allows for fewer assumptions to be made about the client machine, permitting for more rapid development, simpler deployment, and fewer client-side resource demands.

J2EE applications are typically developed using three-tier architecture. The first tier, which provides functionality for rendering the application to the client (typically by using HTML and Javascript), may use any of the following technologies:

The second tier of a J2EE application contains application-specific logic. This is where most of the innovative code actually lives and a lot of effort goes into accomplishing these tasks. However, fundamental chores such as wiring different sections of the application together without heavily coupling them have been extracted into common libraries such as:

The third tier involves the persistence of data and interaction with a database. Technologies which facilitate this process include:

It is important to note that the above technologies are not exclusively related to the tiers mentioned above; several of them interface with multiple tiers (such as Seam or AJAX) and some can be used entirely outside of the context of J2EE development (such as Spring or Hibernate). However, the above organization is representative of how they are used and considered in enterprise development.

As a starting recommendation, a simple J2EE project could include a stack built out of the following technologies:

This stack is not a requirement; it is merely a suggestion. The above-listed technologies work rather nicely together and a large amount of community support is available for them.

Other Java Technologies

These technologies may be useful in any project but are more likely to be applicable for non-J2EE applications: