Crystal Lake provides key Java services available from Java application servers and the J2EE framework, including Java server pages, Java Messaging Services and
Java / J2EE is considered by many to be a more robust and scalable platform than Microsoft .Net, although this is a source of heated debate these days. One major advantage of Java is the ability to run on multiple platforms or operating systems other than Windows. One of the drawbacks of J2EE is the complexity of the standard itself. This has been alleviated to a great degree by 3rd party open source solutions.
Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database. Hibernate solves Object-Relational impedance mismatch problems by replacing direct persistence-related database accesses with high-level object handling functions.
Hibernate's primary feature is mapping from Java classes to database tables (and from Java data types to SQL data types). Hibernate also provides data query and retrieval facilities. Hibernate generates the SQL calls and relieves the developer from manual result set handling and object conversion, keeping the application portable to all supported SQL databases, with database portability delivered at very little performance overhead.
The Struts Framework is a standard for developing well-architected Web applications. It is an open source platform based on the Model-View-Controller (MVC) design pattern providing which segments a web application into three levels, namely application state, presentation and application flow. The interaction between these layers is governed by an XML configuration file. Struts itself includes the view and controller layers, the model layer is left to the developer.
One of the advantages of this approach is division of labor, which allows developers which have specific expertise work on their layer of the application without disrupting the other layers. Generally this can be done without re-compiling the entire application. There is also extensive support for web form validation