Java is platform-independent object-oriented programming language. The key benefits of Java are ‘Write Once And Run Anywhere’, highly configurable and extensible security levels and restrictions, network-centric Programming, dynamically extensible programs, internationalization, high performance and Time-to-Market.
AWT / SWING
Java Foundation Classes provides a group of features for building graphical user interfaces (GUIs) and adding rich graphics functionality and interactivity to Java applications. GUI components includes everything from buttons to split panes to tables.
JSP is highly used J2EE technology to express any text-based format such as HTML, SVG, WML, and XML. JSP elements are used construct dynamic content very efficiently with little development effort.
Servlet extends the capabilities of server. However it can support any types of request, it’s mostly implemented to support HTTP web protocol which provides web developer with a simple, consistent mechanism for extending the functionality of a Web server and for accessing existing business system.
Apache Struts is an elegant, extensible framework for building enterprise-ready Java web applications. It is designed to streamline the development cycle, starting from building to deployment and maintenance of the application.
The Spring Framework is an application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform.
Hibernate ORM (Hibernate in short) is an object-relational mapping framework 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.
The Java Persistence API provides a POJO persistence model for object-relational mapping. The Java Persistence API was developed by the EJB 3.0 software expert group as part of JSR 220, but its use is not limited to EJB software components.